Kaynağa Gözat

Merge branch 'branch_1.2'

lining 1 yıl önce
ebeveyn
işleme
c3f83657ad

+ 32 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/controller/AdqController.java

@@ -1,5 +1,6 @@
 package cn.com.ctop.job.adq.controller;
 
+import cn.com.ctop.job.adq.data.entity.AdvertiserAccount;
 import cn.com.ctop.job.adq.data.service.*;
 import cn.com.ctop.job.adq.data.utils.Check;
 import cn.com.ctop.job.adq.data.utils.DateUtils;
@@ -13,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -93,5 +96,34 @@ public class AdqController {
 
     }
 
+    @GetMapping("/generateFlowDetailsReport")
+    public void generateFlowDetailsReport(String startDate, String endDate) {
+        List<AdvertiserAccount> adAccount = adqFlowDetailsReportService.getAdAccount();
+
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        LocalDate start = LocalDate.parse(startDate, formatter);
+        LocalDate end = LocalDate.parse(endDate, formatter);
+        while (!start.isAfter(end)) {
+            String startDateString = start.format(formatter);
+            System.out.println("startDateString:" + startDateString);
+            adAccount.forEach(advertiserAccount -> {
+                dailyExecutorService.submit(new Runnable() {
+
+                    @Override
+                    public void run() {
+                        if(!Check.isNull(advertiserAccount.getAccessToken())){
+                            adqFlowDetailsReportService.getAdqFlowDetailsDailyReport(advertiserAccount.getAdvertiserId(), advertiserAccount.getAccessToken(), startDateString, startDateString, 1);
+                        }
+                    }
+                });
+
+            });
+            start = start.plusDays(1);
+
+
+        }
+
+    }
+
 
 }

+ 16 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/entity/AdvertiserAccount.java

@@ -0,0 +1,16 @@
+package cn.com.ctop.job.adq.data.entity;
+
+import lombok.Data;
+
+/**
+ * @author lining
+ * @ClassName AdvertiserAccount
+ * @description: TODO
+ * @date 2025年04月27日
+ * @version: 1.0
+ */
+@Data
+public class AdvertiserAccount {
+    private Long advertiserId;
+    private String accessToken;
+}

+ 2 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqFlowDetailsReportDailyMapper.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.job.adq.data.mapper;
 
 import cn.com.ctop.job.adq.data.entity.AdqFlowDetailsReportDaily;
+import cn.com.ctop.job.adq.data.entity.AdvertiserAccount;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -13,6 +14,7 @@ import java.util.List;
  * @version: 1.0
  */
 public interface AdqFlowDetailsReportDailyMapper {
+    List<AdvertiserAccount> getAdAccount();
 
     void replaceFlowDetailsReportDailies(@Param("list") List<AdqFlowDetailsReportDaily> dailyList);
 

+ 11 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqFlowDetailsReportMapper.xml

@@ -1,6 +1,17 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="cn.com.ctop.job.adq.data.mapper.AdqFlowDetailsReportDailyMapper">
+
+    <select id="getAdAccount" resultType="cn.com.ctop.job.adq.data.entity.AdvertiserAccount">
+        select
+            tb1.advertiser_id as advertiserId,
+            tb2.access_token as accessToken
+        from
+            deepthink.adq_advertiser_list tb1
+                left join deepthink.adq_auth_list tb2 on
+                tb1.admin_advertiser_id = tb2.admin_advertiser_id
+    </select>
+
     <insert id="replaceFlowDetailsReportDailies">
         replace into adq_flow_details_report_daily (
             advertiser_id,

+ 6 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/IAdqFlowDetailsReportService.java

@@ -1,5 +1,9 @@
 package cn.com.ctop.job.adq.data.service;
 
+import cn.com.ctop.job.adq.data.entity.AdvertiserAccount;
+
+import java.util.List;
+
 /**
  * @author lining
  * @ClassName IAdqFlowDetailsReportService
@@ -9,5 +13,7 @@ package cn.com.ctop.job.adq.data.service;
  */
 public interface IAdqFlowDetailsReportService {
 
+    List<AdvertiserAccount> getAdAccount();
+
     void getAdqFlowDetailsDailyReport(Long advertiserId, String accessToken, String startDate, String endDate, Integer page);
 }

+ 7 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqFlowDetailsReportServiceImpl.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.job.adq.data.service.impl;
 
 import cn.com.ctop.job.adq.data.entity.AdqFlowDetailsReportDaily;
+import cn.com.ctop.job.adq.data.entity.AdvertiserAccount;
 import cn.com.ctop.job.adq.data.mapper.AdqFlowDetailsReportDailyMapper;
 import cn.com.ctop.job.adq.data.service.IAdqFlowDetailsReportService;
 import cn.com.ctop.job.adq.data.utils.Check;
@@ -30,6 +31,12 @@ public class AdqFlowDetailsReportServiceImpl implements IAdqFlowDetailsReportSer
 
     @Resource
     private AdqFlowDetailsReportDailyMapper adqFlowDetailsReportDailyMapper;
+
+    @Override
+    public List<AdvertiserAccount> getAdAccount() {
+        return adqFlowDetailsReportDailyMapper.getAdAccount();
+    }
+
     @Override
     public void getAdqFlowDetailsDailyReport(Long advertiserId, String accessToken, String startDate, String endDate, Integer page) {
         Map<String, Object> paramsMap = new HashMap<>();

+ 1 - 1
job-adq/src/main/resources/application.yml

@@ -81,7 +81,7 @@ spring:
       datasource:
         master:
           url: jdbc:mysql://172.16.0.117:3390/media_api?characterEncoding=UTF-8&useUnicode=true&useSSL=false
-         # url: jdbc:mysql://8.147.135.80:3390/media_api?characterEncoding=UTF-8&useUnicode=true&useSSL=false
+#          url: jdbc:mysql://8.147.135.80:3390/media_api?characterEncoding=UTF-8&useUnicode=true&useSSL=false
           username: data
           password: hr@2025..
           driver-class-name: com.mysql.jdbc.Driver