yumeng 1 ay önce
ebeveyn
işleme
c61a37b95a
49 değiştirilmiş dosya ile 168 ekleme ve 2888 silme
  1. 1 12
      job-adq/pom.xml
  2. 0 153
      job-adq/src/main/java/cn/com/ctop/job/adq/controller/AdqAssetController.java
  3. 0 64
      job-adq/src/main/java/cn/com/ctop/job/adq/controller/AdqController.java
  4. 0 31
      job-adq/src/main/java/cn/com/ctop/job/adq/data/entity/AdqPublisherAdunitGeneral.java
  5. 0 60
      job-adq/src/main/java/cn/com/ctop/job/adq/data/entity/LySendMessageLog.java
  6. 0 5
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqAccountReportMapper.java
  7. 0 37
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqAdIncomeMapper.java
  8. 0 5
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqAssetReportMapper.java
  9. 0 6
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqCreativeReportMapper.java
  10. 0 4
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqErrorLogMapper.java
  11. 0 3
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqFlowDetailsReportDailyMapper.java
  12. 11 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqMaterialReportMapper.java
  13. 0 15
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AppBanWarnMapper.java
  14. 3 112
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqAccountReportMapper.xml
  15. 0 191
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqAdIncomeMapper.xml
  16. 2 85
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqAssetReportMapper.xml
  17. 0 132
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqCreativeReportMapper.xml
  18. 0 17
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqErrorLogMapper.xml
  19. 0 30
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqFlowDetailsReportMapper.xml
  20. 64 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqMaterialReportMapper.xml
  21. 0 32
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AppBanWarnMapper.xml
  22. 0 29
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/IAdqAdIncomeService.java
  23. 0 2
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/IAdqCreativeReportService.java
  24. 0 5
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/IAppBanWarnService.java
  25. 1 16
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqAccountReportServiceImpl.java
  26. 0 754
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqAdIncomeServiceImpl.java
  27. 0 12
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqAssetReportServiceImpl.java
  28. 0 20
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqCreativeCreativeReportServiceImpl.java
  29. 0 6
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqFlowDetailsReportServiceImpl.java
  30. 9 3
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqMaterialReportServiceImpl.java
  31. 0 25
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqRetryReportServiceImpl.java
  32. 0 80
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AppBanWarnServiceImpl.java
  33. 4 5
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AppletTokenRefreshServiceImpl.java
  34. 24 102
      job-adq/src/main/java/cn/com/ctop/job/adq/handler/AdqAccountReportJob.java
  35. 0 87
      job-adq/src/main/java/cn/com/ctop/job/adq/handler/AdqRetryReportJob.java
  36. 0 25
      job-adq/src/main/java/cn/com/ctop/job/adq/handler/ProductJob.java
  37. 0 33
      job-adq/src/main/java/cn/com/ctop/job/adq/handler/appBanWarnJob.java
  38. 0 49
      job-adq/src/main/java/cn/com/ctop/job/adq/utils/DorisConfig.java
  39. 0 206
      job-adq/src/main/java/cn/com/ctop/job/adq/utils/Redis2Config.java
  40. 0 16
      job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/DorisBufferConfig.java
  41. 0 51
      job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/DorisMultiTableStreamLoadManager.java
  42. 0 7
      job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/DorisSinkClient.java
  43. 0 17
      job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/RecordWithMeta.java
  44. 0 94
      job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/SimpleHttpDorisSinkClient.java
  45. 0 38
      job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/StrictRedirectStrategy.java
  46. 0 96
      job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/TableBufferManager.java
  47. 0 26
      job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/TableKey.java
  48. 35 78
      job-adq/src/main/resources/application.yml
  49. 14 12
      xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java

+ 1 - 12
job-adq/pom.xml

@@ -9,7 +9,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>2.3.12.RELEASE</version>
+        <version>2.4.5</version>
         <relativePath/>
     </parent>
     <properties>
@@ -89,12 +89,6 @@
             <artifactId>druid-spring-boot-starter</artifactId>
             <version>${druid.version}</version>
         </dependency>
-        <!-- 动态数据源 -->
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
-            <version>2.5.4</version>
-        </dependency>
         <!-- junit -->
         <dependency>
             <groupId>junit</groupId>
@@ -178,11 +172,6 @@
             <artifactId>spring-boot-starter-data-redis</artifactId>
         </dependency>
         <dependency>
-            <groupId>redis.clients</groupId>
-            <artifactId>jedis</artifactId>
-            <version>3.1.0</version>
-        </dependency>
-        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-pool2</artifactId>
             <version>2.6.2</version>

+ 0 - 153
job-adq/src/main/java/cn/com/ctop/job/adq/controller/AdqAssetController.java

@@ -1,11 +1,9 @@
 package cn.com.ctop.job.adq.controller;
 
 import cn.com.ctop.job.adq.data.entity.MessageModel;
-import cn.com.ctop.job.adq.data.service.IAdqAdIncomeService;
 import cn.com.ctop.job.adq.data.service.IAdqAssetReportService;
 import cn.com.ctop.job.adq.data.service.IAdqCreativeReportService;
 import cn.com.ctop.job.adq.data.utils.Check;
-import cn.com.ctop.job.adq.data.utils.DateUtils;
 import com.alibaba.fastjson.JSONObject;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
@@ -30,8 +28,6 @@ public class AdqAssetController {
     private IAdqCreativeReportService adqCreativeReportService;
     @Autowired
     private IAdqAssetReportService adqAssetReportService;
-    @Autowired
-    private IAdqAdIncomeService adqAdIncomeService;
 
     @GetMapping("/assetInfo")
     public MessageModel assetInfo(@RequestParam(required = false) Long advertiserId) {
@@ -70,153 +66,4 @@ public class AdqAssetController {
         return MessageModel.ok();
     }
 
-    @GetMapping("/miniAppAdIncome")
-    public MessageModel miniAppAdIncome(@RequestParam(required = false) String appId,
-                                        @RequestParam(required = false) String startDate,
-                                        @RequestParam(required = false) String endDate) {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(appId);
-        String start = startDate == null ? DateUtils.getNowAddDate("yyyy-MM-dd", -1) : startDate;
-        String end = endDate == null ? DateUtils.getNowDate("yyyy-MM-dd") : endDate;
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            dailyExecutorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    adqAdIncomeService.getAdqAdIncome(start, end, app, appletId, 1, 1, null, null);
-                }
-            });
-        }
-        return MessageModel.ok();
-    }
-
-    @GetMapping("/miniAppAdPosIncome")
-    public MessageModel miniAppAdPosIncome(@RequestParam(required = false) String appId,
-                                        @RequestParam(required = false) String startDate,
-                                        @RequestParam(required = false) String endDate) {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(appId);
-        String start = startDate == null ? DateUtils.getNowAddDate("yyyy-MM-dd", -1) : startDate;
-        String end = endDate == null ? DateUtils.getNowDate("yyyy-MM-dd") : endDate;
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            dailyExecutorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    adqAdIncomeService.getAdqAdPosIncome(start, end, app, appletId, 1, 1, null, null);
-                }
-            });
-        }
-        return MessageModel.ok();
-    }
-
-    @GetMapping("/miniAppAdUnitList")
-    public MessageModel miniAppAdUnitList(@RequestParam(required = false) String appId) {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(appId);
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            dailyExecutorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    adqAdIncomeService.getAdqAdUnitList(app, appletId, 1);
-                }
-            });
-        }
-        return MessageModel.ok();
-    }
-
-    @GetMapping("/miniAppAdIncomeRate")
-    public MessageModel miniAppAdIncomeRate(@RequestParam(required = false) String appId,
-                                        String startDate, String endDate) {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(appId);
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            dailyExecutorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    adqAdIncomeService.getAdqAdIncomeRate(app, appletId, startDate, endDate);
-                }
-            });
-        }
-        return MessageModel.ok();
-    }
-
-    @GetMapping("/gameGiftList")
-    public MessageModel gameGiftList(@RequestParam(required = false) String appId,
-                                        @RequestParam(required = false) String startDate,
-                                        @RequestParam(required = false) String endDate) {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(appId);
-        String start = startDate == null ? DateUtils.getNowAddDate("yyyy-MM-dd", -1) : startDate;
-        String end = endDate == null ? DateUtils.getNowDate("yyyy-MM-dd") : endDate;
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            dailyExecutorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    adqAdIncomeService.getGameGiftList(start, end, app, appletId, 1, 1, null, null);
-                }
-            });
-        }
-        return MessageModel.ok();
-    }
-
-    @GetMapping("/gameDiviceSave")
-    public MessageModel gameDiviceSave(@RequestParam(required = false) String appId) {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(appId);
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            dailyExecutorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    adqAdIncomeService.getGameDiviceSave(app, appletId, 1, 1, null, null);
-                }
-            });
-        }
-        return MessageModel.ok();
-    }
-
-    @GetMapping("/gameDiviceTransfer")
-    public MessageModel gameDiviceTransfer(@RequestParam(required = false) String appId,
-                                     @RequestParam(required = false) String startDate,
-                                     @RequestParam(required = false) String endDate) {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(appId);
-        String start = startDate == null ? DateUtils.getNowAddDate("yyyy-MM-dd", -1) : startDate;
-        String end = endDate == null ? DateUtils.getNowDate("yyyy-MM-dd") : endDate;
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            dailyExecutorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    adqAdIncomeService.getGameDiviceTransfer(start, end, app, appletId, 1, 1, null, null);
-                }
-            });
-        }
-        return MessageModel.ok();
-    }
-
-    @GetMapping("/vpAdFunds")
-    public MessageModel vpAdFunds(@RequestParam(required = false) String appId,
-                                           @RequestParam(required = false) String startDate,
-                                           @RequestParam(required = false) String endDate) {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(appId);
-        String start = startDate == null ? DateUtils.getNowAddDate("yyyy-MM-dd", -1) : startDate;
-        String end = endDate == null ? DateUtils.getNowDate("yyyy-MM-dd") : endDate;
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            String prodKey = jsonObject.getString("prod_key");
-            dailyExecutorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    adqAdIncomeService.queryVPAdFunds(start, end, app, appletId, prodKey, 1, 1, null, null);
-                }
-            });
-        }
-        return MessageModel.ok();
-    }
 }

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

@@ -3,7 +3,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;
 import cn.com.ctop.job.adq.handler.AdqRetryReportJob;
 import com.alibaba.fastjson.JSONObject;
 import io.swagger.annotations.Api;
@@ -36,8 +35,6 @@ public class AdqController {
     private IAdqCreativeReportService adqReportService;
 
     @Autowired
-    private IAdqAccountReportService accountReportService;
-    @Autowired
     private IAdqRetryReportService retryReportService;
     @Autowired
     private IAdqAdminAdvertiserListService adminAdvertiserListService;
@@ -45,11 +42,6 @@ public class AdqController {
     @Autowired
     private IAdqFlowDetailsReportService adqFlowDetailsReportService;
     @Autowired
-    private IAppBanWarnService appBanWarnService;
-
-    @Autowired
-    private IAdqMaterialReportService adqMaterialReportService;
-    @Autowired
     private IDailyBalanceReportService dailyBalanceReportService;
     @Autowired
     private IClCreativeUserService creativeUserService;
@@ -127,41 +119,6 @@ public class AdqController {
 
     @GetMapping("/getReport")
     public JSONObject getReport() {
-        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
-        String endDateStr = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
-        String startDateStr = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -4);
-        Integer startDate = Integer.valueOf(startDateStr.replace("-", ""));
-        Integer endDate = Integer.valueOf(endDateStr.replace("-", ""));
-        List<JSONObject> dataJson = adqReportService.getAccountListByDate(startDate, endDate);
-        if (!Check.isNull(dataJson)) {
-            for (int i = 0; i < dataJson.size(); i++) {
-                JSONObject jsonObject = dataJson.get(i);
-                Long advertiserId = jsonObject.getLong("advertiserId");
-                String accessToken = jsonObject.getString("accessToken");
-                dailyExecutorService.submit(new Runnable() {
-                    @Override
-                    public void run() {
-                        adqReportService.getAdqCreativeDaily(advertiserId, accessToken, startDateStr, endDateStr, 1, 1);
-                        accountReportService.getAdqAccountDaily(advertiserId, accessToken, startDateStr, endDateStr, 1, 1);
-                    }
-                });
-            }
-        }
-        return null;
-
-    }
-
-
-    @GetMapping("/testCreativeHour")
-    public JSONObject testRefreshToken(Long advertiserId, String accessToken, String date) {
-
-        long currentTimeMillis = System.currentTimeMillis();
-        // 转换为秒级时间戳
-        long currentTimeSeconds = currentTimeMillis / 1000;
-        // 计算10分钟之前的时间戳(秒级)
-        long tenMinutesAgoSeconds = currentTimeSeconds - 600; // 10分钟前的时间戳(秒级)
-        System.err.println(tenMinutesAgoSeconds);
-        appBanWarnService.appBanWarnJob(tenMinutesAgoSeconds);
         return null;
 
     }
@@ -239,25 +196,4 @@ public class AdqController {
     }
 
 
-    @GetMapping("/materialDaily")
-    public void materialDaily(String startDate, String endDate) {
-        Integer startDateInt = Integer.valueOf(startDate.replace("-", ""));
-        Integer endDateInt = Integer.valueOf(endDate.replace("-", ""));
-        List<JSONObject> dataJson = adqReportService.getAccountListByDate(startDateInt, endDateInt);
-        if (!Check.isNull(dataJson)) {
-            for (int i = 0; i < dataJson.size(); i++) {
-                JSONObject jsonObject = dataJson.get(i);
-                Long advertiserId = jsonObject.getLong("advertiserId");
-                String accessToken = jsonObject.getString("accessToken");
-                dailyExecutorService.submit(new Runnable() {
-                    @Override
-                    public void run() {
-                        adqMaterialReportService.getAdqMaterialDailyReport(advertiserId, accessToken, startDate, endDate, 1, 1, null, 0);
-                    }
-                });
-            }
-        }
-    }
-
-
 }

+ 0 - 31
job-adq/src/main/java/cn/com/ctop/job/adq/data/entity/AdqPublisherAdunitGeneral.java

@@ -1,31 +0,0 @@
-package cn.com.ctop.job.adq.data.entity;
-
-import com.alibaba.fastjson.annotation.JSONField;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@AllArgsConstructor
-@NoArgsConstructor
-@Data
-public class AdqPublisherAdunitGeneral {
-    private String appId;
-    private String date;
-    private Integer statDate;
-    private String adUnitId;
-    private String adUnitName;
-    private String adSlot;
-    private String adSlotName;
-    private Long agencyIncome;
-    private Long clickCount;
-    private java.math.BigDecimal clickRate;
-    private java.math.BigDecimal ecpm;
-    private Long exposureCount;
-    private java.math.BigDecimal exposureRate;
-    private Long income;
-    private Long isSmartAds;
-    private String parentTemplType;
-    private Long publisherIncome;
-    private Long reqSuccCount;
-    private String slotStr;
-}

+ 0 - 60
job-adq/src/main/java/cn/com/ctop/job/adq/data/entity/LySendMessageLog.java

@@ -1,60 +0,0 @@
-package cn.com.ctop.job.adq.data.entity;
-
-
-/**
- * 【请填写功能名称】对象 adq_advertiser_list
- *
- * @author ruoyi
- * @date 2025-03-03
- */
-public class LySendMessageLog {
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 管家账户ID
-     */
-    private Long id;
-
-    /**
-     * 广告主ID
-     */
-    private String appId;
-
-    /**
-     * 广告主名称
-     */
-    private String sendDate;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getAppId() {
-        return appId;
-    }
-
-    public void setAppId(String appId) {
-        this.appId = appId;
-    }
-
-    public String getSendDate() {
-        return sendDate;
-    }
-
-    public void setSendDate(String sendDate) {
-        this.sendDate = sendDate;
-    }
-
-    @Override
-    public String toString() {
-        return "LySendMessageLog{" +
-                "id=" + id +
-                ", appId='" + appId + '\'' +
-                ", sendDate='" + sendDate + '\'' +
-                '}';
-    }
-}

+ 0 - 5
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqAccountReportMapper.java

@@ -2,19 +2,14 @@ package cn.com.ctop.job.adq.data.mapper;
 
 import cn.com.ctop.job.adq.data.entity.AdqAdvertiserReportDaily;
 import cn.com.ctop.job.adq.data.entity.AdqAdvertiserReportHour;
-import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 public interface AdqAccountReportMapper {
     void addAccountHourList(@Param("adds") List<AdqAdvertiserReportHour> hourList);
-    @DS("sd_group_commit")
-    void addAccountHourListSD(@Param("adds") List<AdqAdvertiserReportHour> hourList);
 
     void addAccountDailyList(@Param("adds") List<AdqAdvertiserReportDaily> dailyList);
-    @DS("sd_group_commit")
-    void addAccountDailyListSD(@Param("adds") List<AdqAdvertiserReportDaily> dailyList);
 
     void updateAdqAccountStatus();
 

+ 0 - 37
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqAdIncomeMapper.java

@@ -1,37 +0,0 @@
-package cn.com.ctop.job.adq.data.mapper;
-
-import cn.com.ctop.job.adq.data.entity.AdqPublisherAdunitGeneral;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.dynamic.datasource.annotation.DS;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public interface AdqAdIncomeMapper {
-
-    void insertAdqAdIncome(List<AdqPublisherAdunitGeneral> reports);
-
-    @DS("sd_group_commit")
-    void insertAdqAdIncomeSD(List<AdqPublisherAdunitGeneral> reports);
-
-    List<JSONObject> queryAdqIaaMiniApp(@Param("appId")String appId);
-    List<JSONObject> queryAdqAllMiniApp(@Param("appId")String appId);
-
-    List<JSONObject> queryAdqAdIncomeRetryJob();
-
-    void insertAdUnitList(@Param("list") JSONArray list);
-
-    void insertAdIncomeRate(@Param("list") JSONArray results);
-
-    void insertAdqGameGiftList(@Param("list") ArrayList<JSONObject> reports);
-
-    void insertAdqGameDiviceSave(@Param("list")ArrayList<JSONObject> reports);
-    void insertAdqGameDiviceSaveDetail(@Param("list")ArrayList<JSONObject> reports);
-    void insertAdqGameDiviceTransfer(@Param("list")ArrayList<JSONObject> reports);
-
-    void insertAdqAdPosIncome(@Param("list")List<JSONObject> reports);
-
-    void insertVPAdFunds(ArrayList<JSONObject> reports);
-}

+ 0 - 5
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqAssetReportMapper.java

@@ -2,16 +2,11 @@ package cn.com.ctop.job.adq.data.mapper;
 
 import cn.com.ctop.job.adq.data.entity.AdqAssetInfo;
 import cn.com.ctop.job.adq.data.entity.AdqAssetReportDaily;
-import com.baomidou.dynamic.datasource.annotation.DS;
 
 import java.util.List;
 
 public interface AdqAssetReportMapper {
     void insertAdqAssetReportDaily(List<AdqAssetReportDaily> reports);
-    @DS("sd_group_commit")
-    void insertAdqAssetReportDailySD(List<AdqAssetReportDaily> reports);
 
     void insertAdqAssetInfo(List<AdqAssetInfo> infos);
-    @DS("sd_group_commit")
-    void insertAdqAssetInfoSD(List<AdqAssetInfo> infos);
 }

+ 0 - 6
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqCreativeReportMapper.java

@@ -3,7 +3,6 @@ package cn.com.ctop.job.adq.data.mapper;
 import cn.com.ctop.job.adq.data.entity.AdqCreativeReportDaily;
 import cn.com.ctop.job.adq.data.entity.AdqCreativeReportHour;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -11,13 +10,8 @@ import java.util.List;
 public interface AdqCreativeReportMapper {
     void addsHourList(@Param("adds") List<AdqCreativeReportHour> hourList);
 
-    @DS("sd_group_commit")
-    void addsHourListSD(@Param("adds") List<AdqCreativeReportHour> hourList);
-
     List<JSONObject> getAccountList(@Param("accountId") Long accountId);
 
     void addsDaily(@Param("adds") List<AdqCreativeReportDaily> dailies);
-    @DS("sd_group_commit")
-    void addsDailySD(@Param("adds") List<AdqCreativeReportDaily> dailies);
 
 }

+ 0 - 4
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqErrorLogMapper.java

@@ -2,7 +2,6 @@ package cn.com.ctop.job.adq.data.mapper;
 
 import cn.com.ctop.job.adq.data.entity.AdqErrorLog;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -11,7 +10,4 @@ public interface AdqErrorLogMapper {
     void replaceErrorInfo(AdqErrorLog errorInfo);
     void deleteInfoByErrorId(@Param("errorId") Long errorId);
     List<JSONObject> getErrorLogs();
-
-    @DS("selectdb")
-    List<JSONObject> getAccountListByDate(@Param("startDate") Integer startDate, @Param("endDate") Integer endDate);
 }

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

@@ -2,7 +2,6 @@ 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 com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -18,7 +17,5 @@ public interface AdqFlowDetailsReportDailyMapper {
     List<AdvertiserAccount> getAdAccount();
 
     void replaceFlowDetailsReportDailies(@Param("list") List<AdqFlowDetailsReportDaily> dailyList);
-    @DS("sd_group_commit")
-    void replaceFlowDetailsReportDailiesSD(@Param("list") List<AdqFlowDetailsReportDaily> dailyList);
 
 }

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

@@ -0,0 +1,11 @@
+package cn.com.ctop.job.adq.data.mapper;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface AdqMaterialReportMapper {
+
+    void insertAdqMaterialReportDaily(@Param("list") List<JSONObject> reports);
+}

+ 0 - 15
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AppBanWarnMapper.java

@@ -1,15 +0,0 @@
-package cn.com.ctop.job.adq.data.mapper;
-
-import cn.com.ctop.job.adq.data.entity.LySendMessageLog;
-import com.alibaba.fastjson.JSONObject;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-public interface AppBanWarnMapper {
-    List<JSONObject> getAppBanList(@Param("createAt") long createAt);
-
-    void insertSendLog(LySendMessageLog sendMessageLog);
-
-    Integer checkNum(@Param("appId") String appId, @Param("date") String date);
-}

+ 3 - 112
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqAccountReportMapper.xml

@@ -59,64 +59,8 @@
         </foreach>
     </insert>
 
-    <insert id="addAccountHourListSD">
-        insert into adq_advertiser_report_hour (
-        advertiser_id,
-        stat_time_day,
-        `hour`,
-        cost,
-        view_count,
-        valid_click_count,
-        conversions_count,
-        deep_conversions_count,
-        activated_count,
-        reg_pv,
-        retention_count,
-        video_outer_play_count,
-        video_outer_play100_count,
-        key_behavior_conversions_count,
-        purchase_pv,
-        purchase_amount,
-        first_pay_count,
-        ad_monetization_amount,
-        app_ad_paying_users,
-        income_pv_pla,
-        income_val_1,
-        ad_paying_users_d1,
-        income_pv_1d_pla
-        )
-        values
-        <foreach collection="adds" item="item" separator=",">
-            (
-            #{item.advertiserId},
-            #{item.statTimeDay},
-            #{item.hour},
-            #{item.cost},
-            #{item.viewCount},
-            #{item.validClickCount},
-            #{item.conversionsCount},
-            #{item.deepConversionsCount},
-            #{item.activatedCount},
-            #{item.regPv},
-            #{item.retentionCount},
-            #{item.videoOuterPlayCount},
-            #{item.videoOuterPlay100Count},
-            #{item.keyBehaviorConversionsCount},
-            #{item.purchasePv},
-            #{item.purchaseAmount},
-            #{item.firstPayCount},
-            #{item.adMonetizationAmount},
-            #{item.appAdPayingUsers},
-            #{item.incomePvPla},
-            #{item.incomeVal1},
-            #{item.adPayingUsersD1},
-            #{item.incomePv1dPla}
-            )
-        </foreach>
-    </insert>
-
     <insert id="addAccountDailyList">
-        replace into adq_advertiser_report_daily (
+        replace into media_adq_advertiser_report_daily (
         advertiser_id,
         stat_time_day,
         cost,
@@ -169,59 +113,6 @@
         </foreach>
     </insert>
 
-    <insert id="addAccountDailyListSD">
-        insert into adq_advertiser_report_daily (
-        advertiser_id,
-        stat_time_day,
-        cost,
-        view_count,
-        valid_click_count,
-        conversions_count,
-        deep_conversions_count,
-        activated_count,
-        reg_pv,
-        retention_count,
-        video_outer_play_count,
-        video_outer_play100_count,
-        key_behavior_conversions_count,
-        purchase_pv,
-        purchase_amount,
-        first_pay_count,
-        ad_monetization_amount,
-        app_ad_paying_users,
-        income_pv_pla,
-        income_val_1,
-        ad_paying_users_d1,
-        income_pv_1d_pla
-        )
-        values
-        <foreach collection="adds" item="item" separator=",">
-            (
-            #{item.advertiserId},
-            #{item.statTimeDay},
-            #{item.cost},
-            #{item.viewCount},
-            #{item.validClickCount},
-            #{item.conversionsCount},
-            #{item.deepConversionsCount},
-            #{item.activatedCount},
-            #{item.regPv},
-            #{item.retentionCount},
-            #{item.videoOuterPlayCount},
-            #{item.videoOuterPlay100Count},
-            #{item.keyBehaviorConversionsCount},
-            #{item.purchasePv},
-            #{item.purchaseAmount},
-            #{item.firstPayCount},
-            #{item.adMonetizationAmount},
-            #{item.appAdPayingUsers},
-            #{item.incomePvPla},
-            #{item.incomeVal1},
-            #{item.adPayingUsersD1},
-            #{item.incomePv1dPla}
-            )
-        </foreach>
-    </insert>
     <update id="updateAdqAccountStatus">
         update deepthink.advertiser_bind_info
         set advertiser_status = 2
@@ -229,7 +120,7 @@
                                 from (select t1.advertiser_id as advertiser_id,
                                              ifnull(
                                                      (select sum(cost)
-                                                      from media_api.adq_advertiser_report_daily
+                                                      from media_adq_advertiser_report_daily
                                                       where advertiser_id = t1.advertiser_id
                                                         and stat_time_day >=
                                                             date_format(DATE_SUB(CURDATE(), INTERVAL 7 DAY), '%Y%m%d')),
@@ -247,7 +138,7 @@
         where advertiser_id in (select advertiser_id
                                 from deepthink.advertiser_bind_info
                                 where advertiser_id in (select advertiser_id
-                                                        from media_api.chuangliang_advertiser_media_report_daliy t1
+                                                        from chuangliang_advertiser_media_report_daliy t1
                                                         where stat_datetime = date_format(now(), '%Y%m%d')
                                                           and media_type = '腾讯广告3.0'
                                                           and aggregate_cost > 0

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

@@ -1,191 +0,0 @@
-<?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.AdqAdIncomeMapper">
-
-    <insert id="insertAdqAdIncome">
-        replace INTO media_api.adq_publisher_adunit_general (
-        app_id,ad_unit_id, ad_unit_name, ad_slot,ad_slot_name, agency_income,
-        click_count, click_rate, stat_date, ecpm,
-        exposure_count, exposure_rate, income, is_smart_ads,
-        parent_templ_type, publisher_income, req_succ_count, slot_str
-        ) VALUES
-        <foreach collection="list" item="item" separator=",">
-            (
-            #{item.appId}, #{item.adUnitId}, #{item.adUnitName}, #{item.adSlot}, #{item.adSlotName}, #{item.agencyIncome},
-            #{item.clickCount}, #{item.clickRate}, #{item.statDate}, #{item.ecpm},
-            #{item.exposureCount}, #{item.exposureRate}, #{item.income}, #{item.isSmartAds},
-            #{item.parentTemplType}, #{item.publisherIncome}, #{item.reqSuccCount}, #{item.slotStr}
-            )
-        </foreach>
-    </insert>
-
-    <insert id="insertAdqAdIncomeSD">
-        insert INTO media_api.adq_publisher_adunit_general (
-        app_id,ad_unit_id, ad_unit_name, ad_slot,ad_slot_name, agency_income,
-        click_count, click_rate, stat_date, ecpm,
-        exposure_count, exposure_rate, income, is_smart_ads,
-        parent_templ_type, publisher_income, req_succ_count, slot_str
-        ) VALUES
-        <foreach collection="list" item="item" separator=",">
-            (
-            #{item.appId}, #{item.adUnitId}, #{item.adUnitName}, #{item.adSlot}, #{item.adSlotName}, #{item.agencyIncome},
-            #{item.clickCount}, #{item.clickRate}, #{item.statDate}, #{item.ecpm},
-            #{item.exposureCount}, #{item.exposureRate}, #{item.income}, #{item.isSmartAds},
-            #{item.parentTemplType}, #{item.publisherIncome}, #{item.reqSuccCount}, #{item.slotStr}
-            )
-        </foreach>
-    </insert>
-    <insert id="insertAdUnitList">
-        replace into media_api.adq_ad_unit_list
-        (
-        app_id,
-        ad_unit_id,
-        ad_slot,
-        ad_slot_name,
-        active_value,
-        ad_form_type,
-        ad_unit_name,
-        ad_unit_size,
-        ad_unit_status,
-        ad_unit_type,
-        bid_floor,
-        bind_adunit,
-        bind_type,
-        is_allow_playable,
-        reward_hosted_status,
-        slot_id,
-        templ_hosted_status,
-        templ_type_list,
-        unlock_reward_duration,
-        video_duration_max,
-        video_duration_min
-        ) VALUES
-        <foreach collection="list" item="item" separator=",">
-            (
-            #{item.app_id},
-            #{item.ad_unit_id},
-            #{item.ad_slot},
-            #{item.ad_slot_name},
-            #{item.active_value},
-            #{item.ad_form_type},
-            #{item.ad_unit_name},
-            #{item.ad_unit_size},
-            #{item.ad_unit_status},
-            #{item.ad_unit_type},
-            #{item.bid_floor},
-            #{item.bind_adunit},
-            #{item.bind_type},
-            #{item.is_allow_playable},
-            #{item.reward_hosted_status},
-            #{item.slot_id},
-            #{item.templ_hosted_status},
-            #{item.templ_type_list},
-            #{item.unlock_reward_duration},
-            #{item.video_duration_max},
-            #{item.video_duration_min}
-            )
-        </foreach>
-    </insert>
-    <insert id="insertAdIncomeRate">
-        replace into media_api.adq_ad_income_rate
-        (stat_date,app_id,share_rate,ad_give_rate)
-        VALUES
-        <foreach collection="list" item="item" separator=",">
-        (#{item.stat_date}, #{item.app_id}, #{item.share_rate}, #{item.ad_give_rate})
-        </foreach>
-    </insert>
-
-    <insert id="insertAdqGameGiftList">
-        insert into media_api.adq_game_gift_save_list
-        (stat_date,app_id,ad_fund)
-        VALUES
-        <foreach collection="list" item="item" separator=",">
-            (${item.stat_date}, #{item.app_id}, #{item.ad_fund})
-        </foreach>
-        on duplicate key update ad_fund= VALUES(ad_fund)
-    </insert>
-
-    <insert id="insertAdqGameDiviceSave">
-        insert into media_api.adq_game_gift_save_list
-        (stat_date,app_id,expire_balance,expire_time,total_balance)
-        VALUES
-        <foreach collection="list" item="item" separator=",">
-            (${item.stat_date}, #{item.app_id}, #{item.expire_balance}, #{item.expire_time}, #{item.total_balance})
-        </foreach>
-        on duplicate key update
-        expire_balance= VALUES(expire_balance),
-        expire_time= VALUES(expire_time),
-        total_balance= VALUES(total_balance)
-    </insert>
-
-    <insert id="insertAdqGameDiviceSaveDetail">
-        insert into media_api.adq_game_gift_save_list
-        (stat_date,app_id,game_save_detail_amt,game_save_detail_expire_time,game_save_detail_sett_idx)
-        VALUES
-        <foreach collection="list" item="item" separator=",">
-            (${item.stat_date}, #{item.app_id}, #{item.game_save_detail_amt}, #{item.game_save_detail_expire_time}, #{item.game_save_detail_sett_idx})
-        </foreach>
-        on duplicate key update
-        game_save_detail_amt= VALUES(game_save_detail_amt),
-        game_save_detail_expire_time= VALUES(game_save_detail_expire_time),
-        game_save_detail_sett_idx= VALUES(game_save_detail_sett_idx)
-    </insert>
-    <insert id="insertAdqGameDiviceTransfer">
-        replace into media_api.adq_game_divice_transfer
-        (stat_date,app_id,`type`,amt,out_uuid,remark,src_account)
-        VALUES
-        <foreach collection="list" item="item" separator=",">
-            (${item.stat_date}, #{item.app_id}, #{item.type},
-          #{item.amt}, #{item.out_uuid}, #{item.remark}, #{item.src_account})
-        </foreach>
-    </insert>
-    <insert id="insertAdqAdPosIncome">
-        replace INTO media_api.adq_publisher_adpos_general (
-        app_id, ad_slot,ad_slot_name, stat_date,
-        click_count, click_rate, ecpm,
-        exposure_count, exposure_rate, income,
-        req_succ_count,slot_id, slot_str
-        ) VALUES
-        <foreach collection="list" item="item" separator=",">
-            (
-            #{item.app_id}, #{item.ad_slot}, #{item.ad_slot_name}, #{item.stat_date},
-            #{item.click_count}, #{item.click_rate}, #{item.ecpm},
-            #{item.exposure_count}, #{item.exposure_rate}, #{item.income},
-            #{item.req_succ_count}, #{item.slot_id}, #{item.slot_str}
-            )
-        </foreach>
-    </insert>
-    <insert id="insertVPAdFunds">
-        replace INTO media_api.adq_vp_ad_fund
-        ( app_id,fund_id, settle_begin, settle_end, total_amount, remain_amount, expire_time, fund_type )
-        VALUES
-        <foreach collection="list" item="item" separator=",">
-            ( #{item.app_id}, #{item.fund_id}, #{item.settle_begin}, #{item.settle_end},#{item.total_amount},
-              #{item.remain_amount}, #{item.expire_time}, #{item.fund_type} )
-        </foreach>
-    </insert>
-
-    <select id="queryAdqIaaMiniApp" resultType="com.alibaba.fastjson.JSONObject">
-        select m.app_id,l.id applet_id
-        from deepthink.mini_app_info m
-        join thirtpart.ly_applet l on m.app_id = l.app_id
-        where m.business_method in('IAA','MIX') and m.app_id like 'wx%'
-        <if test="appId != null">
-            and m.app_id = #{appId}
-        </if>
-    </select>
-    <select id="queryAdqAllMiniApp" resultType="com.alibaba.fastjson.JSONObject">
-        select m.app_id,l.id applet_id,l.prod_key
-        from deepthink.mini_app_info m
-        join thirtpart.ly_applet l on m.app_id = l.app_id
-        where  m.app_id like 'wx%'
-        <if test="appId != null">
-            and m.app_id = #{appId}
-        </if>
-    </select>
-    <select id="queryAdqAdIncomeRetryJob" resultType="com.alibaba.fastjson.JSONObject">
-        SELECT t1.msg as 'msg',t1.is_send AS 'isSend', t1.id AS 'id', t1.advertiser_id AS 'advertiserId', t1.start_date AS 'startDate', t1.end_date AS 'endDate', t1.data_dimension AS 'dataDimension', t1.data_type AS 'dataType', t1.msg
-        FROM media_api.adq_error_log t1
-        where data_dimension like 'adq_ma_%';
-    </select>
-</mapper>

+ 2 - 85
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqAssetReportMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="cn.com.ctop.job.adq.data.mapper.AdqAssetReportMapper">
 
     <insert id="insertAdqAssetReportDaily" parameterType="java.util.List">
-        replace INTO media_api.adq_asset_report_daily (
+        replace INTO adq_asset_report_daily (
         stat_time_day,
         advertiser_id,
         adgroup_id,
@@ -63,91 +63,8 @@
         </foreach>
     </insert>
 
-    <insert id="insertAdqAssetReportDailySD" parameterType="java.util.List">
-        insert INTO media_api.adq_asset_report_daily (
-        stat_time_day,
-        advertiser_id,
-        adgroup_id,
-        adgroup_name,
-        marketing_asset_id,
-        marketing_target_type,
-        cost,
-        view_count,
-        valid_click_count,
-        conversions_count,
-        deep_conversions_count,
-        activated_count,
-        reg_pv,
-        retention_count,
-        video_outer_play_count,
-        video_outer_play100_count,
-        key_behavior_conversions_count,
-        purchase_pv,
-        purchase_amount,
-        first_pay_count,
-        ad_monetization_amount,
-        app_ad_paying_users,
-        income_pv_pla,
-        income_val_1,
-        ad_paying_users_d1,
-        income_pv_1d_pla
-        ) VALUES
-        <foreach collection="list" item="item" separator=",">
-            (
-            #{item.statTimeDay},
-            #{item.advertiserId},
-            #{item.adgroupId},
-            #{item.adgroupName},
-            #{item.marketingAssetId},
-            #{item.marketingTargetType},
-            #{item.cost},
-            #{item.viewCount},
-            #{item.validClickCount},
-            #{item.conversionsCount},
-            #{item.deepConversionsCount},
-            #{item.activatedCount},
-            #{item.regPv},
-            #{item.retentionCount},
-            #{item.videoOuterPlayCount},
-            #{item.videoOuterPlay100Count},
-            #{item.keyBehaviorConversionsCount},
-            #{item.purchasePv},
-            #{item.purchaseAmount},
-            #{item.firstPayCount},
-            #{item.adMonetizationAmount},
-            #{item.appAdPayingUsers},
-            #{item.incomePvPla},
-            #{item.incomeVal1},
-            #{item.adPayingUsersD1},
-            #{item.incomePv1dPla}
-            )
-        </foreach>
-    </insert>
-
-
     <insert id="insertAdqAssetInfo" parameterType="java.util.List">
-        replace INTO media_api.adq_asset_info (
-        advertiser_id,
-        marketing_asset_id,
-        marketing_asset_name,
-        marketing_target_type,
-        promoted_asset_attr_key_short_drama_drama_mall,
-        promoted_asset_attr_key_sku_id
-        ) VALUES
-        <foreach collection="list" item="item" separator=",">
-            (
-            #{item.advertiserId},
-            #{item.marketingAssetId},
-            #{item.marketingAssetName},
-            #{item.marketingTargetType},
-            #{item.promotedAssetAttrKeyShortDramaDramaMall},
-            #{item.promotedAssetAttrKeySkuId}
-            )
-        </foreach>
-    </insert>
-
-    <insert id="insertAdqAssetInfoSD" parameterType="java.util.List">
-        insert INTO media_api.adq_asset_info (
+        replace INTO adq_asset_info (
         advertiser_id,
         marketing_asset_id,
         marketing_asset_name,

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

@@ -70,73 +70,6 @@
         </foreach>
     </insert>
 
-    <insert id="addsHourListSD">
-        insert into adq_creative_report_hour (
-        advertiser_id,
-        adgroup_id,
-        adgroup_name,
-        dynamic_creative_id,
-        dynamic_creative_name,
-        stat_time_day,
-        `hour`,
-        cost,
-        view_count,
-        valid_click_count,
-        conversions_count,
-        deep_conversions_count,
-        activated_count,
-        reg_pv,
-        retention_count,
-        video_outer_play_count,
-        video_outer_play100_count,
-        key_behavior_conversions_count,
-        purchase_pv,
-        purchase_amount,
-        first_pay_count,
-        ad_monetization_amount,
-        app_ad_paying_users,
-        income_pv_pla,
-        income_val_1,
-        ad_paying_users_d1,
-        income_pv_1d_pla,
-        income_val_3
-        )
-        values
-        <foreach collection="adds" item="item" separator=",">
-            (
-
-            #{item.advertiserId},
-            #{item.adgroupId},
-            #{item.adgroupName},
-            #{item.dynamicCreativeId},
-            #{item.dynamicCreativeName},
-            #{item.statTimeDay},
-            #{item.hour},
-            #{item.cost},
-            #{item.viewCount},
-            #{item.validClickCount},
-            #{item.conversionsCount},
-            #{item.deepConversionsCount},
-            #{item.activatedCount},
-            #{item.regPv},
-            #{item.retentionCount},
-            #{item.videoOuterPlayCount},
-            #{item.videoOuterPlay100Count},
-            #{item.keyBehaviorConversionsCount},
-            #{item.purchasePv},
-            #{item.purchaseAmount},
-            #{item.firstPayCount},
-            #{item.adMonetizationAmount},
-            #{item.appAdPayingUsers},
-            #{item.incomePvPla},
-            #{item.incomeVal1},
-            #{item.adPayingUsersD1},
-            #{item.incomePv1dPla},
-            #{item.incomeVal3}
-            )
-        </foreach>
-    </insert>
-
     <insert id="addsDaily">
         replace into adq_creative_report_daily (
         advertiser_id,
@@ -202,71 +135,6 @@
 
     </insert>
 
-    <insert id="addsDailySD">
-        insert into adq_creative_report_daily (
-        advertiser_id,
-        adgroup_id,
-        adgroup_name,
-        dynamic_creative_id,
-        dynamic_creative_name,
-        stat_time_day,
-        cost,
-        view_count,
-        valid_click_count,
-        conversions_count,
-        deep_conversions_count,
-        activated_count,
-        reg_pv,
-        retention_count,
-        video_outer_play_count,
-        video_outer_play100_count,
-        key_behavior_conversions_count,
-        purchase_pv,
-        purchase_amount,
-        first_pay_count,
-        ad_monetization_amount,
-        app_ad_paying_users,
-        income_pv_pla,
-        income_val_1,
-        ad_paying_users_d1,
-        income_pv_1d_pla,
-        income_val_3
-        )
-        values
-        <foreach collection="adds" item="item" separator=",">
-            (
-            #{item.advertiserId},
-            #{item.adgroupId},
-            #{item.adgroupName},
-            #{item.dynamicCreativeId},
-            #{item.dynamicCreativeName},
-            #{item.statTimeDay},
-            #{item.cost},
-            #{item.viewCount},
-            #{item.validClickCount},
-            #{item.conversionsCount},
-            #{item.deepConversionsCount},
-            #{item.activatedCount},
-            #{item.regPv},
-            #{item.retentionCount},
-            #{item.videoOuterPlayCount},
-            #{item.videoOuterPlay100Count},
-            #{item.keyBehaviorConversionsCount},
-            #{item.purchasePv},
-            #{item.purchaseAmount},
-            #{item.firstPayCount},
-            #{item.adMonetizationAmount},
-            #{item.appAdPayingUsers},
-            #{item.incomePvPla},
-            #{item.incomeVal1},
-            #{item.adPayingUsersD1},
-            #{item.incomePv1dPla},
-            #{item.incomeVal3}
-            )
-        </foreach>
-
-    </insert>
-
     <select id="getAccountList" resultType="com.alibaba.fastjson.JSONObject">
         SELECT t1.advertiser_id AS 'advertiserId', t2.access_token AS 'accessToken'
         FROM deepthink.adq_advertiser_list t1

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

@@ -35,21 +35,4 @@
                  LEFT JOIN deepthink.adq_auth_list t3 ON t2.admin_advertiser_id = t3.admin_advertiser_id
     </select>
 
-    <select id="getAccountListByDate" resultType="com.alibaba.fastjson.JSONObject">
-        SELECT t1.advertiser_id AS 'advertiserId', t3.access_token AS 'accessToken'
-        FROM (
-        select advertiser_id from media_api.adq_creative_report_hour
-        where stat_time_day >= #{startDate} and stat_time_day &lt;= #{endDate}
-        group by 1
-
-        union
-
-        select advertiser_id from media_api.adq_creative_report_daily
-        where stat_time_day >= #{startDate} and stat_time_day &lt;= #{endDate}
-        group by 1
-        ) t1
-        LEFT JOIN tidb.deepthink.adq_advertiser_list t2 ON t1.advertiser_id = t2.advertiser_id
-        LEFT JOIN tidb.deepthink.adq_auth_list t3 ON t2.admin_advertiser_id = t3.admin_advertiser_id
-    </select>
-
 </mapper>

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

@@ -41,35 +41,5 @@
             )
         </foreach>
     </insert>
-
-    <insert id="replaceFlowDetailsReportDailiesSD">
-        insert into adq_flow_details_report_daily (
-        advertiser_id,
-        stat_time_day,
-        fund_type,
-        deposit,
-        paid,
-        trans_in,
-        trans_out,
-        credit_modify,
-        balance,
-        preauth_balance
-        )
-        values
-        <foreach collection="list" item="item" separator=",">
-            (
-            #{item.advertiserId},
-            #{item.statTimeDay},
-            #{item.fundType},
-            #{item.deposit},
-            #{item.paid},
-            #{item.transIn},
-            #{item.transOut},
-            #{item.creditModify},
-            #{item.balance},
-            #{item.preauthBalance}
-            )
-        </foreach>
-    </insert>
 </mapper>
 

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

@@ -0,0 +1,64 @@
+<?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.AdqMaterialReportMapper">
+
+    <insert id="insertAdqMaterialReportDaily">
+        replace into adq_material_report_daily (
+        stat_time_day,
+        advertiser_id,
+        material_id,
+        material_type,
+        cost,
+        view_count,
+        valid_click_count,
+        conversions_count,
+        deep_conversions_count,
+        activated_count,
+        reg_pv,
+        retention_count,
+        video_outer_play_count,
+        video_outer_play100_count,
+        key_behavior_conversions_count,
+        purchase_pv,
+        purchase_amount,
+        first_pay_count,
+        ad_monetization_amount,
+        app_ad_paying_users,
+        income_pv_pla,
+        income_val_1,
+        ad_paying_users_d1,
+        income_pv_1d_pla,
+        income_val_3
+        ) VALUES
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.stat_time_day},
+            #{item.advertiser_id},
+            #{item.material_id},
+            #{item.material_type},
+            #{item.cost},
+            #{item.view_count},
+            #{item.valid_click_count},
+            #{item.conversions_count},
+            #{item.deep_conversions_count},
+            #{item.activated_count},
+            #{item.reg_pv},
+            #{item.retention_count},
+            #{item.video_outer_play_count},
+            #{item.video_outer_play100_count},
+            #{item.key_behavior_conversions_count},
+            #{item.purchase_pv},
+            #{item.purchase_amount},
+            #{item.first_pay_count},
+            #{item.ad_monetization_amount},
+            #{item.app_ad_paying_users},
+            #{item.income_pv_pla},
+            #{item.income_val_1},
+            #{item.ad_paying_users_d1},
+            #{item.income_pv_1d_pla},
+            #{item.income_val_3}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

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

@@ -1,32 +0,0 @@
-<?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.AppBanWarnMapper">
-    <insert id="insertSendLog">
-        replace into thirtpart.ly_send_message_log
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="appId != null">app_id,</if>
-            <if test="sendDate != null">send_date,</if>
-
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="appId != null">#{appId},</if>
-            <if test="sendDate != null">#{sendDate},</if>
-        </trim>
-    </insert>
-
-
-    <select id="getAppBanList" resultType="com.alibaba.fastjson.JSONObject">
-        SELECT t1.app_id AS 'appId', t2.name AS 'appName', t1.num AS 'num'
-        FROM (SELECT app_id as 'app_id', COUNT(1) AS 'num'
-              FROM thirtpart.ly_ad_message_log
-              WHERE created_at >= #{createAt}
-                AND `output` LIKE '%{"errCode":1007}%'
-              group by app_id) t1
-                 LEFT JOIN thirtpart.ly_applet t2
-                           ON t1.app_id = t2.app_id
-    </select>
-    <select id="checkNum" resultType="java.lang.Integer">
-        select count(1) from thirtpart.ly_send_message_log where app_id = #{appId} and send_date = #{date}
-    </select>
-</mapper>
-

+ 0 - 29
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/IAdqAdIncomeService.java

@@ -1,29 +0,0 @@
-package cn.com.ctop.job.adq.data.service;
-
-import com.alibaba.fastjson.JSONObject;
-
-import java.util.List;
-
-public interface IAdqAdIncomeService {
-    List<JSONObject> getAdqAdIncomeRetryJob();
-
-    List<JSONObject> getAdqIaaMiniApp(String appId);
-
-    List<JSONObject> getAdqAllMiniApp(String appId);
-
-    void getAdqAdIncome(String startDt, String endDt, String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend);
-
-    void getAdqAdPosIncome(String startDt, String endDt, String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend);
-
-    void getAdqAdUnitList(String appId, Long appletId, Integer page);
-
-    void getAdqAdIncomeRate(String appId, Long appletId, String startDate, String endDate);
-
-    void getGameGiftList(String startDt, String endDt, String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend);
-
-    void getGameDiviceSave(String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend);
-
-    void getGameDiviceTransfer(String startDt, String endDt, String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend);
-
-    void queryVPAdFunds(String startDt, String endDt, String appId, Long appletId, String prodKey, Integer page, Integer isLog, Long errId, Integer isSend);
-}

+ 0 - 2
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/IAdqCreativeReportService.java

@@ -12,6 +12,4 @@ public interface IAdqCreativeReportService {
     void getAdqCreativeDaily(Long advertiserId, String accessToken, String date, String date1, Integer page,Integer isLog);
 
     List<JSONObject> getErrorLogs();
-
-    List<JSONObject> getAccountListByDate(Integer startDate, Integer endDate);
 }

+ 0 - 5
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/IAppBanWarnService.java

@@ -1,5 +0,0 @@
-package cn.com.ctop.job.adq.data.service;
-
-public interface IAppBanWarnService {
-    void appBanWarnJob(long tenMinutesAgoSeconds);
-}

+ 1 - 16
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqAccountReportServiceImpl.java

@@ -7,9 +7,7 @@ import cn.com.ctop.job.adq.data.service.IAdqAccountReportService;
 import cn.com.ctop.job.adq.data.utils.Check;
 import cn.com.ctop.job.adq.data.utils.FieldsConfig;
 import cn.com.ctop.job.adq.data.utils.HttpUtils;
-import cn.com.ctop.job.adq.data.utils.JsonUtils;
 import cn.com.ctop.job.adq.utils.RandomStringGenerator;
-import cn.com.ctop.job.adq.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
@@ -27,8 +25,6 @@ import java.util.*;
 @Slf4j
 @EnableScheduling
 public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
-    @Autowired
-    private DorisMultiTableStreamLoadManager dorisLoadManager;
 
     @Autowired
     private AdqErrorLogMapper adqErrorLogMapper;
@@ -77,11 +73,6 @@ public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
                                 hourReport.setAdvertiserId(advertiserId);
                                 hourReport.setStatTimeDay(Long.valueOf(startDate.replace("-", "")));
                                 hourList.add(hourReport);
-
-                                String filterJSON = JsonUtils.toFilterJSON(hourReport);
-                                JSONObject json = JSONObject.parseObject(filterJSON);
-                                json.put("video_outer_play100_count",hourReport.getVideoOuterPlay100Count());
-                                dorisLoadManager.add("media_api", "adq_advertiser_report_hour", json);
                             }
                         }
                     }
@@ -101,7 +92,6 @@ public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
             }
             if (!Check.isNull(hourList)) {
                 accountReportMapper.addAccountHourList(hourList);
-                //accountReportMapper.addAccountHourListSD(hourList);
             }
             if (hourList.size() >= 1000) {
                 getAdqAccountHour(advertiserId, accessToken, startDate, endDate, page + 1, isLog);
@@ -138,6 +128,7 @@ public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
             paramsMap.put("fields", fieldsList);
             List<AdqAdvertiserReportDaily> dailyList = new ArrayList<>();
             String s = HttpUtils.httpGet("https://api.e.qq.com/v3.0/daily_reports/get", paramsMap, null);
+            System.err.println(s);
             JSONObject jsonObject = JSONObject.parseObject(s);
             if (!Check.isNull(jsonObject)) {
                 Integer code = jsonObject.getInteger("code");
@@ -153,11 +144,6 @@ public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
                                 dailyReport.setAdvertiserId(advertiserId);
                                 dailyReport.setStatTimeDay(Long.valueOf(dataJson.getString("date").replace("-", "")));
                                 dailyList.add(dailyReport);
-
-                                String filterJSON = JsonUtils.toFilterJSON(dailyReport);
-                                JSONObject json = JSONObject.parseObject(filterJSON);
-                                json.put("video_outer_play100_count",dailyReport.getVideoOuterPlay100Count());
-                                dorisLoadManager.add("media_api", "adq_advertiser_report_daily", json);
                             }
                         }
                     }
@@ -177,7 +163,6 @@ public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
             }
             if (!Check.isNull(dailyList)) {
                 accountReportMapper.addAccountDailyList(dailyList);
-                //accountReportMapper.addAccountDailyListSD(dailyList);
             }
             if (dailyList.size() >= 1000) {
                 getAdqAccountHour(advertiserId, accessToken, startDate, endDate, page + 1, isLog);

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

@@ -1,754 +0,0 @@
-package cn.com.ctop.job.adq.data.service.impl;
-
-import cn.com.ctop.job.adq.data.entity.AdqErrorLog;
-import cn.com.ctop.job.adq.data.entity.AdqPublisherAdunitGeneral;
-import cn.com.ctop.job.adq.data.mapper.AdqAdIncomeMapper;
-import cn.com.ctop.job.adq.data.mapper.AdqErrorLogMapper;
-import cn.com.ctop.job.adq.data.service.IAdqAdIncomeService;
-import cn.com.ctop.job.adq.data.utils.AlertUtils;
-import cn.com.ctop.job.adq.data.utils.Check;
-import cn.com.ctop.job.adq.data.utils.DateUtils;
-import cn.com.ctop.job.adq.data.utils.HttpUtils;
-import cn.com.ctop.job.adq.utils.doris.sink.DorisMultiTableStreamLoadManager;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.google.gson.Gson;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import javax.crypto.Mac;
-import javax.crypto.spec.SecretKeySpec;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-
-@Service
-@Slf4j
-public class AdqAdIncomeServiceImpl implements IAdqAdIncomeService {
-    @Autowired
-    private DorisMultiTableStreamLoadManager dorisLoadManager;
-    @Resource
-    private RedisTemplate redis2Template_db5;
-    @Resource
-    private AdqAdIncomeMapper adqAdIncomeMapper;
-    @Autowired
-    private AdqErrorLogMapper adqErrorLogMapper;
-
-    private static final Map<String, String> adSlotMap = new HashMap<String, String>() {{
-        put("SLOT_ID_BIZ_BOTTOM", "公众号底部广告");
-        put("SLOT_ID_BIZ_MID_CONTEXT", "公众号文中广告");
-        put("SLOT_ID_BIZ_VIDEO_END", "公众号视频后贴");
-        put("SLOT_ID_BIZ_SPONSOR", "公众号互选广告");
-        put("SLOT_ID_BIZ_CPS", "公众号返佣商品");
-        put("SLOT_ID_WEAPP_BANNER", "小程序banner");
-        put("SLOT_ID_WEAPP_REWARD_VIDEO", "小程序激励视频");
-        put("SLOT_ID_WEAPP_INTERSTITIAL", "小程序插屏广告");
-        put("SLOT_ID_WEAPP_VIDEO_FEEDS", "小程序视频广告");
-        put("SLOT_ID_WEAPP_VIDEO_BEGIN", "小程序视频前贴");
-        put("SLOT_ID_WEAPP_BOX", "小程序格子广告");
-        put("SLOT_ID_WEAPP_TEMPLATE", "小程序原生模板广告");
-        put("SLOT_ID_WEAPP_COVER", "封面广告");
-    }};
-
-    public List<JSONObject> getAdqAdIncomeRetryJob() {
-        return adqAdIncomeMapper.queryAdqAdIncomeRetryJob();
-    }
-
-    public List<JSONObject> getAdqIaaMiniApp(String appId) {
-        return adqAdIncomeMapper.queryAdqIaaMiniApp(appId);
-    }
-
-    public List<JSONObject> getAdqAllMiniApp(String appId) {
-        return adqAdIncomeMapper.queryAdqAllMiniApp(appId);
-    }
-
-    public void getAdqAdIncome(String startDt, String endDt, String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend) {
-        if (page == 1) {
-            getAdqAdIncomeCover(startDt, endDt, appId, appletId, page, isLog, errId, isSend);
-        }
-        try {
-            String url = "https://api.weixin.qq.com/publisher/stat";
-            Object tokenObj = redis2Template_db5.opsForValue().get("wechat-applet-access-token-key-" + appletId);
-            if (tokenObj == null) {
-                log.error("微小广告细分数据拉取获取token为空 [{}] {}~{} {}", appId, startDt, endDt, appletId);
-                return;
-            }
-            int pageSize = 90;
-            Map<String, Object> paramsMap = new HashMap<>();
-            paramsMap.put("access_token", tokenObj.toString());
-            paramsMap.put("action", "publisher_adunit_general");
-            paramsMap.put("page", page);
-            paramsMap.put("page_size", pageSize);
-            paramsMap.put("start_date", startDt);
-            paramsMap.put("end_date", endDt);
-            String s = HttpUtils.httpGet(url, paramsMap, null);
-            JSONObject jsonObject = JSONObject.parseObject(s);
-            List<AdqPublisherAdunitGeneral> reports = new ArrayList<>();
-            int totalPage = 1;
-            if (!Check.isNull(jsonObject)) {
-                Integer code = jsonObject.getInteger("ret");
-                if (code == 2009) {
-                    return; //无效的流量主
-                }
-                if (code == 0) {
-                    JSONArray list = jsonObject.getJSONArray("list");
-                    Integer totalNum = jsonObject.getInteger("total_num");
-                    totalPage = (int) Math.ceil(totalNum * 1.0 / pageSize);
-                    if (!Check.isNull(list)) {
-                        for (int i = 0; i < list.size(); i++) {
-                            JSONObject dataJson = list.getJSONObject(i);
-                            JSONObject statItem = dataJson.getJSONObject("stat_item");
-                            statItem.put("ad_unit_id", dataJson.getString("ad_unit_id"));
-                            statItem.put("ad_unit_name", dataJson.getString("ad_unit_name"));
-                            AdqPublisherAdunitGeneral report = JSONObject.parseObject(statItem.toJSONString(), AdqPublisherAdunitGeneral.class);
-                            report.setAppId(appId);
-                            report.setStatDate(Integer.valueOf(report.getDate().replace("-", "")));
-                            report.setAdSlotName(adSlotMap.get(report.getAdSlot()));
-                            //System.out.println(report);
-                            reports.add(report);
-
-                            dorisLoadManager.add("media_api", "adq_publisher_adunit_general", report);
-                        }
-                    }
-
-                } else {
-                    log.error("微小广告细分数据拉取失败,app_id:{} {}~{},返回信息:{}", appId, startDt, endDt, jsonObject);
-                    insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_ad_income", startDt, endDt,
-                            jsonObject.fluentPut("app_id", appId).fluentPut("applet_id", appletId).toJSONString());
-                }
-            } else {
-                log.error("微小广告细分数据拉取失败,app_id:{} {}~{},返回为空。", appId, startDt, endDt);
-                insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_ad_income", startDt, endDt,
-                        new JSONObject().fluentPut("app_id", appId).fluentPut("applet_id", appletId).fluentPut("msg", "返回为空").toJSONString());
-            }
-            if (!Check.isNull(reports)) {
-                adqAdIncomeMapper.insertAdqAdIncome(reports);
-                //adqAdIncomeMapper.insertAdqAdIncomeSD(reports);
-            }
-
-            if (totalPage > page) {
-                getAdqAdIncome(startDt, endDt, appId, appletId, page + 1, isLog, errId, isSend);
-            } else {
-                log.info("微小广告细分数据拉取完成,app_id:{} {}~{} page:{}。", appId, startDt, endDt, page);
-                if (errId != null) {
-                    adqErrorLogMapper.deleteInfoByErrorId(errId);
-                }
-                if (isSend != null && isSend == 1) {
-                    AlertUtils.sendMessage(System.currentTimeMillis(), startDt, endDt, 3, "daily", 1, "adq_ma_ad_income");
-                }
-            }
-        } catch (Exception e) {
-            log.error("微小广告细分数据拉取失败,app_id:{} {}~{}。", appId, startDt, endDt, e);
-        }
-    }
-
-    private void getAdqAdIncomeCover(String startDt, String endDt, String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend) {
-        try {
-            String url = "https://api.weixin.qq.com/publisher/stat";
-            Object tokenObj = redis2Template_db5.opsForValue().get("wechat-applet-access-token-key-" + appletId);
-            if (tokenObj == null) {
-                log.error("微小广告封面广告数据拉取获取token为空 [{}] {}~{} {}", appId, startDt, endDt, appletId);
-                return;
-            }
-            int pageSize = 90;
-            Map<String, Object> paramsMap = new HashMap<>();
-            paramsMap.put("access_token", tokenObj.toString());
-            paramsMap.put("action", "publisher_adpos_general");
-            paramsMap.put("ad_slot", "SLOT_ID_WEAPP_COVER");
-            paramsMap.put("page", page);
-            paramsMap.put("page_size", pageSize);
-            paramsMap.put("start_date", startDt);
-            paramsMap.put("end_date", endDt);
-            String s = HttpUtils.httpGet(url, paramsMap, null);
-            JSONObject jsonObject = JSONObject.parseObject(s);
-            List<AdqPublisherAdunitGeneral> reports = new ArrayList<>();
-            int totalPage = 1;
-            if (!Check.isNull(jsonObject)) {
-                Integer code = jsonObject.getInteger("ret");
-                JSONObject baseResp = jsonObject.getJSONObject("base_resp");
-                if (baseResp != null) {
-                    code = baseResp.getInteger("ret");
-                }
-                if (code == 2009) {
-                    return; //无效的流量主
-                }
-                if (code == 0) {
-                    JSONArray list = jsonObject.getJSONArray("list");
-                    Integer totalNum = jsonObject.getInteger("total_num");
-                    totalPage = (int) Math.ceil(totalNum * 1.0 / pageSize);
-                    if (!Check.isNull(list)) {
-                        for (int i = 0; i < list.size(); i++) {
-                            JSONObject dataJson = list.getJSONObject(i);
-                            dataJson.put("ad_unit_id", "SLOT_ID_WEAPP_COVER");
-                            dataJson.put("ad_unit_name", "封面广告");
-                            AdqPublisherAdunitGeneral report = JSONObject.parseObject(dataJson.toJSONString(), AdqPublisherAdunitGeneral.class);
-                            report.setAppId(appId);
-                            report.setStatDate(Integer.valueOf(report.getDate().replace("-", "")));
-                            report.setAdSlotName(adSlotMap.get(report.getAdSlot()));
-                            //System.out.println(report);
-                            reports.add(report);
-
-                            dorisLoadManager.add("media_api", "adq_publisher_adunit_general", report);
-                        }
-                    }
-
-                } else {
-                    log.error("微小广告封面广告数据拉取失败,app_id:{} {}~{},返回信息:{}", appId, startDt, endDt, jsonObject);
-                    insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_ad_income", startDt, endDt,
-                            jsonObject.fluentPut("app_id", appId).fluentPut("applet_id", appletId).toJSONString());
-                }
-            } else {
-                log.error("微小广告封面广告数据拉取失败,app_id:{} {}~{},返回为空。", appId, startDt, endDt);
-                insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_ad_income", startDt, endDt,
-                        new JSONObject().fluentPut("app_id", appId).fluentPut("applet_id", appletId).fluentPut("msg", "返回为空").toJSONString());
-            }
-            if (!Check.isNull(reports)) {
-                adqAdIncomeMapper.insertAdqAdIncome(reports);
-                //adqAdIncomeMapper.insertAdqAdIncomeSD(reports);
-            }
-
-            if (totalPage > page) {
-                getAdqAdIncomeCover(startDt, endDt, appId, appletId, page + 1, isLog, errId, isSend);
-            } else {
-                log.info("微小广告封面广告数据拉取完成,app_id:{} {}~{} page:{}。", appId, startDt, endDt, page);
-                if (errId != null) {
-                    adqErrorLogMapper.deleteInfoByErrorId(errId);
-                }
-                if (isSend != null && isSend == 1) {
-                    AlertUtils.sendMessage(System.currentTimeMillis(), startDt, endDt, 3, "daily", 1, "adq_ma_ad_income");
-                }
-            }
-        } catch (Exception e) {
-            log.error("微小广告封面广告数据拉取失败,app_id:{} {}~{}。", appId, startDt, endDt, e);
-        }
-    }
-
-    //获取小程序广告汇总数据
-    public void getAdqAdPosIncome(String startDt, String endDt, String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend) {
-        try {
-            String url = "https://api.weixin.qq.com/publisher/stat";
-            Object tokenObj = redis2Template_db5.opsForValue().get("wechat-applet-access-token-key-" + appletId);
-            if (tokenObj == null) {
-                log.error("微小获取小程序广告汇总数据获取token为空 [{}] {}~{} {}", appId, startDt, endDt, appletId);
-                return;
-            }
-            int pageSize = 90;
-            Map<String, Object> paramsMap = new HashMap<>();
-            paramsMap.put("access_token", tokenObj.toString());
-            paramsMap.put("action", "publisher_adpos_general");
-            paramsMap.put("page", page);
-            paramsMap.put("page_size", pageSize);
-            paramsMap.put("start_date", startDt);
-            paramsMap.put("end_date", endDt);
-            String s = HttpUtils.httpGet(url, paramsMap, null);
-            JSONObject jsonObject = JSONObject.parseObject(s);
-            List<JSONObject> reports = new ArrayList<>();
-            int totalPage = 1;
-            if (!Check.isNull(jsonObject)) {
-                Integer code = jsonObject.getInteger("ret");
-                JSONObject baseResp = jsonObject.getJSONObject("base_resp");
-                if (baseResp != null) {
-                    code = baseResp.getInteger("ret");
-                }
-                if (code == 2009) {
-                    return; //无效的流量主
-                }
-                if (code == 0) {
-                    JSONArray list = jsonObject.getJSONArray("list");
-                    Integer totalNum = jsonObject.getInteger("total_num");
-                    totalPage = (int) Math.ceil(totalNum * 1.0 / pageSize);
-                    if (!Check.isNull(list)) {
-                        for (int i = 0; i < list.size(); i++) {
-                            JSONObject dataJson = list.getJSONObject(i);
-                            dataJson.put("app_id", appId);
-                            dataJson.put("ad_slot_name", adSlotMap.get(dataJson.getString("ad_slot")));
-                            dataJson.put("stat_date", dataJson.getString("date").replace("-", ""));
-                            reports.add(dataJson);
-                        }
-                    }
-
-                } else {
-                    log.error("微小获取小程序广告汇总数据失败,app_id:{} {}~{},返回信息:{}", appId, startDt, endDt, jsonObject);
-                    insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_publisher_adpos_general", startDt, endDt,
-                            jsonObject.fluentPut("app_id", appId).fluentPut("applet_id", appletId).toJSONString());
-                }
-            } else {
-                log.error("微小获取小程序广告汇总数据失败,app_id:{} {}~{},返回为空。", appId, startDt, endDt);
-                insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_publisher_adpos_general", startDt, endDt,
-                        new JSONObject().fluentPut("app_id", appId).fluentPut("applet_id", appletId).fluentPut("msg", "返回为空").toJSONString());
-            }
-            if (!Check.isNull(reports)) {
-                adqAdIncomeMapper.insertAdqAdPosIncome(reports);
-            }
-
-            if (totalPage > page) {
-                getAdqAdPosIncome(startDt, endDt, appId, appletId, page + 1, isLog, errId, isSend);
-            } else {
-                log.info("微小获取小程序广告汇总数据完成,app_id:{} {}~{} page:{}。", appId, startDt, endDt, page);
-                if (errId != null) {
-                    adqErrorLogMapper.deleteInfoByErrorId(errId);
-                }
-                if (isSend != null && isSend == 1) {
-                    AlertUtils.sendMessage(System.currentTimeMillis(), startDt, endDt, 3, "daily", 1, "adq_ma_ad_income");
-                }
-            }
-        } catch (Exception e) {
-            log.error("微小获取小程序广告汇总数据失败,app_id:{} {}~{}。", appId, startDt, endDt, e);
-        }
-    }
-
-    private void insertErrorLog(Integer isLog, Long advertiserId, String dataDimension, String startDate, String endDate, String msg) {
-        if (isLog != null && isLog == 1) {
-            AdqErrorLog errorInfo = new AdqErrorLog();
-            errorInfo.setAdvertiserId(advertiserId);
-            errorInfo.setStartDate(startDate);
-            errorInfo.setEndDate(endDate);
-            errorInfo.setDataDimension(dataDimension);
-            errorInfo.setDataType("daily");
-            errorInfo.setMsg(msg);
-            adqErrorLogMapper.replaceErrorInfo(errorInfo);
-        }
-    }
-
-    public void getAdqAdUnitList(String appId, Long appletId, Integer page) {
-        try {
-            String url = "https://api.weixin.qq.com/publisher/stat";
-            Object tokenObj = redis2Template_db5.opsForValue().get("wechat-applet-access-token-key-" + appletId);
-            if (tokenObj == null) {
-                log.error("微小获取小程序广告位清单拉取获取token为空 {} {}", appId, appletId);
-                return;
-            }
-            int pageSize = 100;
-            Map<String, Object> paramsMap = new HashMap<>();
-            paramsMap.put("access_token", tokenObj.toString());
-            paramsMap.put("action", "get_adunit_list");
-            paramsMap.put("page", page);
-            paramsMap.put("page_size", pageSize);
-            String s = HttpUtils.httpGet(url, paramsMap, null);
-            JSONObject jsonObject = JSONObject.parseObject(s);
-            int totalPage = 1;
-            if (!Check.isNull(jsonObject)) {
-                Integer code = jsonObject.getInteger("ret");
-                if (code == 2009) {
-                    return; //无效的流量主
-                }
-                if (code == 0) {
-                    JSONArray list = jsonObject.getJSONArray("ad_unit");
-                    Integer totalNum = jsonObject.getInteger("total_num");
-                    totalPage = (int) Math.ceil(totalNum * 1.0 / pageSize);
-                    if (!Check.isNull(list)) {
-                        for (int i = 0; i < list.size(); i++) {
-                            JSONObject adUnitJson = list.getJSONObject(i);
-                            adUnitJson.put("ad_unit_size", adUnitJson.getString("ad_unit_size"));
-                            adUnitJson.put("templ_type_list", adUnitJson.getString("templ_type_list"));
-                            adUnitJson.put("app_id", appId);
-                            adUnitJson.put("ad_slot_name", adSlotMap.get(adUnitJson.getString("ad_slot")));
-                        }
-                        adqAdIncomeMapper.insertAdUnitList(list);
-                    }
-                } else {
-                    log.error("微小获取小程序广告位清单拉取失败,app_id:{} ,返回信息:{}", appId, jsonObject);
-                }
-            } else {
-                log.error("微小获取小程序广告位清单拉取失败,app_id:{} ,返回为空。", appId);
-            }
-
-            if (totalPage > page) {
-                getAdqAdUnitList(appId, appletId, page + 1);
-            } else {
-                log.info("微小获取小程序广告位清单拉取完成,app_id:{} page:{}。", appId, page);
-            }
-        } catch (Exception e) {
-            log.error("微小获取小程序广告位清单拉取失败,app_id:{}。", appId, e);
-        }
-    }
-
-    public void getAdqAdIncomeRate(String appId, Long appletId, String startDate, String endDate) {
-        try {
-            Object tokenObj = redis2Template_db5.opsForValue().get("wechat-applet-access-token-key-" + appletId);
-            if (tokenObj == null) {
-                log.error("微小广告分成比例获取token为空 {} {}", appId, appletId);
-                return;
-            }
-            String url = "https://api.weixin.qq.com/wedata/wedata_get_data?access_token=" + tokenObj;
-            Map<String, Object> paramsMap = new HashMap<>();
-            paramsMap.put("chart_id", "1001001002");
-            paramsMap.put("target_id", "");
-            paramsMap.put("begin_date", startDate.replace("-", ""));
-            paramsMap.put("end_date", endDate.replace("-", ""));
-            paramsMap.put("time_unit", 0);
-            String s = HttpUtils.httpPostRequest(url, paramsMap, null);
-            JSONObject jsonObject = JSONObject.parseObject(s);
-            JSONArray results = new JSONArray();
-            if (!Check.isNull(jsonObject)) {
-                Integer code = jsonObject.getInteger("errcode");
-                if (code == 0) {
-                    JSONArray list = jsonObject.getJSONArray("chart_result");
-                    if (!Check.isNull(list)) {
-                        JSONArray chartData = list.getJSONObject(0).getJSONArray("chart_data");
-                        for (int i = 0; i < chartData.size(); i++) {
-                            JSONObject chartJson = chartData.getJSONObject(i);
-                            JSONArray value = chartJson.getJSONArray("value");
-                            if (!Check.isNull(value)) {
-                                JSONObject result = new JSONObject();
-                                result.put("stat_date", value.getInteger(0));
-                                result.put("app_id", appId);
-                                result.put("share_rate", value.getDoubleValue(1));
-                                result.put("ad_give_rate", value.getDoubleValue(2));
-                                results.add(result);
-                            }
-                        }
-
-                    }
-                } else {
-                    log.error("微小广告分成比例拉取失败,app_id:{} ,返回信息:{}", appId, jsonObject);
-                }
-            } else {
-                log.error("微小广告分成比例拉取失败,app_id:{} ,返回为空。", appId);
-            }
-            if (!Check.isNull(results)) {
-                adqAdIncomeMapper.insertAdIncomeRate(results);
-            }
-            log.info("微小广告分成比例拉取完成,app_id:{} {}~{}", appId, startDate, endDate);
-        } catch (Exception e) {
-            log.error("微小广告分成比例拉取失败,app_id:{}。", appId, e);
-        }
-    }
-
-    /*
-    查询流量主每日广告金收入
-    https://developers.weixin.qq.com/minigame/dev/guide/open-ability/ad/adq.html#_1%E3%80%81%E6%9F%A5%E8%AF%A2%E6%B5%81%E9%87%8F%E4%B8%BB%E6%AF%8F%E6%97%A5%E5%B9%BF%E5%91%8A%E9%87%91%E6%94%B6%E5%85%A5
-     */
-    public void getGameGiftList(String startDt, String endDt, String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend) {
-        try {
-            String url = "https://api.weixin.qq.com/publisher/stat";
-            Object tokenObj = redis2Template_db5.opsForValue().get("wechat-applet-access-token-key-" + appletId);
-            if (tokenObj == null) {
-                log.error("微小查询流量主每日广告金收入获取token为空 [{}] {}~{} {}", appId, startDt, endDt, appletId);
-                return;
-            }
-            int pageSize = 500;
-            Map<String, Object> paramsMap = new HashMap<>();
-            paramsMap.put("access_token", tokenObj.toString());
-            paramsMap.put("action", "general_action");
-            paramsMap.put("cmd", "get_game_gift_list");
-            paramsMap.put("ad_fund_type", "drama");
-            paramsMap.put("page", page);
-            paramsMap.put("page_size", pageSize);
-            paramsMap.put("begin_date", startDt.replace("-", ""));
-            paramsMap.put("end_date", endDt.replace("-", ""));
-            String s = HttpUtils.httpGet(url, paramsMap, null);
-            JSONObject jsonObject = JSONObject.parseObject(s);
-            int totalPage = 1;
-            ArrayList<JSONObject> reports = new ArrayList<>();
-            if (!Check.isNull(jsonObject)) {
-                Integer code = jsonObject.getInteger("ret");
-                JSONObject baseResp = jsonObject.getJSONObject("base_resp");
-                if (baseResp != null) {
-                    code = baseResp.getInteger("ret");
-                }
-                if (2009 == code) {
-                    return; //无效的流量主
-                }
-                if (code == 0) {
-                    JSONArray list = jsonObject.getJSONArray("game_gift_detail");
-                    Integer totalNum = jsonObject.getInteger("total_num");
-                    totalPage = (int) Math.ceil(totalNum * 1.0 / pageSize);
-                    if (!Check.isNull(list)) {
-                        for (int i = 0; i < list.size(); i++) {
-                            JSONObject dataJson = list.getJSONObject(i);
-                            dataJson.put("stat_date", dataJson.getString("date").replace("-", ""));
-                            dataJson.put("app_id", appId);
-                            reports.add(dataJson);
-                        }
-                    }
-                } else {
-                    log.error("微小查询流量主每日广告金收入拉取失败,app_id:{} {}~{},返回信息:{}", appId, startDt, endDt, jsonObject);
-                    insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_game_gift_list", startDt, endDt,
-                            jsonObject.fluentPut("app_id", appId).fluentPut("applet_id", appletId).toJSONString());
-                }
-            } else {
-                log.error("微小查询流量主每日广告金收入拉取失败,app_id:{} {}~{},返回为空。", appId, startDt, endDt);
-                insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_game_gift_list", startDt, endDt,
-                        new JSONObject().fluentPut("app_id", appId).fluentPut("applet_id", appletId).fluentPut("msg", "返回为空").toJSONString());
-            }
-            if (!Check.isNull(reports)) {
-                adqAdIncomeMapper.insertAdqGameGiftList(reports);
-            }
-
-            if (totalPage > page) {
-                getGameGiftList(startDt, endDt, appId, appletId, page + 1, isLog, errId, isSend);
-            } else {
-                log.info("微小查询流量主每日广告金收入拉取完成,app_id:{} {}~{} page:{}。", appId, startDt, endDt, page);
-                if (errId != null) {
-                    adqErrorLogMapper.deleteInfoByErrorId(errId);
-                }
-                if (isSend != null && isSend == 1) {
-                    AlertUtils.sendMessage(System.currentTimeMillis(), startDt, endDt, 3, "daily", 1, "adq_ma_game_gift_list");
-                }
-            }
-        } catch (Exception e) {
-            log.error("微小查询流量主每日广告金收入拉取失败,app_id:{} {}~{}。", appId, startDt, endDt, e);
-        }
-    }
-
-    /*
-    查询流量主广告金账户余额
-    https://developers.weixin.qq.com/minigame/dev/guide/open-ability/ad/adq.html#_1%E3%80%81%E6%9F%A5%E8%AF%A2%E6%B5%81%E9%87%8F%E4%B8%BB%E6%AF%8F%E6%97%A5%E5%B9%BF%E5%91%8A%E9%87%91%E6%94%B6%E5%85%A5
-     */
-    public void getGameDiviceSave(String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend) {
-        try {
-            String url = "https://api.weixin.qq.com/publisher/stat";
-            Object tokenObj = redis2Template_db5.opsForValue().get("wechat-applet-access-token-key-" + appletId);
-            if (tokenObj == null) {
-                log.error("查询流量主广告金账户余额获取token为空 [{}]{}", appId, appletId);
-                return;
-            }
-            int pageSize = 500;
-            Map<String, Object> paramsMap = new HashMap<>();
-            paramsMap.put("access_token", tokenObj.toString());
-            paramsMap.put("action", "general_action");
-            paramsMap.put("cmd", "get_game_divice_save");
-            paramsMap.put("ad_fund_type", "drama");
-            paramsMap.put("sub_account", "GAME_DEVIDE");
-            paramsMap.put("page", page);
-            paramsMap.put("page_size", pageSize);
-            String s = HttpUtils.httpGet(url, paramsMap, null);
-            JSONObject jsonObject = JSONObject.parseObject(s);
-            int totalPage = 1;
-            ArrayList<JSONObject> reports = new ArrayList<>();
-            ArrayList<JSONObject> reportsDaily = new ArrayList<>();
-            if (!Check.isNull(jsonObject)) {
-                Integer code = jsonObject.getInteger("ret");
-                JSONObject baseResp = jsonObject.getJSONObject("base_resp");
-                if (baseResp != null) {
-                    code = baseResp.getInteger("ret");
-                }
-                if (2009 == code) {
-                    return; //无效的流量主
-                }
-                if (code == 0) {
-                    Long expireBalance = jsonObject.getLong("expire_balance");
-                    String expireTime = jsonObject.getString("expire_time");
-                    Long totalBalance = jsonObject.getLong("total_balance");
-                    reports.add(new JSONObject()
-                            .fluentPut("stat_date", DateUtils.getNowDate("yyyyMMdd"))
-                            .fluentPut("app_id", appId)
-                            .fluentPut("expire_balance", expireBalance)
-                            .fluentPut("expire_time", expireTime)
-                            .fluentPut("total_balance", totalBalance));
-
-                    JSONArray list = jsonObject.getJSONArray("game_save_detail");
-                    Integer totalNum = jsonObject.getInteger("total_num");
-                    totalPage = (int) Math.ceil(totalNum * 1.0 / pageSize);
-                    if (!Check.isNull(list)) {
-                        for (int i = 0; i < list.size(); i++) {
-                            JSONObject dataJson = list.getJSONObject(i);
-                            JSONObject report = new JSONObject();
-                            report.put("stat_date", DateUtils.dateFormatTransform(dataJson.getString("date"), "yyyy年MM月dd日", "yyyyMMdd"));
-                            report.put("app_id", appId);
-                            report.put("game_save_detail_amt", dataJson.getLong("amt"));
-                            report.put("game_save_detail_expire_time", dataJson.getString("expire_time"));
-                            report.put("game_save_detail_sett_idx", dataJson.getLong("sett_idx"));
-                            reportsDaily.add(report);
-                        }
-                    }
-                } else {
-                    log.error("查询流量主广告金账户余额拉取失败,app_id:{},返回信息:{}", appId, jsonObject);
-                    insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_game_divice_save", "-", "-",
-                            jsonObject.fluentPut("app_id", appId).fluentPut("applet_id", appletId).toJSONString());
-                }
-            } else {
-                log.error("查询流量主广告金账户余额拉取失败,app_id:{},返回为空。", appId);
-                insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_game_divice_save", "-", "-",
-                        new JSONObject().fluentPut("app_id", appId).fluentPut("applet_id", appletId).fluentPut("msg", "返回为空").toJSONString());
-            }
-            if (!Check.isNull(reports)) {
-                adqAdIncomeMapper.insertAdqGameDiviceSave(reports);
-            }
-            if (!Check.isNull(reportsDaily)) {
-                adqAdIncomeMapper.insertAdqGameDiviceSaveDetail(reportsDaily);
-            }
-            if (totalPage > page) {
-                getGameDiviceSave(appId, appletId, page + 1, isLog, errId, isSend);
-            } else {
-                log.info("查询流量主广告金账户余额拉取完成,app_id:{} page:{}。", appId, page);
-                if (errId != null) {
-                    adqErrorLogMapper.deleteInfoByErrorId(errId);
-                }
-                if (isSend != null && isSend == 1) {
-                    AlertUtils.sendMessage(System.currentTimeMillis(), "-", "-", 3, "daily", 1, "adq_ma_game_divice_save");
-                }
-            }
-        } catch (Exception e) {
-            log.error("查询流量主广告金账户余额拉取失败,app_id:{}。", appId, e);
-        }
-    }
-
-    /*
-    查询流量主广告金消耗记录
-    https://developers.weixin.qq.com/minigame/dev/guide/open-ability/ad/adq.html#_1%E3%80%81%E6%9F%A5%E8%AF%A2%E6%B5%81%E9%87%8F%E4%B8%BB%E6%AF%8F%E6%97%A5%E5%B9%BF%E5%91%8A%E9%87%91%E6%94%B6%E5%85%A5
-     */
-    public void getGameDiviceTransfer(String startDt, String endDt, String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend) {
-        try {
-            String url = "https://api.weixin.qq.com/publisher/stat";
-            Object tokenObj = redis2Template_db5.opsForValue().get("wechat-applet-access-token-key-" + appletId);
-            if (tokenObj == null) {
-                log.error("微小查询流量主广告金消耗记录获取token为空 [{}] {}~{} {}", appId, startDt, endDt, appletId);
-                return;
-            }
-            int pageSize = 500;
-            Map<String, Object> paramsMap = new HashMap<>();
-            paramsMap.put("access_token", tokenObj.toString());
-            paramsMap.put("action", "general_action");
-            paramsMap.put("cmd", "get_game_divice_transfer");
-            paramsMap.put("ad_fund_type", "drama");
-            paramsMap.put("page", page);
-            paramsMap.put("page_size", pageSize);
-            paramsMap.put("begin_date", DateUtils.getTimestampFormat("yyyy-MM-dd HH:mm:ss", startDt + " 00:00:00"));
-            paramsMap.put("end_date", DateUtils.getTimestampFormat("yyyy-MM-dd HH:mm:ss", endDt + " 23:59:59"));
-            String s = HttpUtils.httpGet(url, paramsMap, null);
-            JSONObject jsonObject = JSONObject.parseObject(s);
-            int totalPage = 1;
-            ArrayList<JSONObject> reports = new ArrayList<>();
-            if (!Check.isNull(jsonObject)) {
-                Integer code = jsonObject.getInteger("ret");
-                JSONObject baseResp = jsonObject.getJSONObject("base_resp");
-                if (baseResp != null) {
-                    code = baseResp.getInteger("ret");
-                }
-                if (2009 == code) {
-                    return; //无效的流量主
-                }
-                if (code == 0) {
-                    JSONArray list = jsonObject.getJSONArray("game_transfer_detail");
-                    Integer totalNum = jsonObject.getInteger("total_num");
-                    totalPage = (int) Math.ceil(totalNum * 1.0 / pageSize);
-                    if (!Check.isNull(list)) {
-                        for (int i = 0; i < list.size(); i++) {
-                            JSONObject dataJson = list.getJSONObject(i);
-                            dataJson.put("stat_date", dataJson.getString("date").replace("-", ""));
-                            dataJson.put("app_id", appId);
-                            reports.add(dataJson);
-                        }
-                    }
-                } else {
-                    log.error("微小查询流量主广告金消耗记录拉取失败,app_id:{} {}~{},返回信息:{}", appId, startDt, endDt, jsonObject);
-                    insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_game_divice_transfer", startDt, endDt,
-                            jsonObject.fluentPut("app_id", appId).fluentPut("applet_id", appletId).toJSONString());
-                }
-            } else {
-                log.error("微小查询流量主广告金消耗记录拉取失败,app_id:{} {}~{},返回为空。", appId, startDt, endDt);
-                insertErrorLog(isLog, System.currentTimeMillis(), "adq_ma_game_divice_transfer", startDt, endDt,
-                        new JSONObject().fluentPut("app_id", appId).fluentPut("applet_id", appletId).fluentPut("msg", "返回为空").toJSONString());
-            }
-            if (!Check.isNull(reports)) {
-                adqAdIncomeMapper.insertAdqGameDiviceTransfer(reports);
-            }
-
-            if (totalPage > page) {
-                getGameDiviceTransfer(startDt, endDt, appId, appletId, page + 1, isLog, errId, isSend);
-            } else {
-                log.info("微小查询流量主广告金消耗记录拉取完成,app_id:{} {}~{} page:{}。", appId, startDt, endDt, page);
-                if (errId != null) {
-                    adqErrorLogMapper.deleteInfoByErrorId(errId);
-                }
-                if (isSend != null && isSend == 1) {
-                    AlertUtils.sendMessage(System.currentTimeMillis(), startDt, endDt, 3, "daily", 1, "adq_ma_game_divice_transfer");
-                }
-            }
-        } catch (Exception e) {
-            log.error("微小查询流量主广告金消耗记录拉取失败,app_id:{} {}~{}。", appId, startDt, endDt, e);
-        }
-    }
-
-    /*
-    query_adver_funds  虚拟支付查询广告金发放记录
-    https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/virtual-payment.html#_1-1-%E5%BC%80%E9%80%9A%E6%9D%A1%E4%BB%B6
-     */
-    public void queryVPAdFunds(String startDt, String endDt, String appId, Long appletId, String prodKey, Integer page, Integer isLog, Long errId, Integer isSend) {
-        try {
-            Object tokenObj = redis2Template_db5.opsForValue().get("wechat-applet-access-token-key-" + appletId);
-            if (tokenObj == null) {
-                log.error("虚拟支付查询广告金发放记录获取token为空 [{}] {}~{} {}", appId, startDt, endDt, appletId);
-                return;
-            }
-            int pageSize = 500;
-            Map<String, Object> paramsMap = new HashMap<>();
-            paramsMap.put("page", page);
-            paramsMap.put("page_size", pageSize);
-            paramsMap.put("env", 0);
-            HashMap<String, Object> filter = new HashMap<>();
-            filter.put("settle_begin", DateUtils.getTimestampFormat("yyyy-MM-dd HH:mm:ss", startDt + " 00:00:00"));
-            filter.put("settle_end", DateUtils.getTimestampFormat("yyyy-MM-dd HH:mm:ss", endDt + " 23:59:59"));
-            paramsMap.put("filter", filter);
-            String paySig = getWxPaySig("/xpay/query_adver_funds", paramsMap, prodKey);
-            String url = String.format("https://api.weixin.qq.com/xpay/query_adver_funds?access_token=%s&pay_sig=%s", tokenObj, paySig);
-            String s = HttpUtils.httpPostRequest(url, paramsMap, null);
-            JSONObject jsonObject = JSONObject.parseObject(s);
-            int totalPage = 1;
-            ArrayList<JSONObject> reports = new ArrayList<>();
-            if (!Check.isNull(jsonObject)) {
-                Integer code = jsonObject.getInteger("errcode");
-                totalPage = jsonObject.getInteger("total_page");
-                if (code == 0) {
-                    JSONArray list = jsonObject.getJSONArray("adver_funds_list");
-                    if (!Check.isNull(list)) {
-                        for (int i = 0; i < list.size(); i++) {
-                            JSONObject dataJson = list.getJSONObject(i);
-                            dataJson.put("app_id", appId);
-                            reports.add(dataJson);
-                        }
-                    }
-                } else {
-                    log.error("虚拟支付查询广告金发放记录失败,app_id:{} {}~{},返回信息:{}", appId, startDt, endDt, jsonObject);
-                    insertErrorLog(isLog, System.currentTimeMillis(), "adq_query_adver_funds", startDt, endDt,
-                            jsonObject.fluentPut("app_id", appId).fluentPut("applet_id", appletId).fluentPut("prod_key", prodKey).toJSONString());
-                }
-            } else {
-                log.error("虚拟支付查询广告金发放记录失败,app_id:{} {}~{},返回为空。", appId, startDt, endDt);
-                insertErrorLog(isLog, System.currentTimeMillis(), "adq_query_adver_funds", startDt, endDt,
-                        new JSONObject().fluentPut("app_id", appId).fluentPut("applet_id", appletId).fluentPut("prod_key", prodKey).fluentPut("msg", "返回为空").toJSONString());
-            }
-            if (!Check.isNull(reports)) {
-                adqAdIncomeMapper.insertVPAdFunds(reports);
-            }
-
-            if (totalPage > page) {
-                queryVPAdFunds(startDt, endDt, appId, appletId, prodKey, page + 1, isLog, errId, isSend);
-            } else {
-                log.info("虚拟支付查询广告金发放记录完成,app_id:{} {}~{} page:{}。", appId, startDt, endDt, page);
-                if (errId != null) {
-                    adqErrorLogMapper.deleteInfoByErrorId(errId);
-                }
-                if (isSend != null && isSend == 1) {
-                    AlertUtils.sendMessage(System.currentTimeMillis(), startDt, endDt, 3, "daily", 1, "adq_query_adver_funds");
-                }
-            }
-        } catch (Exception e) {
-            log.error("虚拟支付查询广告金发放记录失败,app_id:{} {}~{}。", appId, startDt, endDt, e);
-        }
-    }
-
-    private String getWxPaySig(String uri, Map<String, Object> param, String prodKey) throws Exception {
-        String postBody = new Gson().toJson(param);
-        String needSignMsg = uri + "&" + postBody;
-        Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
-        SecretKeySpec secretKey = new SecretKeySpec(prodKey.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
-        sha256_HMAC.init(secretKey);
-        byte[] hashBytes = sha256_HMAC.doFinal(needSignMsg.getBytes(StandardCharsets.UTF_8));
-        StringBuilder hexString = new StringBuilder();
-        for (byte b : hashBytes) {
-            String hex = Integer.toHexString(0xff & b);
-            if (hex.length() == 1) hexString.append('0');
-            hexString.append(hex);
-        }
-        return hexString.toString();
-    }
-}

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

@@ -9,9 +9,7 @@ import cn.com.ctop.job.adq.data.service.IAdqAssetReportService;
 import cn.com.ctop.job.adq.data.utils.AlertUtils;
 import cn.com.ctop.job.adq.data.utils.Check;
 import cn.com.ctop.job.adq.data.utils.HttpUtils;
-import cn.com.ctop.job.adq.data.utils.JsonUtils;
 import cn.com.ctop.job.adq.utils.RandomStringGenerator;
-import cn.com.ctop.job.adq.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
@@ -26,8 +24,6 @@ import java.util.*;
 @Service
 public class AdqAssetReportServiceImpl implements IAdqAssetReportService {
     @Autowired
-    private DorisMultiTableStreamLoadManager dorisLoadManager;
-    @Autowired
     private AdqErrorLogMapper adqErrorLogMapper;
     @Autowired
     private AdqAssetReportMapper adqAssetReportMapper;
@@ -71,11 +67,6 @@ public class AdqAssetReportServiceImpl implements IAdqAssetReportService {
                                 report.setStatTimeDay(Integer.valueOf(dataJson.getString("date").replace("-", "")));
                                 dailies.add(report);
 
-                                String filterJSON = JsonUtils.toFilterJSON(report);
-                                JSONObject filterJsonObject = JSONObject.parseObject(filterJSON);
-                                filterJsonObject.put("video_outer_play100_count", report.getVideoOuterPlay100Count());
-                                dorisLoadManager.add("media_api", "adq_asset_report_daily", filterJsonObject);
-
                                 Long marketingAssetId = report.getMarketingAssetId();
                                 if (!Check.isNull(marketingAssetId)) {
                                     String marketingTargetType = report.getMarketingTargetType();
@@ -98,7 +89,6 @@ public class AdqAssetReportServiceImpl implements IAdqAssetReportService {
             }
             if (!Check.isNull(dailies)) {
                 adqAssetReportMapper.insertAdqAssetReportDaily(dailies);
-                //adqAssetReportMapper.insertAdqAssetReportDailySD(dailies);
             }
             if (!Check.isNullMap(assetIdsMap)) {
                 getAdqAssetInfo(assetIdsMap, advertiserId, accessToken, 1, null, null);
@@ -225,8 +215,6 @@ public class AdqAssetReportServiceImpl implements IAdqAssetReportService {
                 }
                 if (!Check.isNull(infos)) {
                     adqAssetReportMapper.insertAdqAssetInfo(infos);
-                    //adqAssetReportMapper.insertAdqAssetInfoSD(infos);
-                    dorisLoadManager.add("media_api", "adq_asset_info", infos);
                 }
 
                 if (page == totalPage) {

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

@@ -9,9 +9,7 @@ import cn.com.ctop.job.adq.data.service.IAdqCreativeReportService;
 import cn.com.ctop.job.adq.data.utils.Check;
 import cn.com.ctop.job.adq.data.utils.FieldsConfig;
 import cn.com.ctop.job.adq.data.utils.HttpUtils;
-import cn.com.ctop.job.adq.data.utils.JsonUtils;
 import cn.com.ctop.job.adq.utils.RandomStringGenerator;
-import cn.com.ctop.job.adq.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
@@ -35,9 +33,6 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
     @Autowired
     private AdqErrorLogMapper adqErrorLogMapper;
 
-    @Autowired
-    private DorisMultiTableStreamLoadManager dorisLoadManager;
-
 
     @Override
     public void getAdqCreativeHour(Long advertiserId, String accessToken, String startDate, String endDate, Integer page, Integer isLog) {
@@ -80,10 +75,6 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
                                 hourReport.setAdvertiserId(advertiserId);
                                 hourReport.setStatTimeDay(Long.valueOf(startDate.replace("-", "")));
                                 hourList.add(hourReport);
-
-                                JSONObject filterJson = JSONObject.parseObject(JsonUtils.toFilterJSON(hourReport));
-                                filterJson.put("video_outer_play100_count",hourReport.getVideoOuterPlay100Count());
-                                dorisLoadManager.add("media_api","adq_creative_report_hour", filterJson);
                             }
                         }
                     }
@@ -104,7 +95,6 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
             log.info("hourList.size:{}", hourList.size());
             if (!Check.isNull(hourList)) {
                 adqReportMapper.addsHourList(hourList);
-                //adqReportMapper.addsHourListSD(hourList);
                 log.info("新增数据完成account:id:{}", advertiserId);
             }
             if (hourList.size() >= 1000) {
@@ -165,10 +155,6 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
                                 hourReport.setStatTimeDay(Long.valueOf(dataJson.getString("date").replace("-", "")));
                                 dailies.add(hourReport);
 
-                                JSONObject filterJson = JSONObject.parseObject(JsonUtils.toFilterJSON(hourReport));
-                                filterJson.put("video_outer_play100_count",hourReport.getVideoOuterPlay100Count());
-                                dorisLoadManager.add("media_api","adq_creative_report_daily", filterJson);
-
                             }
                         }
                     }
@@ -188,7 +174,6 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
             }
             if (!Check.isNull(dailies)) {
                 adqReportMapper.addsDaily(dailies);
-                //adqReportMapper.addsDailySD(dailies);
             }
             if (dailies.size() >= 1000) {
                 getAdqCreativeDaily(advertiserId, accessToken, startDate, endDate, page + 1, isLog);
@@ -204,9 +189,4 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
     public List<JSONObject> getErrorLogs() {
         return adqErrorLogMapper.getErrorLogs();
     }
-
-    @Override
-    public List<JSONObject> getAccountListByDate(Integer startDate, Integer endDate) {
-        return adqErrorLogMapper.getAccountListByDate(startDate, endDate);
-    }
 }

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

@@ -10,7 +10,6 @@ import cn.com.ctop.job.adq.data.utils.Check;
 import cn.com.ctop.job.adq.data.utils.DateUtils;
 import cn.com.ctop.job.adq.data.utils.HttpUtils;
 import cn.com.ctop.job.adq.utils.RandomStringGenerator;
-import cn.com.ctop.job.adq.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
@@ -32,8 +31,6 @@ import java.util.stream.Collectors;
 @Service
 @Slf4j
 public class AdqFlowDetailsReportServiceImpl implements IAdqFlowDetailsReportService {
-    @Autowired
-    private DorisMultiTableStreamLoadManager dorisLoadManager;
 
     @Resource
     private AdqFlowDetailsReportDailyMapper adqFlowDetailsReportDailyMapper;
@@ -117,9 +114,6 @@ public class AdqFlowDetailsReportServiceImpl implements IAdqFlowDetailsReportSer
                             dailyList = buildFlowDetailsReportDaily(dailyList);
 
                             adqFlowDetailsReportDailyMapper.replaceFlowDetailsReportDailies(dailyList);
-
-                            dorisLoadManager.add("media_api", "adq_flow_details_report_daily", dailyList);
-                            //adqFlowDetailsReportDailyMapper.replaceFlowDetailsReportDailiesSD(dailyList);
                         }
                     }
                 }

+ 9 - 3
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqMaterialReportServiceImpl.java

@@ -2,13 +2,13 @@ package cn.com.ctop.job.adq.data.service.impl;
 
 import cn.com.ctop.job.adq.data.entity.AdqErrorLog;
 import cn.com.ctop.job.adq.data.mapper.AdqErrorLogMapper;
+import cn.com.ctop.job.adq.data.mapper.AdqMaterialReportMapper;
 import cn.com.ctop.job.adq.data.service.IAdqMaterialReportService;
 import cn.com.ctop.job.adq.data.utils.AlertUtils;
 import cn.com.ctop.job.adq.data.utils.Check;
 import cn.com.ctop.job.adq.data.utils.FieldsConfig;
 import cn.com.ctop.job.adq.data.utils.HttpUtils;
 import cn.com.ctop.job.adq.utils.RandomStringGenerator;
-import cn.com.ctop.job.adq.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
@@ -16,14 +16,16 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.Instant;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @Slf4j
 @Service
 public class AdqMaterialReportServiceImpl implements IAdqMaterialReportService {
     @Autowired
-    private DorisMultiTableStreamLoadManager dorisLoadManager;
+    private AdqMaterialReportMapper adqMaterialReportMapper;
     @Autowired
     private AdqErrorLogMapper adqErrorLogMapper;
 
@@ -69,6 +71,7 @@ public class AdqMaterialReportServiceImpl implements IAdqMaterialReportService {
             String s = HttpUtils.httpGet("https://api.e.qq.com/v3.0/daily_reports/get", paramsMap, null);
             JSONObject jsonObject = JSONObject.parseObject(s);
             int totalPage = 1;
+            List<JSONObject> reports = new ArrayList<>();
             if (Check.isNull(jsonObject)) {
                 log.error("请求素材日报失败,account_id:{},返回为空。", advertiserId);
                 if (isLog == 1) {
@@ -100,7 +103,7 @@ public class AdqMaterialReportServiceImpl implements IAdqMaterialReportService {
                                     dataJson.put("material_id", dataJson.getString("video_id"));
                                     dataJson.put("material_type", "VIDEO");
                                 }
-                                dorisLoadManager.add("media_api", "adq_material_report_daily", dataJson);
+                                reports.add(dataJson);
                             }
                         }
                     }
@@ -118,6 +121,9 @@ public class AdqMaterialReportServiceImpl implements IAdqMaterialReportService {
                     return;
                 }
             }
+            if (!Check.isNull(reports)) {
+                adqMaterialReportMapper.insertAdqMaterialReportDaily(reports);
+            }
             if (page < totalPage) {
                 getAdqMaterialDailyReport(advertiserId, accessToken, level, startDate, endDate, page + 1, isLog, errId, isSend);
             } else {

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

@@ -7,7 +7,6 @@ import cn.com.ctop.job.adq.data.mapper.AdqErrorLogMapper;
 import cn.com.ctop.job.adq.data.service.IAdqRetryReportService;
 import cn.com.ctop.job.adq.data.utils.*;
 import cn.com.ctop.job.adq.utils.RandomStringGenerator;
-import cn.com.ctop.job.adq.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
@@ -26,8 +25,6 @@ import java.util.concurrent.Executors;
 @Service
 public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
     @Autowired
-    private DorisMultiTableStreamLoadManager dorisLoadManager;
-    @Autowired
     private AdqCreativeReportMapper adqReportMapper;
     @Autowired
     private AdqAccountReportMapper accountReportMapper;
@@ -74,10 +71,6 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
                             hourReport.setAdvertiserId(advertiserId);
                             hourReport.setStatTimeDay(Long.valueOf(startDate.replace("-", "")));
                             hourList.add(hourReport);
-
-                            JSONObject filterJson = JSONObject.parseObject(JsonUtils.toFilterJSON(hourReport));
-                            filterJson.put("video_outer_play100_count",hourReport.getVideoOuterPlay100Count());
-                            dorisLoadManager.add("media_api","adq_creative_report_hour",filterJson);
                         }
                     }
                 }
@@ -88,7 +81,6 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
         }
         if (!Check.isNull(hourList)) {
             adqReportMapper.addsHourList(hourList);
-            //adqReportMapper.addsHourListSD(hourList);
         }
         if (hourList.size() >= 1000) {
             getCreativeHourRetry(errorId, advertiserId, accessToken, startDate, endDate, page + 1, isSend);
@@ -144,10 +136,6 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
                                 hourReport.setStatTimeDay(Long.valueOf(dataJson.getString("date").replace("-", "")));
                                 dailies.add(hourReport);
 
-                                JSONObject filterJson = JSONObject.parseObject(JsonUtils.toFilterJSON(hourReport));
-                                filterJson.put("video_outer_play100_count",hourReport.getVideoOuterPlay100Count());
-                                dorisLoadManager.add("media_api","adq_creative_report_daily", filterJson);
-
                             }
                         }
                     }
@@ -158,7 +146,6 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
             }
             if (!Check.isNull(dailies)) {
                 adqReportMapper.addsDaily(dailies);
-                //adqReportMapper.addsDailySD(dailies);
             }
             if (dailies.size() >= 1000) {
                 getCreativeDailyRetry(errorId, advertiserId, accessToken, startDate, endDate, page + 1, isSend);
@@ -214,11 +201,6 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
                                 hourReport.setAdvertiserId(advertiserId);
                                 hourReport.setStatTimeDay(Long.valueOf(startDate.replace("-", "")));
                                 hourList.add(hourReport);
-
-                                String filterJSON = JsonUtils.toFilterJSON(hourReport);
-                                JSONObject json = JSONObject.parseObject(filterJSON);
-                                json.put("video_outer_play100_count",hourReport.getVideoOuterPlay100Count());
-                                dorisLoadManager.add("media_api", "adq_advertiser_report_hour", json);
                             }
                         }
                     }
@@ -229,7 +211,6 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
             }
             if (!Check.isNull(hourList)) {
                 accountReportMapper.addAccountHourList(hourList);
-                //accountReportMapper.addAccountHourListSD(hourList);
             }
             if (hourList.size() >= 1000) {
                 getAccountHourRetry(errorId, advertiserId, accessToken, startDate, endDate, page + 1, isSend);
@@ -284,11 +265,6 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
                                 dailyReport.setAdvertiserId(advertiserId);
                                 dailyReport.setStatTimeDay(Long.valueOf(dataJson.getString("date").replace("-", "")));
                                 dailyList.add(dailyReport);
-
-                                String filterJSON = JsonUtils.toFilterJSON(dailyReport);
-                                JSONObject json = JSONObject.parseObject(filterJSON);
-                                json.put("video_outer_play100_count",dailyReport.getVideoOuterPlay100Count());
-                                dorisLoadManager.add("media_api", "adq_advertiser_report_daily", json);
                             }
                         }
                     }
@@ -299,7 +275,6 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
             }
             if (!Check.isNull(dailyList)) {
                 accountReportMapper.addAccountDailyList(dailyList);
-                //accountReportMapper.addAccountDailyListSD(dailyList);
             }
             if (dailyList.size() >= 1000) {
                 getAccountDailyRetry(errorId, advertiserId, accessToken, startDate, endDate, page + 1, isSend);

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

@@ -1,80 +0,0 @@
-package cn.com.ctop.job.adq.data.service.impl;
-
-import cn.com.ctop.job.adq.data.entity.LySendMessageLog;
-import cn.com.ctop.job.adq.data.mapper.AppBanWarnMapper;
-import cn.com.ctop.job.adq.data.service.IAppBanWarnService;
-import cn.com.ctop.job.adq.data.utils.Check;
-import cn.com.ctop.job.adq.data.utils.DateUtils;
-import cn.com.ctop.job.adq.data.utils.HttpUtils;
-import com.alibaba.fastjson.JSONObject;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-@Slf4j
-public class AppBanWarnServiceImpl implements IAppBanWarnService {
-    @Autowired
-    private AppBanWarnMapper appBanWarnMapper;
-
-    @Override
-    public void appBanWarnJob(long createAt) {
-        String date = DateUtils.getNowDate("yyyyMMdd");
-        List<JSONObject> list = appBanWarnMapper.getAppBanList(createAt);
-        if (Check.isNull(list)) {
-            return;
-        }
-        for (int i = 0; i < list.size(); i++) {
-            JSONObject jsonObject = list.get(i);
-            String appId = jsonObject.getString("appId");
-            if(Check.isNull(appId)){
-                continue;
-            }
-            String appName = jsonObject.getString("appName");
-            String num = jsonObject.getString("num");
-            Integer sendNum = appBanWarnMapper.checkNum(appId, date);
-            if (sendNum == 0) {
-                JSONObject returnJson = sendMessage(appId, appName, num);
-                if (!Check.isNull(returnJson)) {
-                    Integer statusCode = returnJson.getInteger("StatusCode");
-                    Integer code = returnJson.getInteger("code");
-                    if (code == 0 && statusCode == 0) {
-                        LySendMessageLog sendMessageLog = new LySendMessageLog();
-                        sendMessageLog.setAppId(appId);
-                        sendMessageLog.setSendDate(date);
-                        appBanWarnMapper.insertSendLog(sendMessageLog);
-                    }
-                }
-            } else {
-                log.info("此应用今日已经发送预警,此次跳过,appid:{},date:{}", appId, date);
-            }
-        }
-    }
-
-
-    public JSONObject sendMessage(String appId, String appName, String num) {
-        String url = "https://open.feishu.cn/open-apis/bot/v2/hook/f7278c1e-0455-40d9-8893-d09d7936eca4";
-        // String url = "https://open.feishu.cn/open-apis/bot/v2/hook/bb4853d2-9740-4007-a0c2-92ec319c914e";
-        JSONObject param = new JSONObject();
-        param.put("msg_type", "interactive");
-        JSONObject card = new JSONObject();
-        card.put("type", "template");
-        JSONObject data = new JSONObject();
-        data.put("template_id", "AAqdt9MmVURPx");
-        JSONObject template_variable = new JSONObject();
-        template_variable.put("appId", appId);
-        template_variable.put("appName", appName);
-        template_variable.put("num", num);
-
-
-        data.put("template_variable", template_variable);
-        card.put("data", data);
-        param.put("card", card);
-        String s = HttpUtils.httpPostRequest(url, param, null);
-        JSONObject jsonObject = JSONObject.parseObject(s);
-        return jsonObject;
-
-    }
-}

+ 4 - 5
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AppletTokenRefreshServiceImpl.java

@@ -7,10 +7,9 @@ import cn.com.ctop.job.adq.data.utils.HttpUtils;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -23,8 +22,8 @@ public class AppletTokenRefreshServiceImpl implements IAppletTokenRefreshService
     @Autowired
     private AppletTokenRefreshMapper tokenRefreshMapper;
 
-    @Resource
-    private RedisTemplate redis2Template_db5;
+    @Autowired
+    private StringRedisTemplate stringRedisTemplate;
 
     @Override
     public void buildAppletTokens() {
@@ -49,7 +48,7 @@ public class AppletTokenRefreshServiceImpl implements IAppletTokenRefreshService
             JSONObject tokenInfo = JSONObject.parseObject(result);
             if (!Check.isNull(tokenInfo)) {
                 String accessToken = tokenInfo.getString("access_token");
-                redis2Template_db5.opsForValue().set("wechat-applet-access-token-key-" + applet.getInteger("id"), accessToken, tokenInfo.getInteger("expires_in"), TimeUnit.SECONDS);
+                stringRedisTemplate.opsForValue().set("wechat-applet-access-token-key-" + applet.getInteger("id"), accessToken, tokenInfo.getInteger("expires_in"), TimeUnit.SECONDS);
                 applet.put("token", accessToken);
                 log.info("小程序:{},更新token完成", name);
             } else {

+ 24 - 102
job-adq/src/main/java/cn/com/ctop/job/adq/handler/AdqAccountReportJob.java

@@ -4,14 +4,12 @@ package cn.com.ctop.job.adq.handler;
 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;
-import com.alibaba.fastjson.JSONObject;
 import com.xxl.job.core.context.XxlJobHelper;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -29,8 +27,6 @@ public class AdqAccountReportJob {
     @Autowired
     private IAdqAccountReportService accountReportService;
     @Autowired
-    private IAdqAdIncomeService adqAdIncomeService;
-    @Autowired
     private IAdqMaterialReportService adqMaterialReportService;
     private static ExecutorService nowDateHourExecutorService = Executors.newFixedThreadPool(5);
     private static ExecutorService yesDateHourExecutorService = Executors.newFixedThreadPool(5);
@@ -38,6 +34,7 @@ public class AdqAccountReportJob {
     private static ExecutorService balanceExecutorService = Executors.newFixedThreadPool(2);
     @Autowired
     private IDailyBalanceReportService dailyBalanceReportService;
+
     @XxlJob("nowDateAccountHour")
     public void nowDateAccountHour() throws Exception {
         String param = XxlJobHelper.getJobParam(); // 执行参数
@@ -103,8 +100,9 @@ public class AdqAccountReportJob {
         });
     }
 
-    @XxlJob("assetReport")
-    public void assetReport() throws Exception {
+
+    @XxlJob("nowDateAccountDaily")
+    public void nowDateAccountDaily() throws Exception {
         String param = XxlJobHelper.getJobParam(); // 执行参数
         if (Check.isNull(param)) {
             log.error("入参为空");
@@ -112,50 +110,39 @@ public class AdqAccountReportJob {
         }
 
         String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
-        String data = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+
+
         String[] s = param.split("_");
         Long advertiserId = Long.valueOf(s[0]);
         String accessToken = s[1];
         dailyExecutorService.submit(new Runnable() {
             @Override
             public void run() {
-                adqAssetReportService.getAdqAssetDailyReport(advertiserId, accessToken, data, data, 1, 1, null, null);
+                accountReportService.getAdqAccountDaily(advertiserId, accessToken, nowDate, nowDate, 1, 1);
             }
         });
     }
 
-    @XxlJob("miniAppAdIncome")
-    public void miniAppAdIncome() {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(null);
-        String start = DateUtils.getNowAddDate("yyyy-MM-dd", -1);
-        String end = DateUtils.getNowDate("yyyy-MM-dd");
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            adqAdIncomeService.getAdqAdIncome(start, end, app, appletId, 1, 1, null, null);
-        }
-    }
 
-    @XxlJob("miniAppAdPosIncome")
-    public void miniAppAdPosIncome() {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(null);
-        String start = DateUtils.getNowAddDate("yyyy-MM-dd", -1);
-        String end = DateUtils.getNowDate("yyyy-MM-dd");
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            adqAdIncomeService.getAdqAdPosIncome(start, end, app, appletId, 1, 1, null, null);
+    @XxlJob("assetReport")
+    public void assetReport() throws Exception {
+        String param = XxlJobHelper.getJobParam(); // 执行参数
+        if (Check.isNull(param)) {
+            log.error("入参为空");
+            return;
         }
-    }
 
-    @XxlJob("miniAppAdUnitList")
-    public void miniAppAdUnitList() {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(null);
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            adqAdIncomeService.getAdqAdUnitList(app, appletId, 1);
-        }
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String data = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+        String[] s = param.split("_");
+        Long advertiserId = Long.valueOf(s[0]);
+        String accessToken = s[1];
+        dailyExecutorService.submit(new Runnable() {
+            @Override
+            public void run() {
+                adqAssetReportService.getAdqAssetDailyReport(advertiserId, accessToken, data, data, 1, 1, null, null);
+            }
+        });
     }
 
     @XxlJob("yesMaterialDaily")
@@ -178,71 +165,6 @@ public class AdqAccountReportJob {
         });
     }
 
-    @XxlJob("miniAppAdIncomeRate")
-    public void miniAppAdIncomeRate() {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(null);
-        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
-        String yesDate = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            adqAdIncomeService.getAdqAdIncomeRate(app, appletId, yesDate, yesDate);
-        }
-    }
-
-    @XxlJob("gameGiftList")
-    public void gameGiftList() {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(null);
-        String start = DateUtils.getNowAddDate("yyyy-MM-dd", -3);
-        String end = DateUtils.getNowDate("yyyy-MM-dd");
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            adqAdIncomeService.getGameGiftList(start, end, app, appletId, 1, 1, null, null);
-        }
-    }
-
-    @XxlJob("gameDiviceSave")
-    public void gameDiviceSave() {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(null);
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            adqAdIncomeService.getGameDiviceSave(app, appletId, 1, 1, null, null);
-        }
-    }
-
-    @XxlJob("gameDiviceTransfer")
-    public void gameDiviceTransfer() {
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(null);
-        String start = DateUtils.getNowAddDate("yyyy-MM-dd", -60);
-        String end = DateUtils.getNowDate("yyyy-MM-dd");
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            adqAdIncomeService.getGameDiviceTransfer(start, end, app, appletId, 1, 1, null, null);
-        }
-    }
-
-    @XxlJob("vpAdFunds")
-    public void vpAdFunds(){
-        List<JSONObject> adqMiniApp = adqAdIncomeService.getAdqAllMiniApp(null);
-        String start = DateUtils.getNowAddDate("yyyy-MM-dd", -180) ;
-        String end = DateUtils.getNowDate("yyyy-MM-dd");
-        for (JSONObject jsonObject : adqMiniApp) {
-            String app = jsonObject.getString("app_id");
-            Long appletId = jsonObject.getLong("applet_id");
-            String prodKey = jsonObject.getString("prod_key");
-            dailyExecutorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    adqAdIncomeService.queryVPAdFunds(start, end, app, appletId, prodKey, 1, 0, null, null);
-                }
-            });
-        }
-    }
-
-
     @XxlJob("yesDateBalance")
     public void yesDateBalance() throws Exception {
         String param = XxlJobHelper.getJobParam(); // 执行参数

+ 0 - 87
job-adq/src/main/java/cn/com/ctop/job/adq/handler/AdqRetryReportJob.java

@@ -3,7 +3,6 @@ package cn.com.ctop.job.adq.handler;
 
 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;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
@@ -36,9 +35,6 @@ public class AdqRetryReportJob {
 
     private static ExecutorService flowExecutorService = Executors.newFixedThreadPool(2);
 
-    private static ExecutorService dailyExecutorService = Executors.newFixedThreadPool(5);
-    private static ExecutorService adIncomeExecutorService = Executors.newFixedThreadPool(1);
-
     @Autowired
     private IAdqCreativeReportService adqReportService;
     @Autowired
@@ -46,12 +42,8 @@ public class AdqRetryReportJob {
     @Autowired
     private IAdqAssetReportService assetReportService;
     @Autowired
-    private IAdqAdIncomeService adqAdIncomeService;
-    @Autowired
     private IAdqFlowDetailsReportService adqFlowDetailsReportService;
     @Autowired
-    private IAdqAccountReportService accountReportService;
-    @Autowired
     private IAdqMaterialReportService adqMaterialReportService;
     @Autowired
     private IDailyBalanceReportService dailyBalanceReportService;
@@ -188,59 +180,6 @@ public class AdqRetryReportJob {
             log.info("重试列表为空");
         }
 
-        List<JSONObject> adqAdIncomeRetryJob = adqAdIncomeService.getAdqAdIncomeRetryJob();
-        if (!Check.isNull(adqAdIncomeRetryJob)) {
-            for (int i = 0; i < adqAdIncomeRetryJob.size(); i++) {
-                JSONObject jsonObject = adqAdIncomeRetryJob.get(i);
-                Long id = jsonObject.getLong("id");
-                String dataDimension = jsonObject.getString("dataDimension");
-                String startDate = jsonObject.getString("startDate");
-                String endDate = jsonObject.getString("endDate");
-                Integer isSend = jsonObject.getInteger("isSend");
-                JSONObject msg = jsonObject.getJSONObject("msg");
-                String appId = msg.getString("app_id");
-                Long appletId = msg.getLong("applet_id");
-                if ("adq_ma_ad_income".equals(dataDimension)) {
-                    adIncomeExecutorService.submit(new Runnable() {
-                        @Override
-                        public void run() {
-                            adqAdIncomeService.getAdqAdIncome(startDate, endDate, appId, appletId, 1, null, id, isSend);
-                        }
-                    });
-                } else if ("adq_ma_publisher_adpos_general".equals(dataDimension)) {
-                    adIncomeExecutorService.submit(new Runnable() {
-                        @Override
-                        public void run() {
-                            adqAdIncomeService.getAdqAdPosIncome(startDate, endDate, appId, appletId, 1, null, id, isSend);
-                        }
-                    });
-                } else if ("adq_ma_game_gift_list".equals(dataDimension)) {
-                    adIncomeExecutorService.submit(new Runnable() {
-                        @Override
-                        public void run() {
-                            adqAdIncomeService.getGameGiftList(startDate, endDate, appId, appletId, 1, null, id, isSend);
-                        }
-                    });
-                } else if ("adq_ma_game_divice_save".equals(dataDimension)) {
-                    adIncomeExecutorService.submit(new Runnable() {
-                        @Override
-                        public void run() {
-                            adqAdIncomeService.getGameDiviceSave(appId, appletId, 1, null, id, isSend);
-                        }
-                    });
-                } else if ("adq_ma_game_divice_transfer".equals(dataDimension)) {
-                    adIncomeExecutorService.submit(new Runnable() {
-                        @Override
-                        public void run() {
-                            adqAdIncomeService.getGameDiviceTransfer(startDate, endDate, appId, appletId, 1, null, id, isSend);
-                        }
-                    });
-                }
-            }
-        } else {
-            log.info("微小广告细分数据重试列表为空");
-        }
-
     }
 
 
@@ -255,30 +194,4 @@ public class AdqRetryReportJob {
     }
 
 
-    @XxlJob("getLtv3Data")
-    public void getLtv3Data() {
-        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
-        String endDateStr = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
-        String startDateStr = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -4);
-        Integer startDate = Integer.valueOf(startDateStr.replace("-", ""));
-        Integer endDate = Integer.valueOf(endDateStr.replace("-", ""));
-        List<JSONObject> dataJson = adqReportService.getAccountListByDate(startDate, endDate);
-        if (!Check.isNull(dataJson)) {
-            for (int i = 0; i < dataJson.size(); i++) {
-                JSONObject jsonObject = dataJson.get(i);
-                Long advertiserId = jsonObject.getLong("advertiserId");
-                String accessToken = jsonObject.getString("accessToken");
-                dailyExecutorService.submit(new Runnable() {
-                    @Override
-                    public void run() {
-                        adqReportService.getAdqCreativeDaily(advertiserId, accessToken, startDateStr, endDateStr, 1, 1);
-                        accountReportService.getAdqAccountDaily(advertiserId, accessToken, startDateStr, endDateStr, 1, 1);
-                    }
-                });
-            }
-
-        }
-    }
-
-
 }

+ 0 - 25
job-adq/src/main/java/cn/com/ctop/job/adq/handler/ProductJob.java

@@ -1,25 +0,0 @@
-package cn.com.ctop.job.adq.handler;
-
-import cn.com.ctop.job.adq.data.utils.HttpUtils;
-import com.xxl.job.core.handler.annotation.XxlJob;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * 定时更新产品库
- * https://youhuo.tencent.com/yh/u/58117453/commodity/product_manage/feed_detail/catalog/1075547/feed/37390
- */
-@Slf4j
-@Component
-public class ProductJob {
-    /**
-     * 调取接口上传商品库文件到oss
-     */
-    @XxlJob("upProductFile")
-    public void flowDetailsDaily() throws Exception {
-        log.info("[upProductFile] 任务启动...");
-        String url = "https://api.deepthink.artlinkworld.cn/ossUp/upProductFile?id=hrsj2025";
-        String result = HttpUtils.httpGet(url, null, null);
-        log.info("[upProductFile] 任务完成! 结果:{}", result);
-    }
-}

+ 0 - 33
job-adq/src/main/java/cn/com/ctop/job/adq/handler/appBanWarnJob.java

@@ -1,33 +0,0 @@
-package cn.com.ctop.job.adq.handler;
-
-import cn.com.ctop.job.adq.data.service.IAdqFlowDetailsReportService;
-import cn.com.ctop.job.adq.data.service.IAppBanWarnService;
-import cn.com.ctop.job.adq.data.utils.Check;
-import cn.com.ctop.job.adq.data.utils.DateUtils;
-import com.xxl.job.core.context.XxlJobHelper;
-import com.xxl.job.core.handler.annotation.XxlJob;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-
-@Slf4j
-@Component
-public class appBanWarnJob {
-@Autowired
-private IAppBanWarnService appBanWarnService;
-
-    @XxlJob("appBanWarnJob")
-    public void appBanWarnJob() throws Exception {
-        long currentTimeMillis = System.currentTimeMillis();
-        // 转换为秒级时间戳
-        long currentTimeSeconds = currentTimeMillis / 1000;
-        // 计算10分钟之前的时间戳(秒级)
-        long tenMinutesAgoSeconds = currentTimeSeconds - 600; // 10分钟前的时间戳(秒级)
-        appBanWarnService.appBanWarnJob(tenMinutesAgoSeconds);
-    }
-
-}

+ 0 - 49
job-adq/src/main/java/cn/com/ctop/job/adq/utils/DorisConfig.java

@@ -1,49 +0,0 @@
-package cn.com.ctop.job.adq.utils;
-
-import cn.com.ctop.job.adq.utils.doris.sink.DorisBufferConfig;
-import cn.com.ctop.job.adq.utils.doris.sink.DorisMultiTableStreamLoadManager;
-import cn.com.ctop.job.adq.utils.doris.sink.DorisSinkClient;
-import cn.com.ctop.job.adq.utils.doris.sink.SimpleHttpDorisSinkClient;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class DorisConfig {
-    @Value("${spring.doris.fe-host}")
-    private String feHost;
-
-    @Value("${spring.doris.user}")
-    private String userName;
-
-    @Value("${spring.doris.password}")
-    private String password;
-
-    @Value("${spring.doris.label-prefix}")
-    private String labelPrefix;
-
-    @Value("${spring.doris.sink-threads}")
-    private int uploaderThreads;
-
-    @Value("${spring.doris.sink-batch-rows}")
-    private int flushMaxRows;
-
-    @Value("${spring.doris.sink-batch-mb}")
-    private long flushMaxMb;
-
-    @Value("${spring.doris.sink-batch-seconds}")
-    private long flushIntervalSeconds;
-
-    @Bean
-    public DorisMultiTableStreamLoadManager dorisStreamLoadManager() {
-        DorisBufferConfig defaultConfig = DorisBufferConfig.builder()
-                .bufferFlushMaxRows(flushMaxRows)
-                .bufferFlushMaxBytes(flushMaxMb * 1024 * 1024)
-                .bufferFlushIntervalMs(flushIntervalSeconds * 1000)
-                .build();
-
-        DorisSinkClient sinkClient = new SimpleHttpDorisSinkClient(feHost, userName, password, labelPrefix);
-
-        return new DorisMultiTableStreamLoadManager(uploaderThreads, defaultConfig, sinkClient);
-    }
-}

+ 0 - 206
job-adq/src/main/java/cn/com/ctop/job/adq/utils/Redis2Config.java

@@ -1,206 +0,0 @@
-package cn.com.ctop.job.adq.utils;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.redis.connection.RedisConnectionFactory;
-import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
-import org.springframework.data.redis.serializer.RedisSerializer;
-import org.springframework.data.redis.serializer.StringRedisSerializer;
-import redis.clients.jedis.JedisPoolConfig;
-
-@Configuration
-public class Redis2Config {
-
-    @Value("${spring.redis2.host}")
-    private String host;
-
-    @Value("${spring.redis2.port}")
-    private int port;
-
-    @Value("${spring.redis2.database}")
-    private int database;
-
-    @Value("${spring.redis2.password}")
-    private String password;
-
-    @Value("${spring.redis2.pool.max-idle}")
-    private int maxIdle;
-
-    @Value("${spring.redis2.pool.min-idle}")
-    private int minIdle;
-
-    @Value("${spring.redis2.pool.max-active}")
-    private int maxActive;
-
-    @Value("${spring.redis2.pool.max-wait}")
-    private int maxWait;
-
-
-    /**
-     * JedisPoolConfig 连接池
-     * @return
-     */
-    public JedisPoolConfig redis2PoolConfig() {
-        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
-        // 最大空闲数
-        jedisPoolConfig.setMaxIdle(maxIdle);
-        jedisPoolConfig.setMinIdle(minIdle);
-        // 连接池的最大数据库连接数
-        jedisPoolConfig.setMaxTotal(maxActive);
-        // 最大建立连接等待时间
-        jedisPoolConfig.setMaxWaitMillis(maxWait);
-        return jedisPoolConfig;
-    }
-
-    private JedisConnectionFactory redis2ConnectionFactory(JedisPoolConfig redisPoolConfig, int database){
-
-        JedisConnectionFactory JedisConnectionFactory = new JedisConnectionFactory(redisPoolConfig);
-
-        JedisConnectionFactory.setHostName(host);
-        JedisConnectionFactory.setPort(port);
-        JedisConnectionFactory.setPassword(password);
-        JedisConnectionFactory.setDatabase(database);
-        JedisConnectionFactory.afterPropertiesSet();
-        return JedisConnectionFactory;
-    }
-
-    private RedisTemplate buildRedis2Template(RedisConnectionFactory connectionFactory){
-
-        RedisTemplate template = new RedisTemplate();
-        template.setConnectionFactory(connectionFactory);
-
-        RedisSerializer<String> stringSerializer = new StringRedisSerializer();
-        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
-        ObjectMapper objectMapper = new ObjectMapper();
-        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
-        objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
-
-        template.setKeySerializer(stringSerializer);
-        template.setValueSerializer(stringSerializer);
-        template.setHashKeySerializer(stringSerializer);
-        template.setHashValueSerializer(jackson2JsonRedisSerializer);
-
-        template.afterPropertiesSet();
-        return template;
-    }
-
-    @Bean(name = "redis2TemplateDefault")
-    public RedisTemplate redis2TemplateDefault() {
-        RedisTemplate redisTemplate = buildRedis2Template(redis2ConnectionFactory(redis2PoolConfig(), database));
-        redisTemplate.setHashValueSerializer(new StringRedisSerializer());
-        return redisTemplate;
-    }
-
-    @Bean(name = "redis2Template_db2")
-    public RedisTemplate redis2Template_db2() {
-        RedisTemplate redisTemplate = buildRedis2Template(redis2ConnectionFactory(redis2PoolConfig(), 2));
-        redisTemplate.setHashValueSerializer(new StringRedisSerializer());
-        return redisTemplate;
-    }
-
-    @Bean(name = "redis2Template_db5")
-    public RedisTemplate redis2Template_db5() {
-        RedisTemplate redisTemplate = buildRedis2Template(redis2ConnectionFactory(redis2PoolConfig(), 5));
-        redisTemplate.setHashValueSerializer(new StringRedisSerializer());
-        return redisTemplate;
-    }
-
-    @Bean(name = "redis2Template_db6")
-    public RedisTemplate redis2Template_db6() {
-        RedisTemplate redisTemplate = buildRedis2Template(redis2ConnectionFactory(redis2PoolConfig(), 6));
-        redisTemplate.setHashValueSerializer(new StringRedisSerializer());
-        return redisTemplate;
-    }
-
-    @Bean(name = "redis2Template_db7")
-    public RedisTemplate redis2Template_db7() {
-        RedisTemplate redisTemplate = buildRedis2Template(redis2ConnectionFactory(redis2PoolConfig(), 7));
-        return redisTemplate;
-    }
-
-    @Bean(name = "redis2Template_db8")
-    public RedisTemplate redis2Template_db8() {
-        RedisTemplate redisTemplate = buildRedis2Template(redis2ConnectionFactory(redis2PoolConfig(), 8));
-        redisTemplate.setHashValueSerializer(new StringRedisSerializer());
-        return redisTemplate;
-    }
-
-    @Bean(name = "redis2Template_db9")
-    public RedisTemplate redis2Template_db9() {
-        RedisTemplate redisTemplate = buildRedis2Template(redis2ConnectionFactory(redis2PoolConfig(), 9));
-        redisTemplate.setHashValueSerializer(new StringRedisSerializer());
-        return redisTemplate;
-    }
-
-
-    public void setHost(String host) {
-        this.host = host;
-    }
-
-    public void setPort(int port) {
-        this.port = port;
-    }
-
-    public void setDatabase(int database) {
-        this.database = database;
-    }
-
-    public void setPassword(String password) {
-        this.password = password;
-    }
-
-    public void setMaxIdle(int maxIdle) {
-        this.maxIdle = maxIdle;
-    }
-
-    public void setMinIdle(int minIdle) {
-        this.minIdle = minIdle;
-    }
-
-    public void setMaxActive(int maxActive) {
-        this.maxActive = maxActive;
-    }
-
-    public void setMaxWait(int maxWait) {
-        this.maxWait = maxWait;
-    }
-
-    public String getHost() {
-
-        return host;
-    }
-
-    public int getPort() {
-        return port;
-    }
-
-    public int getDatabase() {
-        return database;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public int getMaxIdle() {
-        return maxIdle;
-    }
-
-    public int getMinIdle() {
-        return minIdle;
-    }
-
-    public int getMaxActive() {
-        return maxActive;
-    }
-
-    public int getMaxWait() {
-        return maxWait;
-    }
-}

+ 0 - 16
job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/DorisBufferConfig.java

@@ -1,16 +0,0 @@
-package cn.com.ctop.job.adq.utils.doris.sink;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class DorisBufferConfig {
-    private long bufferFlushMaxRows;
-    private long bufferFlushMaxBytes;
-    private long bufferFlushIntervalMs;
-}

+ 0 - 51
job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/DorisMultiTableStreamLoadManager.java

@@ -1,51 +0,0 @@
-package cn.com.ctop.job.adq.utils.doris.sink;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.scheduling.concurrent.CustomizableThreadFactory;
-
-import javax.annotation.PreDestroy;
-import java.util.Collection;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-@Slf4j
-public class DorisMultiTableStreamLoadManager {
-    private final Map<TableKey, TableBufferManager> bufferManagers = new ConcurrentHashMap<>();
-    private final ExecutorService uploaderExecutor;
-    private final DorisSinkClient sinkClient;
-    private final DorisBufferConfig defaultBufferConfig;
-
-    public DorisMultiTableStreamLoadManager(int uploaderThreads,
-                                            DorisBufferConfig defaultBufferConfig,
-                                            DorisSinkClient sinkClient) {
-        log.info("init DorisMultiTableStreamLoadManager");
-        this.defaultBufferConfig = defaultBufferConfig;
-        this.sinkClient = sinkClient;
-        this.uploaderExecutor = Executors.newFixedThreadPool(uploaderThreads,
-                new CustomizableThreadFactory("doris-stream-uploader-"));
-    }
-
-    public void add(String database, String table, Object obj) {
-        TableKey key = new TableKey(database, table);
-        if (obj instanceof Collection) {
-            Collection<?> collection = (Collection<?>) obj;
-            for (Object o : collection) {
-                bufferManagers.computeIfAbsent(key, k -> new TableBufferManager(k, defaultBufferConfig, sinkClient, uploaderExecutor))
-                        .add(new RecordWithMeta(database, table, o));
-            }
-        } else {
-            bufferManagers.computeIfAbsent(key, k -> new TableBufferManager(k, defaultBufferConfig, sinkClient, uploaderExecutor))
-                    .add(new RecordWithMeta(database, table, obj));
-        }
-    }
-
-
-    @PreDestroy
-    public void shutdown() {
-        log.info("Shutting down DorisMultiTableStreamLoadManager");
-        bufferManagers.values().forEach(TableBufferManager::flushNow);
-        uploaderExecutor.shutdown();
-    }
-}

+ 0 - 7
job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/DorisSinkClient.java

@@ -1,7 +0,0 @@
-package cn.com.ctop.job.adq.utils.doris.sink;
-
-import java.util.List;
-@FunctionalInterface
-public interface DorisSinkClient {
-    void streamLoad(List<RecordWithMeta> batch) throws Exception;
-}

+ 0 - 17
job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/RecordWithMeta.java

@@ -1,17 +0,0 @@
-package cn.com.ctop.job.adq.utils.doris.sink;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-
-@Data
-@Builder
-@AllArgsConstructor
-@NoArgsConstructor
-public class RecordWithMeta {
-    private String database;
-    private String table;
-    private Object data;
-}

+ 0 - 94
job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/SimpleHttpDorisSinkClient.java

@@ -1,94 +0,0 @@
-package cn.com.ctop.job.adq.utils.doris.sink;
-
-import cn.com.ctop.job.adq.data.utils.JsonUtils;
-import com.alibaba.fastjson.JSONObject;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.http.HttpEntity;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.util.EntityUtils;
-
-import java.nio.charset.StandardCharsets;
-import java.util.Base64;
-import java.util.List;
-import java.util.UUID;
-import java.util.stream.Collectors;
-
-@Slf4j
-public class SimpleHttpDorisSinkClient implements DorisSinkClient {
-    private final String feHost;      // http://fe_host:8030
-    private final String user;        // doris 用户名
-    private final String password;    // doris 密码
-    private final String format;      // json/csv, 推荐 json
-    private final String labelPrefix; // stream load label 前缀(可选)
-
-    public SimpleHttpDorisSinkClient(String feHost, String user, String password, String labelPrefix) {
-        this.feHost = feHost;
-        this.user = user;
-        this.password = password;
-        this.format = "json";
-        this.labelPrefix = labelPrefix;
-    }
-
-    @Override
-    public void streamLoad(List<RecordWithMeta> records) throws Exception {
-        if (records == null || records.isEmpty()) return;
-
-        RecordWithMeta sample = records.get(0);
-        String db = sample.getDatabase();
-        String table = sample.getTable();
-
-        String label = labelPrefix + "_" + db + "_" + table + "_" + UUID.randomUUID();
-        String url = String.format("%s/api/%s/%s/_stream_load", feHost, db, table);
-
-        // 提取 data
-        List<String> dataList = records.stream()
-                .map(d->{
-                    Object data = d.getData();
-                    if (data instanceof JSONObject) {
-                        return data.toString();
-                    }else {
-                        return JsonUtils.toFilterJSON(data);
-                    }
-                })
-                .collect(Collectors.toList());
-
-        String jsonBody = dataList.toString();
-        //log.info("jsonBody:{}", jsonBody);
-
-        HttpPut put = new HttpPut(url);
-        put.setHeader("Expect", "100-continue");
-        put.setHeader("label", label);
-        put.setHeader("Content-Type", "application/json");
-        if (user != null && password != null) {
-            String auth = Base64.getEncoder().encodeToString((user + ":" + password).getBytes(StandardCharsets.UTF_8));
-            put.setHeader("Authorization", "Basic " + auth);
-        }
-
-        put.setHeader("format", format); // json
-        put.setHeader("strip_outer_array", "true"); // json array
-        put.setHeader("fuzzy_parse", "true"); // json array
-
-        put.setEntity(new StringEntity(jsonBody, StandardCharsets.UTF_8));
-
-        try (CloseableHttpClient httpClient = HttpClients.custom()
-                .setRedirectStrategy(new StrictRedirectStrategy())  // 支持 307/301 重定向
-                .build();
-             CloseableHttpResponse response = httpClient.execute(put)) {
-            int code = response.getStatusLine().getStatusCode();
-            HttpEntity entity = response.getEntity();
-            String responseBody = EntityUtils.toString(entity, "UTF-8");
-            if (code != 200 && code != 201) {
-                throw new RuntimeException("Doris stream load failed. Status: " + code + ", response: " + responseBody);
-            }
-            // 可选: 解析返回内容判断 success
-            if (!responseBody.contains("\"Status\": \"Success\"")) {
-                throw new RuntimeException("Stream load returned non-success: " + responseBody);
-            }
-            log.info("Doris stream load success: {}", responseBody);
-        }
-    }
-}

+ 0 - 38
job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/StrictRedirectStrategy.java

@@ -1,38 +0,0 @@
-package cn.com.ctop.job.adq.utils.doris.sink;
-
-import org.apache.http.HttpEntityEnclosingRequest;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpResponse;
-import org.apache.http.ProtocolException;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.impl.client.DefaultRedirectStrategy;
-import org.apache.http.protocol.HttpContext;
-
-import java.net.URI;
-
-public class StrictRedirectStrategy extends DefaultRedirectStrategy {
-
-    @Override
-    protected boolean isRedirectable(String method) {
-        // 允许 GET, POST, PUT 等都可重定向
-        return true;
-    }
-
-    @Override
-    public HttpUriRequest getRedirect(HttpRequest request, HttpResponse response, HttpContext context)
-            throws ProtocolException {
-        URI uri = getLocationURI(request, response, context);
-
-        String method = request.getRequestLine().getMethod();
-        if (method.equalsIgnoreCase(HttpPut.METHOD_NAME)) {
-            HttpPut put = new HttpPut(uri);
-            put.setHeaders(request.getAllHeaders());
-            if (request instanceof HttpEntityEnclosingRequest) {
-                put.setEntity(((HttpEntityEnclosingRequest) request).getEntity());
-            }
-            return put;
-        }
-        return super.getRedirect(request, response, context);
-    }
-}

+ 0 - 96
job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/TableBufferManager.java

@@ -1,96 +0,0 @@
-package cn.com.ctop.job.adq.utils.doris.sink;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.scheduling.concurrent.CustomizableThreadFactory;
-
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicLong;
-
-@Slf4j
-public class TableBufferManager {
-
-    private final TableKey tableKey;
-    private final DorisBufferConfig config;
-    private final DorisSinkClient sinkClient;
-    private final ExecutorService uploaderExecutor;
-
-    private final List<RecordWithMeta> buffer = new ArrayList<>();
-    private final Object lock = new Object();
-    private final AtomicLong currentBytes = new AtomicLong(0);
-
-    private final ScheduledExecutorService scheduler =
-            Executors.newSingleThreadScheduledExecutor(new CustomizableThreadFactory("flusher-" + UUID.randomUUID()));
-
-    public TableBufferManager(TableKey tableKey,
-                              DorisBufferConfig config,
-                              DorisSinkClient sinkClient,
-                              ExecutorService uploaderExecutor) {
-        this.tableKey = tableKey;
-        this.config = config;
-        this.sinkClient = sinkClient;
-        this.uploaderExecutor = uploaderExecutor;
-
-        scheduler.scheduleAtFixedRate(this::tryFlush,
-                config.getBufferFlushIntervalMs(),
-                config.getBufferFlushIntervalMs(),
-                TimeUnit.MILLISECONDS);
-    }
-
-    public void add(RecordWithMeta record) {
-        if (record == null || StringUtils.isBlank(record.getDatabase()) || StringUtils.isBlank(record.getTable())) {
-            return;
-        }
-        synchronized (lock) {
-            buffer.add(record);
-            currentBytes.addAndGet(estimateSize(record));
-
-            if (buffer.size() >= config.getBufferFlushMaxRows() ||
-                    currentBytes.get() >= config.getBufferFlushMaxBytes()) {
-                flush();
-            }
-        }
-    }
-
-    public void tryFlush() {
-        synchronized (lock) {
-            if (!buffer.isEmpty()) {
-                flush();
-            }
-        }
-    }
-
-    public void flushNow() {
-        synchronized (lock) {
-            flush();
-        }
-        scheduler.shutdownNow();
-    }
-
-    private void flush() {
-        if (buffer.isEmpty()) return;
-
-        List<RecordWithMeta> toSend = new ArrayList<>(buffer);
-        buffer.clear();
-        currentBytes.set(0);
-
-        uploaderExecutor.submit(() -> {
-            try {
-                sinkClient.streamLoad(toSend);
-            } catch (Exception e) {
-                log.error("Stream load failed for {}.{}: {}", tableKey.getDatabase(), tableKey.getTable(), e.getMessage(), e);
-            }
-        });
-    }
-
-    private long estimateSize(RecordWithMeta record) {
-        return record.toString().getBytes(StandardCharsets.UTF_8).length;
-    }
-}

+ 0 - 26
job-adq/src/main/java/cn/com/ctop/job/adq/utils/doris/sink/TableKey.java

@@ -1,26 +0,0 @@
-package cn.com.ctop.job.adq.utils.doris.sink;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-import java.util.Objects;
-
-@Data
-@AllArgsConstructor
-public class TableKey {
-    private String database;
-    private String table;
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(database, table);
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) return true;
-        if (!(obj instanceof TableKey)) return false;
-        TableKey other = (TableKey) obj;
-        return Objects.equals(database, other.database) && Objects.equals(table, other.table);
-    }
-}

+ 35 - 78
job-adq/src/main/resources/application.yml

@@ -44,72 +44,50 @@ spring:
     static-path-pattern: /**
   resource:
     static-locations: classpath:/static/,classpath:/public/
-  autoconfigure:
-    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
   datasource:
-    #    name: fendo
-    #    url: jdbc:mysql://39.97.120.42:3306/track?characterEncoding=UTF-8&useUnicode=true&useSSL=false
-    #    username: hcst
-    #    password: test@20190531
     type: com.alibaba.druid.pool.DruidDataSource
     driver-class-name: com.mysql.jdbc.Driver
-    dynamic:
-      primary: master  # 设置默认的数据源
-      strict: false    # 严格匹配数据源,未匹配到时使用默认数据源
-      druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)
-        # 连接池的配置信息
-        # 初始化大小,最小,最大
-        connection-init-sql: set names utf8mb4
+    url: jdbc:mysql://nuojing.rwlb.rds.aliyuncs.com:3306/nuojing_data?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+    username: nuojing_only_read
+    password: lLze2N_%(CZ%
+    druid: # druid连接池配置,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)
+      # 连接池的配置信息
+      # 初始化大小,最小,最大
+      connection-init-sql: set names utf8mb4
 
-        initial-size: 5
-        min-idle: 5
-        maxActive: 20
-        # 配置获取连接等待超时的时间
-        maxWait: 60000
-        # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-        timeBetweenEvictionRunsMillis: 60000
-        # 配置一个连接在池中最小生存的时间,单位是毫秒
-        minEvictableIdleTimeMillis: 300000
-        validationQuery: SELECT 1 FROM DUAL
-        testWhileIdle: true
-        testOnBorrow: false
-        testOnReturn: false
-        # 打开PSCache,并且指定每个连接上PSCache的大小
-        poolPreparedStatements: true
-        maxPoolPreparedStatementPerConnectionSize: 20
-        # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
-        filters: stat,slf4j
-        # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
-        connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
-      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
-          username: data
-          password: hr@2025..
-          driver-class-name: com.mysql.jdbc.Driver
-        selectdb:
-          url: jdbc:mysql://selectdb-cn-vym4at1qw04.selectdbfe.rds.aliyuncs.com:9030/media_api?characterEncoding=UTF-8&useUnicode=true&useSSL=false&sessionVariables=enable_unique_key_partial_update=true,enable_insert_strict=false
-          username: data
-          password: hr@2025..
-          driver-class-name: com.mysql.jdbc.Driver
-        sd_group_commit:
-          ## 注意此selectdb数据源不支持列更新,insert into 对于未指定列会被置为null,类似tidb replace into
-          url: jdbc:mysql://selectdb-cn-vym4at1qw04.selectdbfe.rds.aliyuncs.com:9030/media_api?characterEncoding=UTF-8&useUnicode=true&useSSL=false&useServerPrepStmts=true&useLocalSessionState=true&rewriteBatchedStatements=true&cachePrepStmts=true&prepStmtCacheSqlLimit=99999&prepStmtCacheSize=500&sessionVariables=group_commit=async_mode,enable_nereids_planner=false
-          username: data
-          password: hr@2025..
-          driver-class-name: com.mysql.jdbc.Driver
+      initial-size: 5
+      min-idle: 5
+      maxActive: 20
+      # 配置获取连接等待超时的时间
+      maxWait: 60000
+      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+      timeBetweenEvictionRunsMillis: 60000
+      # 配置一个连接在池中最小生存的时间,单位是毫秒
+      minEvictableIdleTimeMillis: 300000
+      validationQuery: SELECT 1 FROM DUAL
+      testWhileIdle: true
+      testOnBorrow: false
+      testOnReturn: false
+      # 打开PSCache,并且指定每个连接上PSCache的大小
+      poolPreparedStatements: true
+      maxPoolPreparedStatementPerConnectionSize: 20
+      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+      filters: stat,slf4j
+      # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
+      connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
 
   # redis 配置
   redis:
     # 地址
-    host: r-2ze77hczbrb3boqn16pd.redis.rds.aliyuncs.com
+    host: r-bp1ebimykbmzt1r6nnpd.redis.rds.aliyuncs.com
     # 端口,默认为6379
     port: 6379
     # 数据库索引
-    database: 0
+    database: 20
+    # 用户名(阿里云Redis默认账号为实例ID;ACL自定义账号格式为 实例id:账号名)
+    username: nuojing_only_read
     # 密码
-    password: Hrdrama0422
+    password: lLze2N_%(CZ%
     # 连接超时时间
     timeout: 1000s
     lettuce:
@@ -123,27 +101,6 @@ spring:
         # #连接池最大阻塞等待时间(使用负值表示没有限制)
         max-wait: -1ms
 
-  redis2:
-    database: 0
-    host: r-2zelacjrljt205nsb1pd.redis.rds.aliyuncs.com
-    password: Huanrui@2025!@
-    pool:
-      max-active: 10
-      max-idle: 10
-      max-wait: 80
-      min-idle: 8
-    port: 6379
-
-  doris:
-    fe-host: http://selectdb-cn-vym4at1qw04.selectdbfe.rds.aliyuncs.com:8080
-    user: data
-    password: hr@2025..
-    label-prefix: spring-adq
-    sink-threads: 3
-    sink-batch-rows: 50000
-    sink-batch-mb: 20
-    sink-batch-seconds: 20
-
 #mybatis plus 设置
 mybatis-plus:
   mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml,classpath*:cn/com/ctop/**/xml/*Mapper.xml
@@ -170,13 +127,13 @@ xxl:
     executor:
       appname: module-job-adq
       #      appname: module-job-test
-      port: 9007
+      port: 9004
       ip:
-      includeIpPrefix: 172
+      includeIpPrefix: 172,192
       logpath: /data/webapp/hr_job-adq/log
       logretentiondays: 3
     admin:
-      addresses: http://172.16.0.108:9003/xxl-job-admin
+      addresses: http://192.168.10.211:9003/xxl-job-admin
 
 
 

+ 14 - 12
xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java

@@ -24,8 +24,7 @@ public class XxlJobFileAppender {
 	 * 	---/gluesource/10_1514171108000.js
 	 * 	---/gluesource/10_1514171108000.js
 	 * 	---/2017-12-25/
-	 * 	---/2017-12-25/639.log
-	 * 	---/2017-12-25/821.log
+	 * 	---/2017-12-25/2017-12-25.log
 	 *
 	 */
 	private static String logBasePath = "/data/applogs/xxl-job/jobhandler";
@@ -37,8 +36,9 @@ public class XxlJobFileAppender {
 		}
 		// mk base dir
 		File logPathDir = new File(logBasePath);
-		if (!logPathDir.exists()) {
-			logPathDir.mkdirs();
+		if (!logPathDir.exists() && !logPathDir.mkdirs()) {
+			// log dir unavailable, job log file will be disabled and fallback to application logger
+			logger.warn("xxl-job log base path create fail, job log file disabled. logBasePath: {}", logBasePath);
 		}
 		logBasePath = logPathDir.getPath();
 
@@ -57,25 +57,26 @@ public class XxlJobFileAppender {
 	}
 
 	/**
-	 * log filename, like "logPath/yyyy-MM-dd/9999.log"
+	 * log filename, like "logPath/yyyy-MM-dd/yyyy-MM-dd.log" (one log file per day)
 	 *
 	 * @param triggerDate
 	 * @param logId
-	 * @return
+	 * @return log file name, or null if log dir unavailable (job log file disabled)
 	 */
 	public static String makeLogFileName(Date triggerDate, long logId) {
 
 		// filePath/yyyy-MM-dd
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");	// avoid concurrent problem, can not be static
 		File logFilePath = new File(getLogPath(), sdf.format(triggerDate));
-		if (!logFilePath.exists()) {
-			logFilePath.mkdir();
+		if (!logFilePath.exists() && !logFilePath.mkdirs()) {
+			// log dir unavailable, disable job log file (logDetail will fallback to application logger)
+			return null;
 		}
 
-		// filePath/yyyy-MM-dd/9999.log
+		// filePath/yyyy-MM-dd/yyyy-MM-dd.log, one log file per day (logId kept for admin log query)
 		String logFileName = logFilePath.getPath()
 				.concat(File.separator)
-				.concat(String.valueOf(logId))
+				.concat(sdf.format(triggerDate))
 				.concat(".log");
 		return logFileName;
 	}
@@ -86,7 +87,7 @@ public class XxlJobFileAppender {
 	 * @param logFileName
 	 * @param appendLog
 	 */
-	public static void appendLog(String logFileName, String appendLog) {
+	public static synchronized void appendLog(String logFileName, String appendLog) {
 
 		// log file
 		if (logFileName==null || logFileName.trim().length()==0) {
@@ -139,7 +140,8 @@ public class XxlJobFileAppender {
 
 		// valid log file
 		if (logFileName==null || logFileName.trim().length()==0) {
-            return new LogResult(fromLineNum, 0, "readLog fail, logFile not found", true);
+			// job log file disabled (e.g. log dir unavailable), return empty log
+			return new LogResult(fromLineNum, fromLineNum, "", true);
 		}
 		File logFile = new File(logFileName);