yumeng hace 9 meses
padre
commit
983183a277

+ 25 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/controller/AdqController.java

@@ -50,6 +50,31 @@ public class AdqController {
     private IAdqMaterialReportService adqMaterialReportService;
 
 
+    @GetMapping("/getAgentInfo")
+    public JSONObject getAgentInfo() {
+
+        List<JSONObject> list = adminAdvertiserListService.getAdvertiserList();
+        if (!Check.isNull(list)) {
+            for (JSONObject jsonObject : list) {
+                Long adminAdvertiserId = jsonObject.getLong("adminAdvertiserId");
+                Long advertiserId = jsonObject.getLong("advertiserId");
+                String accessToken = jsonObject.getString("accessToken");
+                dailyExecutorService.submit(new Runnable() {
+                    @Override
+                    public void run() {
+                        adminAdvertiserListService.getAgentInfo(adminAdvertiserId, advertiserId, accessToken, null);
+                    }
+                });
+            }
+
+        }
+
+
+        return null;
+
+    }
+
+
     @GetMapping("/getReport")
     public JSONObject getReport() {
         String nowDate = DateUtils.getNowDate("yyyy-MM-dd");

+ 193 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/entity/AdqAgentAdvertiserList.java

@@ -0,0 +1,193 @@
+package cn.com.ctop.job.adq.data.entity;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+
+/**
+ * 【请填写功能名称】对象 adq_agent_advertiser_list
+ *
+ * @author ruoyi
+ * @date 2025-08-28
+ */
+public class AdqAgentAdvertiserList
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 管家账户ID */
+    @Excel(name = "管家账户ID")
+    private Long adminAdvertiserId;
+
+    /** 广告主ID */
+    private Long advertiserId;
+
+    /** 客户主体 id */
+    @Excel(name = "客户主体 id")
+    private Long mdmId;
+
+    /** 行业 id */
+    @Excel(name = "行业 id")
+    private Long systemIndustryId;
+
+    /** 客户主体名称 */
+    @Excel(name = "客户主体名称")
+    private String mdmName;
+
+    /** 企业营业执照注册号 */
+    @Excel(name = "企业营业执照注册号")
+    private String corporationLicence;
+
+    /** 企业名称 */
+    @Excel(name = "企业名称")
+    private String corporationName;
+
+    /** 代理商 account_id */
+    @Excel(name = "代理商 account_id")
+    private String agencyAccountId;
+
+    /** 账户主体类型 */
+    @Excel(name = "账户主体类型")
+    private String registrationType;
+
+    /** 调用方行业名称 */
+    @Excel(name = "调用方行业名称")
+    private String customizedIndustry;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createAt;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date updateAt;
+
+    public void setAdminAdvertiserId(Long adminAdvertiserId)
+    {
+        this.adminAdvertiserId = adminAdvertiserId;
+    }
+
+    public Long getAdminAdvertiserId()
+    {
+        return adminAdvertiserId;
+    }
+    public void setAdvertiserId(Long advertiserId)
+    {
+        this.advertiserId = advertiserId;
+    }
+
+    public Long getAdvertiserId()
+    {
+        return advertiserId;
+    }
+    public void setMdmId(Long mdmId)
+    {
+        this.mdmId = mdmId;
+    }
+
+    public Long getMdmId()
+    {
+        return mdmId;
+    }
+    public void setSystemIndustryId(Long systemIndustryId)
+    {
+        this.systemIndustryId = systemIndustryId;
+    }
+
+    public Long getSystemIndustryId()
+    {
+        return systemIndustryId;
+    }
+    public void setMdmName(String mdmName)
+    {
+        this.mdmName = mdmName;
+    }
+
+    public String getMdmName()
+    {
+        return mdmName;
+    }
+    public void setCorporationLicence(String corporationLicence)
+    {
+        this.corporationLicence = corporationLicence;
+    }
+
+    public String getCorporationLicence()
+    {
+        return corporationLicence;
+    }
+    public void setCorporationName(String corporationName)
+    {
+        this.corporationName = corporationName;
+    }
+
+    public String getCorporationName()
+    {
+        return corporationName;
+    }
+    public void setAgencyAccountId(String agencyAccountId)
+    {
+        this.agencyAccountId = agencyAccountId;
+    }
+
+    public String getAgencyAccountId()
+    {
+        return agencyAccountId;
+    }
+    public void setRegistrationType(String registrationType)
+    {
+        this.registrationType = registrationType;
+    }
+
+    public String getRegistrationType()
+    {
+        return registrationType;
+    }
+    public void setCustomizedIndustry(String customizedIndustry)
+    {
+        this.customizedIndustry = customizedIndustry;
+    }
+
+    public String getCustomizedIndustry()
+    {
+        return customizedIndustry;
+    }
+    public void setCreateAt(Date createAt)
+    {
+        this.createAt = createAt;
+    }
+
+    public Date getCreateAt()
+    {
+        return createAt;
+    }
+    public void setUpdateAt(Date updateAt)
+    {
+        this.updateAt = updateAt;
+    }
+
+    public Date getUpdateAt()
+    {
+        return updateAt;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("adminAdvertiserId", getAdminAdvertiserId())
+                .append("advertiserId", getAdvertiserId())
+                .append("mdmId", getMdmId())
+                .append("systemIndustryId", getSystemIndustryId())
+                .append("mdmName", getMdmName())
+                .append("corporationLicence", getCorporationLicence())
+                .append("corporationName", getCorporationName())
+                .append("agencyAccountId", getAgencyAccountId())
+                .append("registrationType", getRegistrationType())
+                .append("customizedIndustry", getCustomizedIndustry())
+                .append("createAt", getCreateAt())
+                .append("updateAt", getUpdateAt())
+                .toString();
+    }
+}

+ 6 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqAdminAdvertiserListMapper.java

@@ -1,6 +1,8 @@
 package cn.com.ctop.job.adq.data.mapper;
 
 import cn.com.ctop.job.adq.data.entity.AdqAdvertiserList;
+import cn.com.ctop.job.adq.data.entity.AdqAgentAdvertiserList;
+import com.alibaba.fastjson.JSONObject;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -9,4 +11,8 @@ public interface AdqAdminAdvertiserListMapper {
     void replaceAdqAccountList(@Param("adds") List<AdqAdvertiserList> addList);
 
     void deleteAdvertiserListByAdminId(@Param("advertiserId") Long advertiserId);
+
+    void addAgent(AdqAgentAdvertiserList javaObject);
+
+    List<JSONObject> getAdvertiserList();
 }

+ 38 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqAdminAdvertiserListMapper.xml

@@ -26,9 +26,47 @@
         on duplicate key update
         advertiser_name= VALUES(advertiser_name)
     </insert>
+    <insert id="addAgent">
+        replace into deepthink.adq_agent_advertiser_list
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="adminAdvertiserId != null">admin_advertiser_id,</if>
+            <if test="advertiserId != null">advertiser_id,</if>
+            <if test="mdmId != null">mdm_id,</if>
+            <if test="systemIndustryId != null">system_industry_id,</if>
+            <if test="mdmName != null">mdm_name,</if>
+            <if test="corporationLicence != null">corporation_licence,</if>
+            <if test="corporationName != null">corporation_name,</if>
+            <if test="agencyAccountId != null">agency_account_id,</if>
+            <if test="registrationType != null">registration_type,</if>
+            <if test="customizedIndustry != null">customized_industry,</if>
+            <if test="createAt != null">create_at,</if>
+            <if test="updateAt != null">update_at,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="adminAdvertiserId != null">#{adminAdvertiserId},</if>
+            <if test="advertiserId != null">#{advertiserId},</if>
+            <if test="mdmId != null">#{mdmId},</if>
+            <if test="systemIndustryId != null">#{systemIndustryId},</if>
+            <if test="mdmName != null">#{mdmName},</if>
+            <if test="corporationLicence != null">#{corporationLicence},</if>
+            <if test="corporationName != null">#{corporationName},</if>
+            <if test="agencyAccountId != null">#{agencyAccountId},</if>
+            <if test="registrationType != null">#{registrationType},</if>
+            <if test="customizedIndustry != null">#{customizedIndustry},</if>
+            <if test="createAt != null">#{createAt},</if>
+            <if test="updateAt != null">#{updateAt},</if>
+        </trim>
+    </insert>
     <delete id="deleteAdvertiserListByAdminId" parameterType="java.lang.Long">
         DELETE
         FROM deepthink.adq_advertiser_list
         WHERE admin_advertiser_id = #{advertiserId}
     </delete>
+    <select id="getAdvertiserList" resultType="com.alibaba.fastjson.JSONObject">
+        select t1.admin_advertiser_id as 'adminAdvertiserId', t1.advertiser_id as 'advertiserId', t3.access_token as 'accessToken'
+        from deepthink.adq_advertiser_list t1
+                 left join deepthink.adq_agent_advertiser_list t2 on t1.advertiser_id = t2.advertiser_id
+                 left join deepthink.adq_auth_list t3 on t1.admin_advertiser_id = t3.admin_advertiser_id
+        where t2.advertiser_id is null;
+    </select>
 </mapper>

+ 8 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/IAdqAdminAdvertiserListService.java

@@ -1,7 +1,15 @@
 package cn.com.ctop.job.adq.data.service;
 
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.List;
+
 public interface IAdqAdminAdvertiserListService {
     void getAdminAdvertiserList(Long advertiserId, String accessToken,Integer cursor);
 
     void deleteAdvertiserListByAdminId(Long advertiserId);
+
+    void getAgentInfo(Long adminAdvertiserId, Long advertiserId, String accessToken,Integer cursor);
+
+    List<JSONObject> getAdvertiserList();
 }

+ 59 - 5
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqAdminAdvertiserListServiceImpl.java

@@ -1,28 +1,28 @@
 package cn.com.ctop.job.adq.data.service.impl;
 
 import cn.com.ctop.job.adq.data.entity.AdqAdvertiserList;
+import cn.com.ctop.job.adq.data.entity.AdqAgentAdvertiserList;
 import cn.com.ctop.job.adq.data.mapper.AdqAdminAdvertiserListMapper;
 import cn.com.ctop.job.adq.data.service.IAdqAdminAdvertiserListService;
 import cn.com.ctop.job.adq.data.utils.Check;
 import cn.com.ctop.job.adq.data.utils.HttpUtils;
 import cn.com.ctop.job.adq.utils.RandomStringGenerator;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONAware;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.Instant;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 @Slf4j
 public class AdqAdminAdvertiserListServiceImpl implements IAdqAdminAdvertiserListService {
     @Autowired
     private AdqAdminAdvertiserListMapper adminAdvertiserListMapper;
+
     @Override
     public void getAdminAdvertiserList(Long adminAdvertiserId, String accessToken, Integer cursor) {
         Map<String, Object> paramsMap = new HashMap<>();
@@ -70,7 +70,7 @@ public class AdqAdminAdvertiserListServiceImpl implements IAdqAdminAdvertiserLis
                         }
                         if (!Check.isNull(addList)) {
                             adminAdvertiserListMapper.replaceAdqAccountList(addList);
-                            log.info("adq账户入库成功,业务单元ID:{},入库条数:{}",adminAdvertiserId, addList.size());
+                            log.info("adq账户入库成功,业务单元ID:{},入库条数:{}", adminAdvertiserId, addList.size());
                         }
                     }
                     JSONObject cursorPageInfo = data.getJSONObject("cursor_page_info");
@@ -90,4 +90,58 @@ public class AdqAdminAdvertiserListServiceImpl implements IAdqAdminAdvertiserLis
     public void deleteAdvertiserListByAdminId(Long advertiserId) {
         adminAdvertiserListMapper.deleteAdvertiserListByAdminId(advertiserId);
     }
+
+    @Override
+    public void getAgentInfo(Long adminAdvertiserId, Long advertiserId, String accessToken, Integer cursor) {
+        Map<String, Object> paramsMap = new HashMap<>();
+        paramsMap.put("access_token", accessToken);
+        long timestamp = Instant.now().getEpochSecond();
+        paramsMap.put("timestamp", String.valueOf(timestamp));
+        paramsMap.put("nonce", RandomStringGenerator.generateRandomString(32));
+        paramsMap.put("pagination_mode", "PAGINATION_MODE_CURSOR");
+        if (!Check.isNull(cursor)) {
+            paramsMap.put("cursor", cursor);
+        }
+        paramsMap.put("page_size", 100);
+        paramsMap.put("account_id", advertiserId);
+        JSONArray fields = new JSONArray();
+        fields.add("account_id");
+        fields.add("registration_type");
+        fields.add("corporation_name");
+        fields.add("corporation_licence");
+        fields.add("name");
+        fields.add("mdm_id");
+        fields.add("mdm_name");
+        fields.add("system_industry_id");
+        fields.add("customized_industry");
+        fields.add("agency_account_id");
+        paramsMap.put("fields", fields);
+
+        String s = HttpUtils.httpGet("https://api.e.qq.com/v3.0/advertiser/get", paramsMap, null);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        if (!Check.isNull(jsonObject)) {
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                JSONObject data = jsonObject.getJSONObject("data");
+                if (!Check.isNull(data)) {
+                    JSONArray list = data.getJSONArray("list");
+                    if (!Check.isNull(list)) {
+                        JSONObject detail = list.getJSONObject(0);
+                        if (!Check.isNull(detail)) {
+                            AdqAgentAdvertiserList javaObject = JSONObject.toJavaObject(detail, AdqAgentAdvertiserList.class);
+                            javaObject.setAdminAdvertiserId(adminAdvertiserId);
+                            javaObject.setAdvertiserId(advertiserId);
+                            adminAdvertiserListMapper.addAgent(javaObject);
+                        }
+                    }
+                }
+            }
+
+        }
+    }
+
+    @Override
+    public List<JSONObject> getAdvertiserList() {
+        return adminAdvertiserListMapper.getAdvertiserList();
+    }
 }

+ 23 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/handler/AdqAdminAdvertiserListJob.java

@@ -3,12 +3,14 @@ package cn.com.ctop.job.adq.handler;
 
 import cn.com.ctop.job.adq.data.service.IAdqAdminAdvertiserListService;
 import cn.com.ctop.job.adq.data.utils.Check;
+import com.alibaba.fastjson.JSONObject;
 import com.xxl.job.core.context.XxlJobHelper;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -22,9 +24,30 @@ import java.util.concurrent.Executors;
 @Component
 public class AdqAdminAdvertiserListJob {
     private static ExecutorService adminExecutorService = Executors.newFixedThreadPool(3);
+    private static ExecutorService agentExecutorService = Executors.newFixedThreadPool(5);
     @Autowired
     private IAdqAdminAdvertiserListService adminAdvertiserListService;
 
+    @XxlJob("agentInfo")
+    public void agentInfo() throws Exception {
+        List<JSONObject> list = adminAdvertiserListService.getAdvertiserList();
+        if (!Check.isNull(list)) {
+            for (JSONObject jsonObject : list) {
+                Long adminAdvertiserId = jsonObject.getLong("adminAdvertiserId");
+                Long advertiserId = jsonObject.getLong("advertiserId");
+                String accessToken = jsonObject.getString("accessToken");
+                agentExecutorService.submit(new Runnable() {
+                    @Override
+                    public void run() {
+                        adminAdvertiserListService.getAgentInfo(adminAdvertiserId, advertiserId, accessToken, null);
+                    }
+                });
+            }
+
+        }
+    }
+
+
     @XxlJob("getAdminAdvertiserList")
     public void getAdminAdvertiserList() throws Exception {
         String param = XxlJobHelper.getJobParam(); // 执行参数