Procházet zdrojové kódy

Merge #29 into master from pingkang

getAdqWechatPagesVo修改

* pingkang: (5 commits)
  selectdb_group_commit
  Merge branch 'master' of codeup.aliyun.com:60c06368dbbed34fe0f0c263/job/hr_job-...
  撤回queryPageAdvertiserIds
  getAdqWechatPagesVo修改
  getAdqWechatPagesVo修改

Signed-off-by: 1129979389@qq.com <accounts_6361eaad7b63b44dd7833e63@mail.teambition.com>
Merged-by: 1129979389@qq.com <accounts_6361eaad7b63b44dd7833e63@mail.teambition.com>

CR-link: https://codeup.aliyun.com/60c06368dbbed34fe0f0c263/job/hr_job-bytedance/change/29
huangpingkang před 1 rokem
rodič
revize
c910ce1a05

+ 12 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/controller/BytedanceController.java

@@ -197,4 +197,16 @@ public class BytedanceController {
         cdpProjectService.getAdqCreatives(id, "2025-02-15");
     }
 
+    @GetMapping("/adqWechatPages")
+    public void adqWechatPages(){
+        List<JSONObject> iids = cdpProjectService.queryPageAdvertiserIds();
+        if (!Check.isNull(iids)) {
+            for (JSONObject iid : iids) {
+                Long pageId = iid.getLong("page_id");
+                Long advertiserId = iid.getLong("advertiser_id");
+                dailyRetrExecutorService.submit(() -> cdpProjectService.getAdqWechatPages(advertiserId,pageId));
+            }
+        }
+    }
+
 }

+ 2 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCdpProjectMapper.java

@@ -2,6 +2,7 @@ package cn.com.ctop.job.bytedance.data.mapper;
 
 import cn.com.ctop.job.bytedance.data.entity.BytedanceCdpProject;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
@@ -38,7 +39,7 @@ public interface BytedanceCdpProjectMapper {
     List<Long> queryTTErrApps();
 
     @DS("selectdb")
-    List<Long> queryPageAdvertiserIds();
+    List<JSONObject> queryPageAdvertiserIds();
 
     boolean delErrApps(@Param("type") String type);
 

+ 2 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCdpProjectListMapper.xml

@@ -346,8 +346,8 @@
         order by create_time
     </select>
 
-    <select id="queryPageAdvertiserIds" resultType="Long">
-        SELECT DISTINCT advertiser_id
+    <select id="queryPageAdvertiserIds" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT DISTINCT advertiser_id,page_id
         FROM media_api.adq_dynamic_createive_list
         where page_type = 'PAGE_TYPE_WECHAT_CANVAS'
           and mini_program_id is null

+ 3 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/IBytedanceCdpProjectService.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.job.bytedance.data.service;
 
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 
 import java.util.List;
 
@@ -38,9 +39,9 @@ public interface IBytedanceCdpProjectService {
 
     void getAdqCreatives(Long advertiserId, String date);
 
-    void getAdqWechatPages(Long advertiserId);
+    void getAdqWechatPages(Long advertiserId,Long pageId);
 
     List<Long> queryTTErrApps();
 
-    List<Long> queryPageAdvertiserIds();
+    List<JSONObject> queryPageAdvertiserIds();
 }

+ 14 - 12
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceCdpProjectServiceImpl.java

@@ -12,10 +12,7 @@ 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业务层处理
@@ -53,7 +50,7 @@ public class BytedanceCdpProjectServiceImpl implements IBytedanceCdpProjectServi
     }
 
     @Override
-    public List<Long> queryPageAdvertiserIds() {
+    public List<JSONObject> queryPageAdvertiserIds() {
         return bytedanceCdpProjectMapper.queryPageAdvertiserIds();
     }
 
@@ -532,14 +529,14 @@ public class BytedanceCdpProjectServiceImpl implements IBytedanceCdpProjectServi
     }
 
     @Override
-    public void getAdqWechatPages(Long advertiserId) {
+    public void getAdqWechatPages(Long advertiserId,Long pageId) {
         try {
             String accessToken = tokenMapper.onlyGetADQToken(advertiserId);
             if (Check.isNull(accessToken)) {
                 log.error("账户({})accessToken is null", advertiserId);
                 return;
             }
-            this.getAdqWechatPagesVo(advertiserId, accessToken, 1, true, 1);
+            this.getAdqWechatPagesVo(advertiserId,pageId, accessToken, 1, true, 1);
         } catch (Exception e) {
             e.printStackTrace();
             log.error("账户({})获取原生落地页异常", e.getMessage());
@@ -547,9 +544,8 @@ public class BytedanceCdpProjectServiceImpl implements IBytedanceCdpProjectServi
     }
 
 
-    private void getAdqWechatPagesVo(Long accountId, String accessToken, Integer page, Boolean isDeleted, int count) throws Exception {
+    private void getAdqWechatPagesVo(Long accountId,Long pageId, String accessToken, Integer page, Boolean isDeleted, int count) throws Exception {
         boolean nextPage = false;
-        JSONObject returnJson = new JSONObject();
         Map<String, Object> param = new HashMap<>();
         long timestamp = Instant.now().getEpochSecond();
         param.put("timestamp", String.valueOf(timestamp));
@@ -563,9 +559,15 @@ public class BytedanceCdpProjectServiceImpl implements IBytedanceCdpProjectServi
         greObj.put("field", "page_type");
         greObj.put("operator", "EQUALS");
         greObj.put("values", "PAGE_TYPE_WECHAT_CANVAS");
+
+        JSONObject pageFilter = new JSONObject();
+        pageFilter.put("field", "page_id");
+        pageFilter.put("operator", "EQUALS");
+        pageFilter.put("values", Collections.singletonList(String.valueOf(pageId)));
         filtering.add(greObj);
+        filtering.add(pageFilter);
 
-//        param.put("filtering", filtering);
+        param.put("filtering", filtering);
         String result = HttpUtils.httpGet("https://api.e.qq.com/v3.0/wechat_pages/get", param, new HashMap<>());
         JSONObject obj = JSONObject.parseObject(result);
         if (!Check.isNull(obj)) {
@@ -596,14 +598,14 @@ public class BytedanceCdpProjectServiceImpl implements IBytedanceCdpProjectServi
             } else {
                 if (count <= 4) {
                     Thread.sleep(500);
-                    getAdqWechatPagesVo(accountId, accessToken, page, isDeleted, count + 1);
+                    getAdqWechatPagesVo(accountId,pageId, accessToken, page, isDeleted, count + 1);
                 } else {
                     log.error("账户({})获取动态创意失败,入参:{}\n,结果:{}", accountId, JSONObject.toJSONString(param), obj);
                 }
             }
         }
         if (nextPage) {
-            getAdqWechatPagesVo(accountId, accessToken, page + 1, isDeleted, 1);
+            getAdqWechatPagesVo(accountId,pageId, accessToken, page + 1, isDeleted, 1);
         }
     }
 

+ 7 - 3
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/BytedanceCdpProjectJob.java

@@ -4,6 +4,7 @@ package cn.com.ctop.job.bytedance.handler;
 import cn.com.ctop.job.bytedance.data.service.IBytedanceCdpProjectService;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.DateUtils;
+import com.alibaba.fastjson.JSONObject;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -161,11 +162,14 @@ public class BytedanceCdpProjectJob {
                 ids.forEach(id -> createiveAppsExecutorService.submit(() -> cdpProjectService.getAdqCreatives(id, today)));
             }
 
-            List<Long> iids = cdpProjectService.queryPageAdvertiserIds();
+            List<JSONObject> iids = cdpProjectService.queryPageAdvertiserIds();
             if (!Check.isNull(iids)) {
-                iids.forEach(id -> pageAppsExecutorService.submit(() -> cdpProjectService.getAdqWechatPages(id)));
+                for (JSONObject iid : iids) {
+                    Long pageId = iid.getLong("page_id");
+                    Long advertiserId = iid.getLong("advertiser_id");
+                    pageAppsExecutorService.submit(() -> cdpProjectService.getAdqWechatPages(advertiserId,pageId));
+                }
             }
-
         } catch (Exception e) {
             e.printStackTrace();
             log.error("[nowDynamicCreateives]" + e.getMessage());