Przeglądaj źródła

人群分析报表 数据清洗

zhaoxian 4 lat temu
rodzic
commit
f0f2fc3be1

+ 59 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestController.java

@@ -9,12 +9,14 @@ import cn.com.ctop.common.module.vo.ResFileDTO;
 import cn.com.ctop.crawler.modules.core.entity.CrawlerDouyinMusicTask;
 import cn.com.ctop.crawler.modules.core.service.CrawlerDouyinMusicTaskService;
 import cn.com.ctop.crawler.modules.douyin.service.DouyinMusicService;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroup;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouTemplate;
 import cn.com.ctop.kuaishou.modules.batch.service.*;
 import cn.com.ctop.kuaishou.modules.graphql.service.IKuaishouWebInterfaceService;
 import cn.com.ctop.kuaishou.modules.material.entity.KuaishouAccessToken;
 import cn.com.ctop.kuaishou.modules.material.entity.KuaishouResultToken;
 import cn.com.ctop.kuaishou.modules.report.service.IKuaiShouDailyAgentService;
+import cn.com.ctop.kuaishou.modules.report.service.IKuaishouAudienceReportDailyService;
 import cn.com.ctop.toutiao.modules.link.service.IETLReportBytedanceVideoService;
 import cn.com.ctop.toutiao.modules.material.service.IByteDanceAdvertiserDataService;
 import cn.com.ctop.toutiao.modules.material.service.IBytedanceEffectVideoInfoService;
@@ -1399,4 +1401,61 @@ public class TestController {
         ResultMapUtils.setResultMap(result,StatusCode.COMMON_SUCCESS);
         return result;
     }
+
+
+    @Autowired
+    private IKuaishouAudienceReportDailyService kuaishouAudienceReportDailyService;
+    @Autowired
+    private IKuaiShouGroupService kuaiShouGroupService;
+    @Autowired
+    private IKuaishouStrategyService kuaishouStrategyService;
+
+    @GetMapping("reportDaily")
+    public void ReportDaily() throws Exception {
+        CtopOauthToken token1 = tokenService.getTokenByAccountId(9743738L);
+        CtopOauthToken token2 = tokenService.getTokenByAccountId(9743727L);
+        CtopOauthToken token3 = tokenService.getTokenByAccountId(9556344L);
+        List<CtopOauthToken> tokens = new ArrayList<>();
+        tokens.add(token1);
+        tokens.add(token2);
+        tokens.add(token3);
+        //查询两天前数据  策略
+        List<String> dates = new ArrayList<>();
+        for (int i = 2; i < 33; i++) {
+            String dat = DateUtils.getLastDay(DateUtils.date2Str(), i);
+            dates.add(dat);
+        }
+
+        ExecutorService executorServic1e = Executors.newFixedThreadPool(30);
+        CtopOauthToken token = tokenService.getTokenByAccountId(9743738L);
+        dates.forEach(date -> executorServic1e.submit(() -> {
+            if (null == tokens || tokens.isEmpty()) {
+                XxlJobHelper.log("定时获取人群分析报表数据异常:未获取到可用的token");
+                XxlJobHelper.handleFail();
+                return;
+            }
+            int page = 1;
+            int pageSize = 2000;
+                getAudienceReportData(token, date, "ageSegment", page, pageSize);
+                getAudienceReportData(token, date, "gender", page, pageSize);
+                getAudienceReportData(token, date, "businessInterestTags", page, pageSize);
+                getAudienceReportData(token, date, "city", page, pageSize);
+                getAudienceReportData(token, date, "clientId", page, pageSize);
+                getAudienceReportData(token, date, "province", page, pageSize);
+        }));
+    }
+
+    private void getAudienceReportData(CtopOauthToken token, String date, String type, Integer page, Integer pageSize) {
+        System.out.println(date+"————:"+token.getAccountId());
+        try {
+            List<KuaiShouGroup> kuaiShouGroups = kuaiShouGroupService.queryUnitInfoByAccountId(token.getAccountId());
+            for (KuaiShouGroup kuaiShouGroup : kuaiShouGroups) {
+                kuaishouAudienceReportDailyService.crowdAnalysisReport(token, date, type, kuaiShouGroup.getCampaignId(), kuaiShouGroup.getUnitId(), page, pageSize);
+                Thread.sleep(410);
+            }
+        } catch (Exception e) {
+            XxlJobHelper.log("定时获取人群分析报表数据异常", e);
+        }
+    }
+
 }