yumeng 1 年之前
父节点
当前提交
92eb50692a

+ 11 - 17
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/controller/BytedanceController.java

@@ -174,25 +174,19 @@ public class BytedanceController {
     }
 
 
-/*    @GetMapping(value = "/getReports")
+    @GetMapping(value = "/getReports")
     public void getReports() {
         List<JSONObject> tokens = tokenService.getAgentTokens();
-        //获取两个时间的每一天
-        List<String> perDay = DateUtils.getPerDay("2024-06-24", "2024-06-24");
-        for (String date : perDay) {
-            for (JSONObject obj : tokens) {
-                OauthToken oauthToken = new OauthToken();
-                oauthToken.setAccessToken(obj.getString("access_token"));
-                oauthToken.setAccountId(73970348172L);
-//                dailyExecutorService.submit(
-//                        new Runnable() {
-//                            @Override
-//                            public void run() {
-                                advertiserDataService.getAgentReport(oauthToken, date, date);
-//                            }
-//                        });
-            }
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String yesterda = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+        String yesterda2 = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -2);
+        String yesterda3 = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -3);
+        for (JSONObject obj : tokens) {
+            advertiserDataService.getAgentReport(obj, yesterda, yesterda);
+      /*      advertiserDataService.getAgentReport(obj, yesterda2, yesterda2);
+            advertiserDataService.getAgentReport(obj, yesterda3, yesterda3);*/
+
         }
-    }*/
+    }
 
 }

+ 37 - 34
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/ByteDanceAdvertiserDataServiceImpl.java

@@ -639,60 +639,63 @@ public class ByteDanceAdvertiserDataServiceImpl implements IByteDanceAdvertiserD
         jsonObject.put("agent_id", token.getLong("accountId"));
         jsonObject.put("start_date", startDate);
         jsonObject.put("end_date", endDate);
-        jsonObject.put("page_size", 1000);
+        jsonObject.put("cursor_size", 1000);
 
-        getAgentReportByPage(token, jsonObject, 1);
+        getAgentReportByPage(token, jsonObject, 0L);
     }
 
     /**
      * 获取代理商
      */
-    private void getAgentReportByPage(JSONObject token, JSONObject conditions, Integer page) {
-        conditions.put("page", page);
+    private void getAgentReportByPage(JSONObject token, JSONObject conditions, Long cursor) {
+        conditions.put("cursor", cursor);
         SerializeConfig config = new SerializeConfig();
         config.propertyNamingStrategy = PropertyNamingStrategy.SnakeCase;
         JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(conditions, config));
-//        System.out.println("----------------入参:" + jsonObject);
-//        System.out.println("-");
         JSONObject getObject = getAgentStat(token, jsonObject);
-//        System.out.println("----------------结果:" + getObject);
         if (null == getObject) {
             XxlJobHelper.log("头条代理商数据获取异常");
             return;
         }
         Integer code = getObject.getInteger("code");
         if (code == 0) {
-            JSONArray dataArray = getObject.getJSONObject("data").getJSONArray("list");
-            if (null == dataArray || dataArray.isEmpty()) {
-                return;
-            }
-            List<BytedanceAgentReportDaily> dailyList = new ArrayList<>();
-            try {
-                Integer startDate = DateUtils.getDateInteger(conditions.getString("start_date"));
-                for (int i = 0; i < dataArray.size(); i++) {
-                    JSONObject data = dataArray.getJSONObject(i);
-                    // 日报
-                    BytedanceAgentReportDaily dailyReport = JSONObject.parseObject(data.toJSONString(), BytedanceAgentReportDaily.class);
-                    dailyReport.setStatDatetime(String.valueOf(startDate));
-                    dailyList.add(dailyReport);
+            JSONObject dataJson = getObject.getJSONObject("data");
+            if (!Check.isNull(dataJson)) {
+                JSONObject cursorInfo = dataJson.getJSONObject("cursor_info");
+                if (!Check.isNull(cursorInfo)) {
+                    if (cursorInfo.getInteger("has_more") == 2) {
+                        return;
+                    }
+                    cursor = cursorInfo.getLong("cursor");
                 }
-                if (dailyList.size() > 0) {
-                    bytedanceAgentReportDailyMapper.insert(dailyList);
+                JSONArray dataArray = dataJson.getJSONArray("list");
+                if (null == dataArray || dataArray.isEmpty()) {
+                    return;
                 }
-            } catch (Exception e) {
-                e.printStackTrace();
-                log.info("获取代理商数据错误:{}", e.toString());
+                List<BytedanceAgentReportDaily> dailyList = new ArrayList<>();
+                try {
+                    Integer startDate = DateUtils.getDateInteger(conditions.getString("start_date"));
+                    for (int i = 0; i < dataArray.size(); i++) {
+                        JSONObject data = dataArray.getJSONObject(i);
+                        // 日报
+                        BytedanceAgentReportDaily dailyReport = JSONObject.parseObject(data.toJSONString(), BytedanceAgentReportDaily.class);
+                        dailyReport.setStatDatetime(String.valueOf(startDate));
+                        dailyList.add(dailyReport);
+                    }
+                    if (dailyList.size() > 0) {
+                        bytedanceAgentReportDailyMapper.insert(dailyList);
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    log.info("获取代理商数据错误:{}", e.toString());
+                }
+            } else {
+                log.error("获取代理商获取失败,结果:{}", getObject.getString("message"));
+                return;
             }
-        } else {
-            log.error("获取代理商获取失败,结果:{}", getObject.getString("message"));
-            return;
-        }
-        page++;
-        int totalPage =
-                getObject.getJSONObject("data").getJSONObject("page_info").getInteger("total_page");
-        if (page <= totalPage) {
-            getAgentReportByPage(token, conditions, page);
         }
+        getAgentReportByPage(token, conditions, cursor);
+
 
     }