Ver código fonte

头条数据拉取

yumeng 1 ano atrás
pai
commit
8a618d2c8a

+ 29 - 6
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/controller/BytedanceController.java

@@ -19,6 +19,8 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 
 /**
@@ -38,29 +40,50 @@ public class BytedanceController {
     private IBytedancePromoterReportService promoterReportService;
     @Autowired
     private IChannelService channelService;
+    private static ExecutorService dailyRetrExecutorService = Executors.newFixedThreadPool(5);
+
 
     @GetMapping("/testRefreshToken")
     public void testRefreshToken() {
+        List<JSONObject> dataList = promoterReportService.getAllList();
+        List<String> days = DateUtils.getDays("2025-02-15", "2025-03-13");
+        System.err.println(days);
+
+        for (int i = 0; i < days.size(); i++) {
+            String s = days.get(i);
+            System.err.println(s);
+            for (int j = 0; j < dataList.size(); j++) {
+                JSONObject jsonObject = dataList.get(j);
+                Long advertiserId = jsonObject.getLong("advertiserId");
+                String accessToken = jsonObject.getString("accessToken");
+                dailyRetrExecutorService.submit(new Runnable() {
+                    @Override
+                    public void run() {
+                        if (!Check.isNull(accessToken)) {
+                            promoterReportService.getBytedancePromoterHour(advertiserId, accessToken, s, s, 1, 1);
+
+                        }
+                    }
+                });
+            }
+
+        }
 
 
         String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
         String yesDate = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
-       List<JSONObject> dataList =  promoterReportService.getListBydate(20250312);
+
         for (int i = 0; i < dataList.size(); i++) {
             JSONObject jsonObject = dataList.get(i);
             Long advertiserId = jsonObject.getLong("advertiserId");
             String accessToken = jsonObject.getString("accessToken");
-            promoterReportService.getBytedancePromoterDaily(advertiserId, accessToken, yesDate, yesDate, 1, 1);
+            //   promoterReportService.getBytedancePromoterDaily(advertiserId, accessToken, yesDate, yesDate, 1, 1);
             promoterReportService.getBytedancePromoterHour(advertiserId, accessToken, yesDate, yesDate, 1, 1);
 
 
         }
 
 
-
-
-
-
     }
 
 

+ 2 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedancePromoterReportMapper.java

@@ -23,4 +23,6 @@ public interface BytedancePromoterReportMapper {
     void replaceErrorInfo(BytedanceErrorLog errorInfo);
 
     List<JSONObject> getListBydate(@Param("date") Integer date);
+
+    List<JSONObject> getAllList();
 }

+ 6 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedancePromoterReportMapper.xml

@@ -27,6 +27,12 @@
                  LEFT JOIN deepthink.bytedance_advertiser_list t2 ON t1.advertiser_id = t2.advertiser_id
                  LEFT JOIN deepthink.bytedance_auth_list t3 ON t2.admin_advertiser_id = t3.admin_advertiser_id
     </select>
+    <select id="getAllList" resultType="com.alibaba.fastjson.JSONObject">
+
+        select t1.advertiser_id as 'advertiserId', t2.access_token as 'accessToken'
+        from deepthink.bytedance_advertiser_list t1
+                 left join deepthink.bytedance_auth_list t2 on t1.admin_advertiser_id = t2.admin_advertiser_id
+    </select>
 
     <insert id="replacePromoterReportHour">
         replace into bytedance_promoter_report_hour (

+ 2 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/IBytedancePromoterReportService.java

@@ -19,4 +19,6 @@ public interface IBytedancePromoterReportService {
     void getBytedancePromoterDaily(Long advertiserId, String accessToken, String startDate, String endDate, Integer page, Integer isLog);
 
     List<JSONObject> getListBydate(Integer date);
+
+    List<JSONObject> getAllList();
 }

+ 5 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedancePromoterReportServiceImpl.java

@@ -385,4 +385,9 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
     public List<JSONObject> getListBydate(Integer date) {
         return promoterReportMapper.getListBydate(date);
     }
+
+    @Override
+    public List<JSONObject> getAllList() {
+        return promoterReportMapper.getAllList();
+    }
 }

+ 28 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/utils/DateUtils.java

@@ -2,6 +2,7 @@ package cn.com.ctop.job.bytedance.data.utils;
 
 import lombok.extern.slf4j.Slf4j;
 
+import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -109,4 +110,31 @@ public class DateUtils {
         }
         return dateList;
     }
+
+    public static List<String> getDays(String startTime, String endTime) {
+        // 返回的日期集合
+        List<String> days = new ArrayList<String>();
+        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        try {
+            Date start = dateFormat.parse(startTime);
+            Date end = dateFormat.parse(endTime);
+
+            Calendar tempStart = Calendar.getInstance();
+            tempStart.setTime(start);
+
+            Calendar tempEnd = Calendar.getInstance();
+            tempEnd.setTime(end);
+            tempEnd.add(Calendar.DATE, +1);// 日期加1(包含结束)
+            while (tempStart.before(tempEnd)) {
+                days.add(dateFormat.format(tempStart.getTime()));
+                tempStart.add(Calendar.DAY_OF_YEAR, 1);
+            }
+
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+
+        return days;
+    }
+
 }