Sfoglia il codice sorgente

定制代码——获取年龄月数据

zhaoxian 4 anni fa
parent
commit
4a3aefd60f

+ 80 - 25
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouDailyAudienceReportJob.java

@@ -34,25 +34,79 @@ public class KuaishouDailyAudienceReportJob {
     @Autowired
     private IKuaishouStrategyService kuaishouStrategyService;
 
-    static ExecutorService executorService = Executors.newFixedThreadPool(6);
+    static ExecutorService executorService = Executors.newFixedThreadPool(35);
+    static ExecutorService executorService2 = Executors.newFixedThreadPool(2);
 
     @XxlJob("kuaishouDailyAudienceReportJob")
     public void execute() throws Exception {
-        List<CtopOauthToken> tokens = tokenService.selectKuaiShouToken();
-        if (null == tokens || tokens.isEmpty()) {
-            XxlJobHelper.log("定时获取人群分析报表数据异常:未获取到可用的token");
-            XxlJobHelper.handleFail();
-            return;
-        }
-        //查询手淘有效账户数据
-        List<Long> accountIds = kuaishouStrategyService.queryShouTaoAccounts();
-        if (Check.isNull(accountIds) || accountIds.size() == 0) {
-            XxlJobHelper.log("定时获取人群分析报表数据异常:未获取到有效策略账户信息");
-            XxlJobHelper.handleFail();
-            return;
+//        List<CtopOauthToken> tokens = tokenService.selectKuaiShouToken();
+//        if (null == tokens || tokens.isEmpty()) {
+//            XxlJobHelper.log("定时获取人群分析报表数据异常:未获取到可用的token");
+//            XxlJobHelper.handleFail();
+//            return;
+//        }
+//        //查询手淘有效账户数据
+//        List<Long> accountIds = kuaishouStrategyService.queryShouTaoAccounts();
+//        if (Check.isNull(accountIds) || accountIds.size() == 0) {
+//            XxlJobHelper.log("定时获取人群分析报表数据异常:未获取到有效策略账户信息");
+//            XxlJobHelper.handleFail();
+//            return;
+//        }
+//        //筛选出有效账户,获取该账户的组级人群报表数据
+//        List<CtopOauthToken> activeTokens = new ArrayList<>();
+//        for (Long accountId : accountIds) {
+//            for (CtopOauthToken token : tokens) {
+//                if (token.getAccountId() - accountId == 0) {
+//                    activeTokens.add(token);
+//                }
+//            }
+//        }
+//        if (!Check.isNull(activeTokens) && activeTokens.size() > 0) {
+//            int page = 1;
+//            int pageSize = 2000;
+//            //查询两天前日期
+//            String date = DateUtils.getLastDay(DateUtils.date2Str(), 2);
+//            activeTokens.forEach(token -> executorService.submit(() -> {
+//                getAudienceReportData(token, date, "province", page, pageSize);
+//                getAudienceReportData(token, date, "city", page, pageSize);
+//                getAudienceReportData(token, date, "gender", page, pageSize);
+//                getAudienceReportData(token, date, "ageSegment", page, pageSize);
+//                getAudienceReportData(token, date, "clientId", page, pageSize);
+//                getAudienceReportData(token, date, "businessInterestTags", page, pageSize);
+//            }));
+//        }
+//    }
+//
+//    private void getAudienceReportData(CtopOauthToken token, String date, String type, Integer page, Integer pageSize) {
+//        try {
+//            List<KuaiShouGroup> kuaiShouGroups = kuaiShouGroupService.queryUnitInfoByAccountId(token.getAccountId());
+//            for (KuaiShouGroup kuaiShouGroup : kuaiShouGroups) {
+//                kuaishouAudienceReportDailyService.crowdAnalysisReport(token, date, type, kuaiShouGroup.getCampaignId(), kuaiShouGroup.getUnitId(), page, pageSize);
+//            }
+//        } catch (Exception e) {
+//            XxlJobHelper.log("定时获取人群分析报表数据异常", e);
+//        }
+//    }
+        ReportDaily();
+    }
+
+    public void ReportDaily() throws Exception {
+        //查询两天前数据  策略
+        List<String> dates = new ArrayList<>();
+        for (int i = 2; i < 33; i++) {
+            String dat = DateUtils.getLastDay(DateUtils.date2Str(), i);
+            dates.add(dat);
         }
+        List<CtopOauthToken> tokens = tokenService.selectKuaiShouToken();
         //筛选出有效账户,获取该账户的组级人群报表数据
         List<CtopOauthToken> activeTokens = new ArrayList<>();
+        List<Long> accountIds = new ArrayList<>();
+        accountIds.add(9556344L);
+        accountIds.add(9743727L);
+        accountIds.add(9743738L);
+        accountIds.add(9812668L);
+        accountIds.add(9901966L);
+        accountIds.add(9767034L);
         for (Long accountId : accountIds) {
             for (CtopOauthToken token : tokens) {
                 if (token.getAccountId() - accountId == 0) {
@@ -60,20 +114,19 @@ public class KuaishouDailyAudienceReportJob {
                 }
             }
         }
-        if (!Check.isNull(activeTokens) && activeTokens.size() > 0) {
-            int page = 1;
-            int pageSize = 2000;
-            //查询两天前日期
-            String date = DateUtils.getLastDay(DateUtils.date2Str(), 2);
-            activeTokens.forEach(token -> executorService.submit(() -> {
-                getAudienceReportData(token, date, "province", page, pageSize);
-                getAudienceReportData(token, date, "city", page, pageSize);
-                getAudienceReportData(token, date, "gender", page, pageSize);
+
+        int page = 1;
+        int pageSize = 2000;
+        activeTokens.forEach(token -> executorService2.submit(() -> {
+            dates.forEach(date -> executorService.submit(() -> {
                 getAudienceReportData(token, date, "ageSegment", page, pageSize);
-                getAudienceReportData(token, date, "clientId", page, pageSize);
-                getAudienceReportData(token, date, "businessInterestTags", 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) {
@@ -81,9 +134,11 @@ public class KuaishouDailyAudienceReportJob {
             List<KuaiShouGroup> kuaiShouGroups = kuaiShouGroupService.queryUnitInfoByAccountId(token.getAccountId());
             for (KuaiShouGroup kuaiShouGroup : kuaiShouGroups) {
                 kuaishouAudienceReportDailyService.crowdAnalysisReport(token, date, type, kuaiShouGroup.getCampaignId(), kuaiShouGroup.getUnitId(), page, pageSize);
+                Thread.sleep(800);
             }
         } catch (Exception e) {
             XxlJobHelper.log("定时获取人群分析报表数据异常", e);
         }
     }
+
 }