فهرست منبع

selectdb双写

huangpingkang 1 سال پیش
والد
کامیت
c2fcb4ece6
23فایلهای تغییر یافته به همراه814 افزوده شده و 19 حذف شده
  1. 2 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/AdminAdvertiserListMapper.java
  2. 3 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/ByteDanceFlowDetailsReportMapper.java
  3. 6 2
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAccountReportMapper.java
  4. 20 4
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCdpProjectMapper.java
  5. 2 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceMiniAppMapper.java
  6. 6 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceProductReportMapper.java
  7. 6 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedancePromoterReportMapper.java
  8. 11 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceXingTuMapper.java
  9. 1 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/CPSReportMapper.java
  10. 1 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/ReportsAdPushMapper.java
  11. 38 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/ByteDanceFlowDetailsReportMapper.xml
  12. 125 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAccountReportMapper.xml
  13. 194 7
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCdpProjectListMapper.xml
  14. 47 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceProductReportMapper.xml
  15. 137 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedancePromoterReportMapper.xml
  16. 87 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceXingTuMapper.xml
  17. 5 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/ByteDanceFlowDetailsReportServiceImpl.java
  18. 20 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceAccountReportServiceImpl.java
  19. 46 6
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceCdpProjectServiceImpl.java
  20. 10 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceProductReportServiceImpl.java
  21. 20 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedancePromoterReportServiceImpl.java
  22. 20 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceXingTuServiceImpl.java
  23. 7 0
      job-bytedance/src/main/resources/application.yml

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

@@ -2,6 +2,7 @@ package cn.com.ctop.job.bytedance.data.mapper;
 
 import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserList;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -13,5 +14,6 @@ public interface AdminAdvertiserListMapper {
 
     void batchUpdateAdvertiserName(@Param("infos") List<JSONObject> infos);
 
+    //TODO 修改为从selectdb读取 @DS("selectdb")
     List<JSONObject> getAdvertiserInfosByAdminIds();
 }

+ 3 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/ByteDanceFlowDetailsReportMapper.java

@@ -2,6 +2,7 @@ package cn.com.ctop.job.bytedance.data.mapper;
 
 import cn.com.ctop.job.bytedance.data.entity.AdvertiserAccount;
 import cn.com.ctop.job.bytedance.data.entity.ByteDanceFlowDetailsReportDaily;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -18,4 +19,6 @@ public interface ByteDanceFlowDetailsReportMapper {
     List<AdvertiserAccount> getAdAccount();
 
     void replaceDanceFlowDetailsReportDailies(@Param("list") List<ByteDanceFlowDetailsReportDaily> dailyList);
+    @DS("selectdb")
+    void replaceDanceFlowDetailsReportDailiesSD(@Param("list") List<ByteDanceFlowDetailsReportDaily> dailyList);
 }

+ 6 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAccountReportMapper.java

@@ -3,16 +3,20 @@ package cn.com.ctop.job.bytedance.data.mapper;
 import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportDaily;
 import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportHour;
 import cn.com.ctop.job.bytedance.data.entity.BytedanceErrorLog;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 public interface BytedanceAccountReportMapper {
     void replaceAccountReportHour(@Param("list") List<BytedanceAdvertiserReportHour> hours);
-
-    void deleteInfoByErrorId(@Param("errorId") Long errorId);
+    @DS("selectdb")
+    void replaceAccountReportHourSD(@Param("list") List<BytedanceAdvertiserReportHour> hours);
 
     void replaceAccountReportDaily(@Param("list") List<BytedanceAdvertiserReportDaily> dailyList);
+    @DS("selectdb")
+    void replaceAccountReportDailySD(@Param("list") List<BytedanceAdvertiserReportDaily> dailyList);
 
     void replaceErrorInfo(BytedanceErrorLog errorInfo);
+    void deleteInfoByErrorId(@Param("errorId") Long errorId);
 }

+ 20 - 4
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCdpProjectMapper.java

@@ -2,6 +2,7 @@ package cn.com.ctop.job.bytedance.data.mapper;
 
 import cn.com.ctop.job.bytedance.data.entity.BytedanceCdpProject;
 import com.alibaba.fastjson.JSONArray;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -15,36 +16,51 @@ import java.util.List;
 public interface BytedanceCdpProjectMapper {
 
     int replaceBytedanceCdpProjectList(@Param("projectList") List<BytedanceCdpProject> projectList);
+    @DS("selectdb")
+    int replaceBytedanceCdpProjectListSD(@Param("projectList") List<BytedanceCdpProject> projectList);
 
     int replaceBytedancePromotionList(@Param("list") JSONArray array);
+    @DS("selectdb")
+    int replaceBytedancePromotionListSD(@Param("list") JSONArray array);
 
     void insertErrorAdvertiserId(@Param("advertiserId") Long advertiserId, @Param("type") String type);
 
+    int replaceBytedanceByteAppInfo(@Param("list") JSONArray list, @Param("advertiserId") Long advertiserId);
+
+    int replaceBytedanceByteAppLinkInfo(@Param("list") JSONArray list);
+    @DS("selectdb")
+    int replaceBytedanceByteAppLinkInfoSD(@Param("list") JSONArray list);
+
     List<Long> queryAllAdverIdList(@Param("mediaType") String mediaType);
 
     List<Long> queryErrApps(@Param("type") String type);
 
     List<Long> queryTTErrApps();
 
+    //TODO 修改为从selectdb读取 @DS("selectdb")
     List<Long> queryPageAdvertiserIds();
 
     boolean delErrApps(@Param("type") String type);
 
     boolean delTTErrApps();
 
+    //TODO 修改为从selectdb读取 @DS("selectdb")
     List<Long> queryAdvertiserIds(@Param("db") String db, @Param("date") String date);
 
-    int replaceBytedanceByteAppInfo(@Param("list") JSONArray list, @Param("advertiserId") Long advertiserId);
-
-    int replaceBytedanceByteAppLinkInfo(@Param("list") JSONArray list);
-
     int replaceBytedanceWxAppInfo(@Param("list") JSONArray list, @Param("advertiserId") Long advertiserId);
+    @DS("selectdb")
+    int replaceBytedanceWxAppInfoSD(@Param("list") JSONArray list, @Param("advertiserId") Long advertiserId);
 
+    //TODO 修改为从selectdb读取 @DS("selectdb")
     List<Long> queryMediaAdverIds(@Param("date") String date, @Param("mediaType") String mediaType);
 
     int replaceAdqDynamicCreateives(@Param("list") JSONArray list, @Param("advertiserId") Long advertiserId);
+    @DS("selectdb")
+    int replaceAdqDynamicCreateivesSD(@Param("list") JSONArray list, @Param("advertiserId") Long advertiserId);
 
     int replaceAdqDynamicPages(@Param("list") JSONArray list, @Param("advertiserId") Long advertiserId);
+    @DS("selectdb")
+    int replaceAdqDynamicPagesSD(@Param("list") JSONArray list, @Param("advertiserId") Long advertiserId);
 
     List<Long> queryADQAdverIds(String date);
 

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

@@ -4,11 +4,13 @@ import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportDaily;
 import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportHour;
 import cn.com.ctop.job.bytedance.data.entity.BytedanceErrorLog;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 public interface BytedanceMiniAppMapper {
+    //TODO 修改为从selectdb读取 @DS("selectdb")
     List<String> getEcpmKeys(@Param("startDate") Integer startDate,
                              @Param("endDate") Integer endDate,
                              @Param("startTime") String startTime,

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

@@ -3,14 +3,20 @@ package cn.com.ctop.job.bytedance.data.mapper;
 
 import cn.com.ctop.job.bytedance.data.entity.BytedanceProductReportDaily;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 public interface BytedanceProductReportMapper {
+    //TODO 修改为从selectdb读取 @DS("selectdb")
     List<JSONObject> queryCostAccount(@Param("advertiserId") Long advertiserId, @Param("startDate") String startDate, @Param("endDate") String endDate);
 
     void replaceProductReportDailies(List<BytedanceProductReportDaily> reports);
+    @DS("selectdb")
+    void replaceProductReportDailiesSD(List<BytedanceProductReportDaily> reports);
 
     void deleteProductReportDailies(@Param("advertiserId") Long advertiserId,@Param("startDate") Integer startDate,@Param("endDate")  Integer endDate);
+    @DS("selectdb")
+    void deleteProductReportDailiesSD(@Param("advertiserId") Long advertiserId,@Param("startDate") Integer startDate,@Param("endDate")  Integer endDate);
 }

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

@@ -5,6 +5,7 @@ import cn.com.ctop.job.bytedance.data.entity.BytedanceErrorLog;
 import cn.com.ctop.job.bytedance.data.entity.BytedancePromoterReportDaily;
 import cn.com.ctop.job.bytedance.data.entity.BytedancePromoterReportHour;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -13,13 +14,18 @@ public interface BytedancePromoterReportMapper {
     List<JSONObject> getAccountList();
 
     void replacePromoterReportHour(@Param("list") List<BytedancePromoterReportHour> hours);
+    @DS("selectdb")
+    void replacePromoterReportHourSD(@Param("list") List<BytedancePromoterReportHour> hours);
 
     void deleteInfoByErrorId(@Param("errorId") Long errorId);
 
     void replacePromoterReportDailies(@Param("list") List<BytedancePromoterReportDaily> promoterReportDailies);
+    @DS("selectdb")
+    void replacePromoterReportDailiesSD(@Param("list") List<BytedancePromoterReportDaily> promoterReportDailies);
 
     void replaceErrorInfo(BytedanceErrorLog errorInfo);
 
+    //TODO 修改为从selectdb读取 @DS("selectdb")
     List<JSONObject> getListBydate(@Param("date") Integer date);
 
     List<JSONObject> getAllList();

+ 11 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceXingTuMapper.java

@@ -5,6 +5,7 @@ import cn.com.ctop.job.bytedance.data.entity.BytedanceXingTuReport;
 import cn.com.ctop.job.bytedance.data.entity.BytedanceXingTuReportDaily;
 import cn.com.ctop.job.bytedance.data.entity.BytedanceXingTuTask;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -12,17 +13,27 @@ import java.util.List;
 public interface BytedanceXingTuMapper {
     List<JSONObject> queryXingTuAccount(@Param("advertiserId") Long advertiserId);
 
+    //TODO 修改为从selectdb读取 @DS("selectdb")
     List<JSONObject> queryXingTuActiveTask(@Param("advertiserId") Long advertiserId);
 
+    //TODO 修改为从selectdb读取 @DS("selectdb")
     List<JSONObject> queryXingTuReportTask(@Param("advertiserId") Long advertiserId);
 
     List<JSONObject> queryXingTuRetryJob();
 
     void insertTaskId(List<BytedanceXingTuTask> tasks);
+    @DS("selectdb")
+    void insertTaskIdSD(List<BytedanceXingTuTask> tasks);
 
     void updateTaskInfo(BytedanceXingTuTask task);
+    @DS("selectdb")
+    void updateTaskInfoSD(BytedanceXingTuTask task);
 
     void insertReport(List<BytedanceXingTuReport> reports);
+    @DS("selectdb")
+    void insertReportSD(List<BytedanceXingTuReport> reports);
 
     void insertReportDaily(List<BytedanceXingTuReportDaily> dailyReports);
+    @DS("selectdb")
+    void insertReportDailySD(List<BytedanceXingTuReportDaily> dailyReports);
 }

+ 1 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/CPSReportMapper.java

@@ -6,5 +6,6 @@ public interface CPSReportMapper {
 
     boolean cleanCPSPayDailyReports(@Param("nowDate") Integer nowDate);
 
+    //TODO 修改为从selectdb读取
     boolean cleanCPSIaaDailyReports(@Param("nowDate") Integer nowDate);
 }

+ 1 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/ReportsAdPushMapper.java

@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 import java.util.Map;
 
+//TODO 修改为从selectdb读取
 public interface ReportsAdPushMapper {
 
     List<JSONObject> selectUserList();

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

@@ -49,5 +49,43 @@
             )
         </foreach>
     </insert>
+
+    <insert id="replaceDanceFlowDetailsReportDailiesSD">
+        insert into bytedance_flow_details_report_daily (
+        advertiser_id,
+        stat_time_day,
+        balance,
+        grant_balance,
+        non_grant_balance,
+        cash_cost,
+        cost,
+        frozen,
+        income,
+        reward_cost,
+        shared_wallet_cost,
+        company_wallet_cost,
+        transfer_in,
+        transfer_out
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.advertiserId},
+            #{item.statTimeDay},
+            #{item.balance},
+            #{item.grantBalance},
+            #{item.nonGrantBalance},
+            #{item.cashCost},
+            #{item.cost},
+            #{item.frozen},
+            #{item.income},
+            #{item.rewardCost},
+            #{item.sharedWalletCost},
+            #{item.companyWalletCost},
+            #{item.transferIn},
+            #{item.transferOut}
+            )
+        </foreach>
+    </insert>
 </mapper>
 

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

@@ -63,6 +63,69 @@
             )
         </foreach>
     </insert>
+
+    <insert id="replaceAccountReportHourSD">
+        insert into media_api.bytedance_advertiser_report_hour (
+        advertiser_id,
+        stat_time_day,
+        `hour`,
+        stat_pay_amount,
+        stat_cost,
+        `active`,
+        event_register,
+        download_finish_cnt,
+        attribution_next_day_open_cnt,
+        game_addiction,
+        attribution_game_in_app_ltv_1day,
+        attribution_deep_convert_cnt,
+        game_pay_count,
+        convert_cnt,
+        show_cnt,
+        active_pay,
+        click_cnt,
+        click_start_cnt,
+        attribution_convert_cnt,
+        deep_convert_cnt,
+        valid_play,
+        attribution_billing_game_in_app_ltv_1day,
+        attribution_micro_game_0d_ltv,
+        attribution_micro_game_3d_ltv,
+        attribution_micro_game_7d_ltv,
+        stat_micro_game_0d_amount
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.advertiserId},
+            #{item.statTimeDay},
+            #{item.hour},
+            #{item.statPayAmount},
+            #{item.statCost},
+            #{item.active},
+            #{item.eventRegister},
+            #{item.downloadFinishCnt},
+            #{item.attributionNextDayOpenCnt},
+            #{item.gameAddiction},
+            #{item.attributionGameInAppLtv1day},
+            #{item.attributionDeepConvertCnt},
+            #{item.gamePayCount},
+            #{item.convertCnt},
+            #{item.showCnt},
+            #{item.activePay},
+            #{item.clickCnt},
+            #{item.clickStartCnt},
+            #{item.attributionConvertCnt},
+            #{item.deepConvertCnt},
+            #{item.validPlay},
+            #{item.attributionBillingGameInAppLtv1day},
+            #{item.attributionMicroGame0dLtv},
+            #{item.attributionMicroGame3dLtv},
+            #{item.attributionMicroGame7dLtv},
+            #{item.statMicroGame0dAmount}
+            )
+        </foreach>
+    </insert>
+
     <insert id="replaceAccountReportDaily">
         replace into media_api.bytedance_advertiser_report_daily (
         advertiser_id,
@@ -123,6 +186,68 @@
         </foreach>
 
     </insert>
+
+    <insert id="replaceAccountReportDailySD">
+        insert into media_api.bytedance_advertiser_report_daily (
+        advertiser_id,
+        stat_time_day,
+        stat_pay_amount,
+        stat_cost,
+        `active`,
+        event_register,
+        download_finish_cnt,
+        attribution_next_day_open_cnt,
+        game_addiction,
+        attribution_game_in_app_ltv_1day,
+        attribution_deep_convert_cnt,
+        game_pay_count,
+        convert_cnt,
+        show_cnt,
+        active_pay,
+        click_cnt,
+        click_start_cnt,
+        attribution_convert_cnt,
+        deep_convert_cnt,
+        valid_play,
+        attribution_billing_game_in_app_ltv_1day,
+        attribution_micro_game_0d_ltv,
+        attribution_micro_game_3d_ltv,
+        attribution_micro_game_7d_ltv,
+        stat_micro_game_0d_amount
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.advertiserId},
+            #{item.statTimeDay},
+            #{item.statPayAmount},
+            #{item.statCost},
+            #{item.active},
+            #{item.eventRegister},
+            #{item.downloadFinishCnt},
+            #{item.attributionNextDayOpenCnt},
+            #{item.gameAddiction},
+            #{item.attributionGameInAppLtv1day},
+            #{item.attributionDeepConvertCnt},
+            #{item.gamePayCount},
+            #{item.convertCnt},
+            #{item.showCnt},
+            #{item.activePay},
+            #{item.clickCnt},
+            #{item.clickStartCnt},
+            #{item.attributionConvertCnt},
+            #{item.deepConvertCnt},
+            #{item.validPlay},
+            #{item.attributionBillingGameInAppLtv1day},
+            #{item.attributionMicroGame0dLtv},
+            #{item.attributionMicroGame3dLtv},
+            #{item.attributionMicroGame7dLtv},
+            #{item.statMicroGame0dAmount}
+            )
+        </foreach>
+
+    </insert>
+
     <insert id="replaceErrorInfo" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceErrorLog">
         replace into media_api.bytedance_error_log
         <trim prefix="(" suffix=")" suffixOverrides=",">

+ 194 - 7
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCdpProjectListMapper.xml

@@ -66,7 +66,67 @@
         </foreach>
     </insert>
 
-
+    <insert id="replaceBytedanceCdpProjectListSD">
+        insert into media_api.bytedance_cdp_project_list (
+        advertiser_id,
+        project_id,
+        project_name,
+        delivery_type,
+        landing_type,
+        app_promotion_type,
+        marketing_goal,
+        ad_type,
+        project_create_time,
+        project_modify_time,
+        pricing,
+        package_name,
+        app_name,
+        inventory_type,
+        product_setting,
+        product_platform_id,
+        product_id,
+        unique_product_id,
+        asset_id,
+        delivery_product,
+        delivery_medium,
+        multi_delivery_medium,
+        download_url,
+        micro_promotion_type,
+        quick_app_id,
+        micro_app_instance_id
+        )
+        values
+        <foreach collection="projectList" item="item" separator=",">
+            (
+            #{item.advertiserId},
+            #{item.projectId},
+            #{item.projectName},
+            #{item.deliveryType},
+            #{item.landingType},
+            #{item.appPromotionType},
+            #{item.marketingGoal},
+            #{item.adType},
+            #{item.projectCreateTime},
+            #{item.projectModifyTime},
+            #{item.pricing},
+            #{item.packageName},
+            #{item.appName},
+            #{item.inventoryType},
+            #{item.productSetting},
+            #{item.productPlatformId},
+            #{item.productId},
+            #{item.uniqueProductId},
+            #{item.assetId},
+            #{item.deliveryProduct},
+            #{item.deliveryMedium},
+            #{item.multiDeliveryMedium},
+            #{item.downloadUrl},
+            #{item.microPromotionType},
+            #{item.quickAppId},
+            #{item.microAppInstanceId}
+            )
+        </foreach>
+    </insert>
 
     <insert id="replaceBytedancePromotionList">
         replace into media_api.bytedance_promotion_list (
@@ -100,6 +160,47 @@
         </foreach>
     </insert>
 
+    <insert id="replaceBytedancePromotionListSD">
+        insert into media_api.bytedance_promotion_list (
+        advertiser_id,
+        project_id,
+        promotion_id,
+        promotion_name,
+        app_id,
+        params,
+        url,
+        promotion_create_time,
+        promotion_modify_time,
+        playlet_series_url_list,
+        status_first
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.advertiser_id},
+            #{item.project_id},
+            #{item.promotion_id},
+            #{item.promotion_name},
+            #{item.app_id},
+            #{item.params},
+            #{item.url},
+            #{item.promotion_create_time},
+            #{item.promotion_modify_time},
+            #{item.playlet_series_url_list},
+            #{item.status_first}
+            )
+        </foreach>
+    </insert>
+
+    <insert id="insertErrorAdvertiserId">
+        replace
+        into media_api.error_advertiser (advertiser_id,`type`)
+        values(
+        #{advertiserId},
+        #{type}
+        )
+    </insert>
+
     <insert id="replaceBytedanceByteAppInfo">
         replace into media_api.bytedance_byte_app_info (
         advertiser_id,
@@ -150,6 +251,37 @@
         </foreach>
     </insert>
 
+    <insert id="replaceBytedanceByteAppLinkInfoSD">
+        insert into media_api.bytedance_tools_asset_link_list (
+        advertiser_id,
+        link_id,
+        instance_id,
+        app_id,
+        link,
+        link_remark,
+        start_page,
+        start_param,
+        create_time,
+        modify_time
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.advertiser_id},
+            #{item.link_id},
+            #{item.instance_id},
+            #{item.app_id},
+            #{item.link},
+            #{item.link_remark},
+            #{item.start_page},
+            #{item.start_param},
+            #{item.create_time},
+            #{item.modify_time}
+
+            )
+        </foreach>
+    </insert>
+
 
     <insert id="replaceBytedanceWxAppInfo">
         replace into media_api.bytedance_wx_app_info (
@@ -171,13 +303,24 @@
         </foreach>
     </insert>
 
-    <insert id="insertErrorAdvertiserId">
-        replace
-        into media_api.error_advertiser (advertiser_id,`type`)
-        values(
-        #{advertiserId},
-        #{type}
+    <insert id="replaceBytedanceWxAppInfoSD">
+        insert into media_api.bytedance_wx_app_info (
+        advertiser_id,
+        app_name,
+        user_nme,
+        instance_id,
+        `path`
         )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{advertiserId},
+            #{item.name},
+            #{item.user_name},
+            #{item.instance_id},
+            #{item.path}
+            )
+        </foreach>
     </insert>
 
     <insert id="insertTTErrorAdvertiserId">
@@ -267,6 +410,30 @@
         </foreach>
     </insert>
 
+    <insert id="replaceAdqDynamicCreateivesSD">
+        insert into media_api.adq_dynamic_createive_list(
+        advertiser_id,
+        adgroup_id,
+        dynamic_creative_id,
+        mini_program_id,
+        page_type,
+        page_id,
+        mini_program_path
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{advertiserId},
+            #{item.adgroup_id},
+            #{item.dynamic_creative_id},
+            #{item.mini_program_id},
+            #{item.page_type},
+            #{item.page_id},
+            #{item.mini_program_path}
+            )
+        </foreach>
+    </insert>
+
     <insert id="replaceAdqDynamicPages">
         replace into media_api.adq_dynamic_page_list(
         advertiser_id,
@@ -287,6 +454,26 @@
         </foreach>
     </insert>
 
+    <insert id="replaceAdqDynamicPagesSD">
+        insert into media_api.adq_dynamic_page_list(
+        advertiser_id,
+        page_id,
+        page_type,
+        mini_program_id,
+        mini_program_path
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{advertiserId},
+            #{item.page_id},
+            #{item.page_type},
+            #{item.mini_program_id},
+            #{item.mini_program_path}
+            )
+        </foreach>
+    </insert>
+
     <select id="queryADQAdverIds" resultType="Long">
         SELECT DISTINCT advertiser_id
         FROM deepthink.adq_advertiser_list

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

@@ -57,9 +57,56 @@
         </foreach>
     </insert>
 
+    <insert id="replaceProductReportDailiesSD">
+        insert into media_api.bytedance_product_report_daily (
+        advertiser_id,
+        stat_time_day,
+        product_id,
+        cdp_project_id,
+        cdp_promotion_id,
+        ad_platform_product_name,
+        product_platform_id,
+        ad_platform_product_platform_name,
+        ad_platform_product_first_category_name,
+        ad_platform_product_sub_category_name,
+        ad_platform_product_third_category_name,
+        stat_cost,
+        show_cnt,
+        click_cnt,
+        convert_cnt,
+        deep_convert_cnt
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.advertiserId},
+            #{item.statTimeDay},
+            #{item.productId},
+            #{item.cdpProjectId},
+            #{item.cdpPromotionId},
+            #{item.adPlatformProductName},
+            #{item.productPlatformId},
+            #{item.adPlatformProductPlatformName},
+            #{item.adPlatformProductFirstCategoryName},
+            #{item.adPlatformProductSubCategoryName},
+            #{item.adPlatformProductThirdCategoryName},
+            #{item.statCost},
+            #{item.showCnt},
+            #{item.clickCnt},
+            #{item.convertCnt},
+            #{item.deepConvertCnt}
+            )
+        </foreach>
+    </insert>
+
     <delete id="deleteProductReportDailies">
         DELETE FROM media_api.bytedance_product_report_daily
         WHERE advertiser_id = ${advertiserId} and stat_time_day >= ${startDate} and stat_time_day &lt;= ${endDate}
     </delete>
 
+    <delete id="deleteProductReportDailiesSD">
+        DELETE FROM media_api.bytedance_product_report_daily
+        WHERE advertiser_id = ${advertiserId} and stat_time_day >= ${startDate} and stat_time_day &lt;= ${endDate}
+    </delete>
+
 </mapper>

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

@@ -103,6 +103,75 @@
         </foreach>
     </insert>
 
+    <insert id="replacePromoterReportHourSD">
+        insert into bytedance_promoter_report_hour (
+        advertiser_id,
+        stat_time_day,
+        `hour`,
+        cdp_project_id,
+        cdp_project_name,
+        cdp_promotion_id ,
+        cdp_promotion_name,
+        stat_pay_amount,
+        stat_cost,
+        `active`,
+        event_register,
+        download_finish_cnt,
+        attribution_next_day_open_cnt,
+        game_addiction,
+        attribution_game_in_app_ltv_1day,
+        attribution_deep_convert_cnt,
+        game_pay_count,
+        convert_cnt,
+        show_cnt,
+        active_pay,
+        click_cnt,
+        click_start_cnt,
+        attribution_convert_cnt,
+        deep_convert_cnt,
+        valid_play,
+        attribution_billing_game_in_app_ltv_1day,
+        attribution_micro_game_0d_ltv,
+        attribution_micro_game_3d_ltv,
+        attribution_micro_game_7d_ltv,
+        stat_micro_game_0d_amount
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.advertiserId},
+            #{item.statTimeDay},
+            #{item.hour},
+            #{item.cdpProjectId},
+            #{item.cdpProjectName},
+            #{item.cdpPromotionId},
+            #{item.cdpPromotionName},
+            #{item.statPayAmount},
+            #{item.statCost},
+            #{item.active},
+            #{item.eventRegister},
+            #{item.downloadFinishCnt},
+            #{item.attributionNextDayOpenCnt},
+            #{item.gameAddiction},
+            #{item.attributionGameInAppLtv1day},
+            #{item.attributionDeepConvertCnt},
+            #{item.gamePayCount},
+            #{item.convertCnt},
+            #{item.showCnt},
+            #{item.activePay},
+            #{item.clickCnt},
+            #{item.clickStartCnt},
+            #{item.attributionConvertCnt},
+            #{item.deepConvertCnt},
+            #{item.validPlay},
+            #{item.attributionBillingGameInAppLtv1day},
+            #{item.attributionMicroGame0dLtv},
+            #{item.attributionMicroGame3dLtv},
+            #{item.attributionMicroGame7dLtv},
+            #{item.statMicroGame0dAmount}
+            )
+        </foreach>
+    </insert>
 
     <insert id="replacePromoterReportDailies">
         replace into bytedance_promoter_report_daily (
@@ -171,6 +240,74 @@
             )
         </foreach>
     </insert>
+
+    <insert id="replacePromoterReportDailiesSD">
+        insert into bytedance_promoter_report_daily (
+        advertiser_id,
+        stat_time_day,
+        cdp_project_id,
+        cdp_project_name,
+        cdp_promotion_id ,
+        cdp_promotion_name,
+        stat_pay_amount,
+        stat_cost,
+        `active`,
+        event_register,
+        download_finish_cnt,
+        attribution_next_day_open_cnt,
+        game_addiction,
+        attribution_game_in_app_ltv_1day,
+        attribution_deep_convert_cnt,
+        game_pay_count,
+        convert_cnt,
+        show_cnt,
+        active_pay,
+        click_cnt,
+        click_start_cnt,
+        attribution_convert_cnt,
+        deep_convert_cnt,
+        valid_play,
+        attribution_billing_game_in_app_ltv_1day,
+        attribution_micro_game_0d_ltv,
+        attribution_micro_game_3d_ltv,
+        attribution_micro_game_7d_ltv,
+        stat_micro_game_0d_amount
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.advertiserId},
+            #{item.statTimeDay},
+            #{item.cdpProjectId},
+            #{item.cdpProjectName},
+            #{item.cdpPromotionId},
+            #{item.cdpPromotionName},
+            #{item.statPayAmount},
+            #{item.statCost},
+            #{item.active},
+            #{item.eventRegister},
+            #{item.downloadFinishCnt},
+            #{item.attributionNextDayOpenCnt},
+            #{item.gameAddiction},
+            #{item.attributionGameInAppLtv1day},
+            #{item.attributionDeepConvertCnt},
+            #{item.gamePayCount},
+            #{item.convertCnt},
+            #{item.showCnt},
+            #{item.activePay},
+            #{item.clickCnt},
+            #{item.clickStartCnt},
+            #{item.attributionConvertCnt},
+            #{item.deepConvertCnt},
+            #{item.validPlay},
+            #{item.attributionBillingGameInAppLtv1day},
+            #{item.attributionMicroGame0dLtv},
+            #{item.attributionMicroGame3dLtv},
+            #{item.attributionMicroGame7dLtv},
+            #{item.statMicroGame0dAmount}
+            )
+        </foreach>
+    </insert>
     <insert id="replaceErrorInfo" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceErrorLog">
         replace into bytedance_error_log
         <trim prefix="(" suffix=")" suffixOverrides=",">

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

@@ -9,6 +9,14 @@
         </foreach>
     </insert>
 
+    <insert id="insertTaskIdSD" parameterType="java.util.List">
+        INSERT INTO media_api.bytedance_xingtu_task_list (challenge_task_id,advertiser_id)
+        VALUES
+        <foreach collection="list" item="item" separator=",">
+            (#{item.challengeTaskId},#{item.advertiserId})
+        </foreach>
+    </insert>
+
     <insert id="insertReport"  parameterType="java.util.List">
         replace INTO media_api.bytedance_xingtu_task_report (
         challenge_task_id,advertiser_id,
@@ -40,6 +48,37 @@
         </foreach>
     </insert>
 
+    <insert id="insertReportSD"  parameterType="java.util.List">
+        insert INTO media_api.bytedance_xingtu_task_report (
+        challenge_task_id,advertiser_id,
+        android_activate_cnt, author_id, author_nickname, comment_cnt, component_click_cnt,
+        est_ad_cost_value, est_ad_cost_time, est_sales_value, est_sales_time,
+        iaa_cost_hour, iap_cost_hour, ios_activate_cnt, item_id,
+        like_cnt, link, play_value, play_time, play_vv, promote_cnt,
+        provider_id, release_time, relevance_audit_result, reward_amount, reward_level,
+        settle_ad_share_value, settle_ad_share_time, settle_cps_value, settle_cps_time,
+        share_cnt, title, uid, valid_like_cnt, valid_play_vv
+        )
+        VALUES
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.challengeTaskId}, #{item.advertiserId},
+            #{item.androidActivateCnt}, #{item.authorId}, #{item.authorNickname},
+            #{item.commentCnt}, #{item.componentClickCnt},
+            #{item.estAdCostValue}, #{item.estAdCostTime},
+            #{item.estSalesValue}, #{item.estSalesTime},
+            #{item.iaaCostHour}, #{item.iapCostHour}, #{item.iosActivateCnt}, #{item.itemId},
+            #{item.likeCnt}, #{item.link}, #{item.playValue}, #{item.playTime}, #{item.playVv},
+            #{item.promoteCnt}, #{item.providerId}, #{item.releaseTime}, #{item.relevanceAuditResult},
+            #{item.rewardAmount}, #{item.rewardLevel},
+            #{item.settleAdShareValue}, #{item.settleAdShareTime},
+            #{item.settleCpsValue}, #{item.settleCpsTime},
+            #{item.shareCnt}, #{item.title}, #{item.uid},
+            #{item.validLikeCnt}, #{item.validPlayVv}
+            )
+        </foreach>
+    </insert>
+
     <insert id="insertReportDaily" parameterType="java.util.List">
         replace INTO media_api.bytedance_xingtu_task_report_daily (
         challenge_task_id,advertiser_id,author_id,
@@ -55,6 +94,21 @@
         </foreach>
     </insert>
 
+    <insert id="insertReportDailySD" parameterType="java.util.List">
+        insert INTO media_api.bytedance_xingtu_task_report_daily (
+        challenge_task_id,advertiser_id,author_id,
+        item_id, p_date, est_sales, settle_cps, est_ad_cost, settle_ad_share
+        )
+        VALUES
+        <foreach collection="list" item="daily" separator=",">
+            (
+            #{daily.challengeTaskId}, #{daily.advertiserId}, #{daily.authorId},
+            #{daily.itemId}, #{daily.pDate}, #{daily.estSales},
+            #{daily.settleCps}, #{daily.estAdCost}, #{daily.settleAdShare}
+            )
+        </foreach>
+    </insert>
+
     <update id="updateTaskInfo" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceXingTuTask">
         UPDATE media_api.bytedance_xingtu_task_list
         <set>
@@ -88,6 +142,39 @@
         and advertiser_id = #{advertiserId}
     </update>
 
+    <update id="updateTaskInfoSD" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceXingTuTask">
+        UPDATE media_api.bytedance_xingtu_task_list
+        <set>
+            <if test="accountDivideDay != null">account_divide_day = #{accountDivideDay},</if>
+            <if test="anchorTitle != null">anchor_title = #{anchorTitle},</if>
+            <if test="authorList != null">author_list = #{authorList},</if>
+            <if test="authorScope != null">author_scope = #{authorScope},</if>
+            <if test="authorTaskName != null">author_task_name = #{authorTaskName},</if>
+            <if test="budget != null">budget = #{budget},</if>
+            <if test="commissionInfo != null">commission_info = #{commissionInfo},</if>
+            <if test="commissionRate != null">commission_rate = #{commissionRate},</if>
+            <if test="commissionType != null">commission_type = #{commissionType},</if>
+            <if test="demandDesc != null">demand_desc = #{demandDesc},</if>
+            <if test="endTime != null">end_time = #{endTime},</if>
+            <if test="maxUploadItemCnt != null">max_upload_item_cnt = #{maxUploadItemCnt},</if>
+            <if test="microAppId != null">micro_app_id = #{microAppId},</if>
+            <if test="omTaskStatus != null">om_task_status = #{omTaskStatus},</if>
+            <if test="omTaskTag != null">om_task_tag = #{omTaskTag},</if>
+            <if test="participateAuthorRange != null">participate_author_range = #{participateAuthorRange},</if>
+            <if test="providerScope != null">provider_scope = #{providerScope},</if>
+            <if test="sampleDelivery != null">sample_delivery = #{sampleDelivery},</if>
+            <if test="settlementInfo != null">settlement_info = #{settlementInfo},</if>
+            <if test="startPage != null">start_page = #{startPage},</if>
+            <if test="startTime != null">start_time = #{startTime},</if>
+            <if test="taskHeadImage != null">task_head_image = #{taskHeadImage},</if>
+            <if test="taskIcon != null">task_icon = #{taskIcon},</if>
+            <if test="demandName != null">demand_name = #{demandName},</if>
+            <if test="attachments != null">attachments = #{attachments},</if>
+        </set>
+        WHERE challenge_task_id = #{challengeTaskId}
+        and advertiser_id = #{advertiserId}
+    </update>
+
     <select id="queryXingTuAccount" resultType="com.alibaba.fastjson.JSONObject">
         select x.advertiser_id, access_token
         from deepthink.bytedance_xingtu_advertiser_list x

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

@@ -119,6 +119,11 @@ public class ByteDanceFlowDetailsReportServiceImpl implements IByteDanceFlowDeta
                     if (!Check.isNull(dailies)) {
                         log.info("账户id:{},流水日报请求结果返回成功", advertiserId);
                         byteDanceFlowDetailsReportMapper.replaceDanceFlowDetailsReportDailies(dailies);
+                        try {
+                            byteDanceFlowDetailsReportMapper.replaceDanceFlowDetailsReportDailiesSD(dailies);
+                        }catch (Exception e) {
+                            log.error("",e);
+                        }
                     }
                 }
 

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

@@ -78,6 +78,11 @@ public class BytedanceAccountReportServiceImpl implements IBytedanceAccountRepor
             }
             if (!Check.isNull(hours)) {
                 accountReportMapper.replaceAccountReportHour(hours);
+                try {
+                    accountReportMapper.replaceAccountReportHourSD(hours);
+                }catch (Exception e) {
+                    log.error("replaceAccountReportHourSD",e);
+                }
             }
             if (hours.size() >= 100) {
                 try {
@@ -148,6 +153,11 @@ public class BytedanceAccountReportServiceImpl implements IBytedanceAccountRepor
             }
             if (!Check.isNull(dailyList)) {
                 accountReportMapper.replaceAccountReportDaily(dailyList);
+                try {
+                    accountReportMapper.replaceAccountReportDailySD(dailyList);
+                }catch (Exception e) {
+                    log.error("replaceAccountReportDailySD",e);
+                }
             }
             if (dailyList.size() >= 100) {
                 try {
@@ -239,6 +249,11 @@ public class BytedanceAccountReportServiceImpl implements IBytedanceAccountRepor
             }
             if (!Check.isNull(hours)) {
                 accountReportMapper.replaceAccountReportHour(hours);
+                try {
+                    accountReportMapper.replaceAccountReportHourSD(hours);
+                }catch (Exception e) {
+                    log.error("replaceAccountReportHourSD",e);
+                }
             }
             if (hours.size() >= 100) {
                 try {
@@ -324,6 +339,11 @@ public class BytedanceAccountReportServiceImpl implements IBytedanceAccountRepor
             }
             if (!Check.isNull(dailyList)) {
                 accountReportMapper.replaceAccountReportDaily(dailyList);
+                try {
+                    accountReportMapper.replaceAccountReportDailySD(dailyList);
+                }catch (Exception e) {
+                    log.error("replaceAccountReportDailySD",e);
+                }
             }
             if (dailyList.size() >= 100) {
                 try {

+ 46 - 6
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceCdpProjectServiceImpl.java

@@ -116,9 +116,15 @@ public class BytedanceCdpProjectServiceImpl implements IBytedanceCdpProjectServi
                         checkPromotionInfo(array.getJSONObject(i), advertiserId);
                     }
 
-                    if (!Check.isNull(array))
+                    if (!Check.isNull(array)){
+                        try {
+                            bytedanceCdpProjectMapper.replaceBytedancePromotionListSD(array);
+                        }catch (Exception e){
+                            log.error("",e);
+                        }
                         if (bytedanceCdpProjectMapper.replaceBytedancePromotionList(array) > 0)
                             log.info("---账户({})广告更新成功", advertiserId);
+                    }
                 } else {
                     //40100请求超频
                     if (40100 == code && count <= 5) {
@@ -197,9 +203,15 @@ public class BytedanceCdpProjectServiceImpl implements IBytedanceCdpProjectServi
                         BytedanceCdpProject advertiserToolsSite = new BytedanceCdpProject(array.getJSONObject(i));
                         projectList.add(advertiserToolsSite);
                     }
-                    if (!Check.isNull(projectList))
+                    if (!Check.isNull(projectList)){
+                        try {
+                            bytedanceCdpProjectMapper.replaceBytedanceCdpProjectListSD(projectList);
+                        }catch (Exception e) {
+                            log.error("replaceBytedanceCdpProjectListSD",e);
+                        }
                         if (bytedanceCdpProjectMapper.replaceBytedanceCdpProjectList(projectList) > 0)
                             log.info("---账户({})项目信息更新成功", advertiserId);
+                    }
                 } else {
                     //40100请求超频
                     if (40100 == code && count <= 5) {
@@ -314,9 +326,16 @@ public class BytedanceCdpProjectServiceImpl implements IBytedanceCdpProjectServi
                         nextPage = true;
                     }
                     JSONArray list = data.getJSONArray("list");
-                    if (!Check.isNull(list))
+                    if (!Check.isNull(list)){
+                        try {
+                            bytedanceCdpProjectMapper.replaceBytedanceByteAppLinkInfoSD(list);
+                        }catch (Exception e) {
+                            log.error("",e);
+                        }
                         if (bytedanceCdpProjectMapper.replaceBytedanceByteAppLinkInfo(list) > 0)
                             log.info("---账户({})抖小详情信息更新成功", advertiserId);
+                    }
+
                 } else {
                     //40110请求超频 51010 内部服务超时
                     if ((40110 == code || 51010 == code) && count <= 3) {
@@ -375,9 +394,16 @@ public class BytedanceCdpProjectServiceImpl implements IBytedanceCdpProjectServi
                         nextPage = true;
                     }
                     JSONArray list = data.getJSONArray("list");
-                    if (!Check.isNull(list))
+                    if (!Check.isNull(list)){
+                        try {
+                            bytedanceCdpProjectMapper.replaceBytedanceWxAppInfoSD(list, advertiserId);
+                        }catch (Exception e) {
+                            log.error("",e);
+                        }
                         if (bytedanceCdpProjectMapper.replaceBytedanceWxAppInfo(list, advertiserId) > 0)
                             log.info("---账户({})微小信息更新成功", advertiserId);
+                    }
+
                 } else {
                     //40110请求超频
                     if (40110 == code && count <= 3) {
@@ -476,9 +502,16 @@ public class BytedanceCdpProjectServiceImpl implements IBytedanceCdpProjectServi
                         JSONObject object = array.getJSONObject(i);
                         getAppId(object);
                     }
-                    if (!Check.isNull(array))
+                    if (!Check.isNull(array)){
+                        try {
+                            bytedanceCdpProjectMapper.replaceAdqDynamicCreateivesSD(array, accountId);
+                        }catch (Exception e) {
+                            log.error("",e);
+                        }
                         if (bytedanceCdpProjectMapper.replaceAdqDynamicCreateives(array, accountId) > 0)
                             log.info("---账户({})广点通创意更新成功", accountId);
+                    }
+
                 }
             } else {
                 if (count <= 4) {
@@ -545,9 +578,16 @@ public class BytedanceCdpProjectServiceImpl implements IBytedanceCdpProjectServi
                         JSONObject object = array.getJSONObject(i);
                         getPageAppId(object);
                     }
-                    if (!Check.isNull(array))
+                    if (!Check.isNull(array)){
+                        try {
+                            bytedanceCdpProjectMapper.replaceAdqDynamicPagesSD(array, accountId);
+                        }catch (Exception e) {
+                            log.error("",e);
+                        }
                         if (bytedanceCdpProjectMapper.replaceAdqDynamicPages(array, accountId) > 0)
                             log.info("---账户({})广点通落地页更新成功", accountId);
+                    }
+
                 }
             } else {
                 if (count <= 4) {

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

@@ -32,6 +32,11 @@ public class BytedanceProductReportServiceImpl implements IBytedanceProductRepor
     @Override
     public void deleteBytedanceProductDailyReport(Long advertiserId, String startDate, String endDate) {
         productReportMapper.deleteProductReportDailies(advertiserId, Integer.parseInt(startDate.replace("-", "")), Integer.parseInt(endDate.replace("-", "")));
+        try {
+            productReportMapper.deleteProductReportDailiesSD(advertiserId, Integer.parseInt(startDate.replace("-", "")), Integer.parseInt(endDate.replace("-", "")));
+        }catch (Exception e){
+            log.error("",e);
+        }
     }
 
     @Override
@@ -88,6 +93,11 @@ public class BytedanceProductReportServiceImpl implements IBytedanceProductRepor
             }
             if (!Check.isNull(reportDailies)) {
                 productReportMapper.replaceProductReportDailies(reportDailies);
+                try {
+                    productReportMapper.replaceProductReportDailiesSD(reportDailies);
+                }catch (Exception e){
+                    log.error("",e);
+                }
                 log.info("账户ID:{},产品数据日报请求成功,开始日期:{},结束日期:{},page:{}", advertiserId, startDate, endDate, page);
             }
             if (page < totalPage) {

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

@@ -91,6 +91,11 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
             }
             if (!Check.isNull(hours)) {
                 promoterReportMapper.replacePromoterReportHour(hours);
+                try {
+                    promoterReportMapper.replacePromoterReportHourSD(hours);
+                }catch (Exception e) {
+                    log.error("",e);
+                }
             }
             if (hours.size() >= 100) {
                 try {
@@ -170,6 +175,11 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
             }
             if (!Check.isNull(promoterReportDailies)) {
                 promoterReportMapper.replacePromoterReportDailies(promoterReportDailies);
+                try {
+                    promoterReportMapper.replacePromoterReportDailiesSD(promoterReportDailies);
+                }catch (Exception e) {
+                    log.error("",e);
+                }
                 log.info("账户ID:{},广告日报(最细粒度)数据请求成功", advertiserId);
             }
             if (promoterReportDailies.size() >= 100) {
@@ -271,6 +281,11 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
             }
             if (!Check.isNull(hours)) {
                 promoterReportMapper.replacePromoterReportHour(hours);
+                try {
+                    promoterReportMapper.replacePromoterReportHourSD(hours);
+                }catch (Exception e) {
+                    log.error("",e);
+                }
             }
             if (hours.size() >= 100) {
                 try {
@@ -362,6 +377,11 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
             }
             if (!Check.isNull(promoterReportDailies)) {
                 promoterReportMapper.replacePromoterReportDailies(promoterReportDailies);
+                try {
+                    promoterReportMapper.replacePromoterReportDailiesSD(promoterReportDailies);
+                }catch (Exception e) {
+                    log.error("",e);
+                }
                 log.info("账户ID:{},广告日报(最细粒度)数据请求成功", advertiserId);
             }
             if (promoterReportDailies.size() >= 100) {

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

@@ -100,6 +100,11 @@ public class BytedanceXingTuServiceImpl implements IBytedanceXingTuService {
             }
             if (!Check.isNull(tasks)) {
                 bytedanceXingTuMapper.insertTaskId(tasks);
+                try {
+                    bytedanceXingTuMapper.insertTaskIdSD(tasks);
+                }catch (Exception e) {
+                    log.error("",e);
+                }
                 log.info("账户ID:{},星图任务列表请求成功,开始日期:{},结束日期:{},page:{}", advertiserId, startDate, endDate, page);
             }
             if (hasMore) {
@@ -151,6 +156,11 @@ public class BytedanceXingTuServiceImpl implements IBytedanceXingTuService {
                         taskJson.putAll(demandInfo);
                         BytedanceXingTuTask task = taskJson.toJavaObject(BytedanceXingTuTask.class);
                         bytedanceXingTuMapper.updateTaskInfo(task);
+                        try {
+                            bytedanceXingTuMapper.updateTaskInfoSD(task);
+                        }catch (Exception e) {
+                            log.error("",e);
+                        }
                     }
                 }
             } else {
@@ -270,9 +280,19 @@ public class BytedanceXingTuServiceImpl implements IBytedanceXingTuService {
 
             if (!Check.isNull(reports)) {
                 bytedanceXingTuMapper.insertReport(reports);
+                try {
+                    bytedanceXingTuMapper.insertReportSD(reports);
+                }catch (Exception e) {
+                    log.error("",e);
+                }
             }
             if (!Check.isNull(dailyReports)) {
                 bytedanceXingTuMapper.insertReportDaily(dailyReports);
+                try {
+                    bytedanceXingTuMapper.insertReportDailySD(dailyReports);
+                }catch (Exception e) {
+                    log.error("",e);
+                }
             }
 
             if (hasMore) {

+ 7 - 0
job-bytedance/src/main/resources/application.yml

@@ -53,6 +53,8 @@ spring:
     type: com.alibaba.druid.pool.DruidDataSource
     driver-class-name: com.mysql.jdbc.Driver
     dynamic:
+      primary: master  # 设置默认的数据源
+      strict: false    # 严格匹配数据源,未匹配到时使用默认数据源
       druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)
         # 连接池的配置信息
         # 初始化大小,最小,最大
@@ -85,6 +87,11 @@ spring:
           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
+          username: data
+          password: hr@2025..
+          driver-class-name: com.mysql.jdbc.Driver
 
   # redis 配置
   redis: