ソースを参照

Merge remote-tracking branch 'origin/master'

yumeng 11 ヶ月 前
コミット
58f211dd18
18 ファイル変更499 行追加2 行削除
  1. 1 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/entity/AdqPublisherAdunitGeneral.java
  2. 5 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqAccountReportMapper.java
  3. 4 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqAdIncomeMapper.java
  4. 5 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqAssetReportMapper.java
  5. 5 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqCreativeReportMapper.java
  6. 3 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqFlowDetailsReportDailyMapper.java
  7. 111 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqAccountReportMapper.xml
  8. 19 2
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqAdIncomeMapper.xml
  9. 82 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqAssetReportMapper.xml
  10. 133 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqCreativeReportMapper.xml
  11. 30 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqFlowDetailsReportMapper.xml
  12. 10 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqAccountReportServiceImpl.java
  13. 35 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqAdIncomeServiceImpl.java
  14. 11 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqAssetReportServiceImpl.java
  15. 11 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqCreativeCreativeReportServiceImpl.java
  16. 5 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqFlowDetailsReportServiceImpl.java
  17. 22 0
      job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqRetryReportServiceImpl.java
  18. 7 0
      job-adq/src/main/resources/application.yml

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

@@ -15,6 +15,7 @@ public class AdqPublisherAdunitGeneral {
     private String adUnitId;
     private String adUnitName;
     private String adSlot;
+    private String adSlotName;
     private Long agencyIncome;
     private Long clickCount;
     private java.math.BigDecimal clickRate;

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

@@ -2,12 +2,17 @@ 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("selectdb")
+    void addAccountHourListSD(@Param("adds") List<AdqAdvertiserReportHour> hourList);
 
     void addAccountDailyList(@Param("adds") List<AdqAdvertiserReportDaily> dailyList);
+    @DS("selectdb")
+    void addAccountDailyListSD(@Param("adds") List<AdqAdvertiserReportDaily> dailyList);
 }

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

@@ -2,6 +2,7 @@ package cn.com.ctop.job.adq.data.mapper;
 
 import cn.com.ctop.job.adq.data.entity.AdqPublisherAdunitGeneral;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -10,6 +11,9 @@ public interface AdqAdIncomeMapper {
 
     void insertAdqAdIncome(List<AdqPublisherAdunitGeneral> reports);
 
+    @DS("selectdb")
+    void insertAdqAdIncomeSD(List<AdqPublisherAdunitGeneral> reports);
+
     List<JSONObject> queryAdqIaaMiniApp(@Param("appId")String appId);
 
     List<JSONObject> queryAdqAdIncomeRetryJob();

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

@@ -2,11 +2,16 @@ 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("selectdb")
+    void insertAdqAssetReportDailySD(List<AdqAssetReportDaily> reports);
 
     void insertAdqAssetInfo(List<AdqAssetInfo> infos);
+    @DS("selectdb")
+    void insertAdqAssetInfoSD(List<AdqAssetInfo> infos);
 }

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

@@ -3,15 +3,20 @@ 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;
 
 public interface AdqCreativeReportMapper {
     void addsHourList(@Param("adds") List<AdqCreativeReportHour> hourList);
+    @DS("selectdb")
+    void addsHourListSD(@Param("adds") List<AdqCreativeReportHour> hourList);
 
     List<JSONObject> getAccountList(@Param("accountId") Long accountId);
 
     void addsDaily(@Param("adds") List<AdqCreativeReportDaily> dailies);
+    @DS("selectdb")
+    void addsDailySD(@Param("adds") List<AdqCreativeReportDaily> dailies);
 
 }

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

@@ -2,6 +2,7 @@ package cn.com.ctop.job.adq.data.mapper;
 
 import cn.com.ctop.job.adq.data.entity.AdqFlowDetailsReportDaily;
 import cn.com.ctop.job.adq.data.entity.AdvertiserAccount;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -17,5 +18,7 @@ public interface AdqFlowDetailsReportDailyMapper {
     List<AdvertiserAccount> getAdAccount();
 
     void replaceFlowDetailsReportDailies(@Param("list") List<AdqFlowDetailsReportDaily> dailyList);
+    @DS("selectdb")
+    void replaceFlowDetailsReportDailiesSD(@Param("list") List<AdqFlowDetailsReportDaily> dailyList);
 
 }

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

@@ -58,6 +58,63 @@
             )
         </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 (
         advertiser_id,
@@ -111,4 +168,58 @@
             )
         </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>
 </mapper>

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

@@ -4,14 +4,31 @@
 
     <insert id="insertAdqAdIncome">
         replace INTO media_api.adq_publisher_adunit_general (
-        app_id,ad_unit_id, ad_unit_name, ad_slot, agency_income,
+        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.agencyIncome},
+            #{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}

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

@@ -63,6 +63,67 @@
         </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 (
@@ -85,4 +146,25 @@
         </foreach>
     </insert>
 
+    <insert id="insertAdqAssetInfoSD" parameterType="java.util.List">
+        insert 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>
+
 </mapper>

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

@@ -69,6 +69,74 @@
             )
         </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,
@@ -134,6 +202,71 @@
 
     </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

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

@@ -41,5 +41,35 @@
             )
         </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>
 

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

@@ -91,6 +91,11 @@ public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
             }
             if (!Check.isNull(hourList)) {
                 accountReportMapper.addAccountHourList(hourList);
+                try {
+                    accountReportMapper.addAccountHourListSD(hourList);
+                }catch (Exception e){
+                    log.error("addAccountHourListSD",e);
+                }
             }
             if (hourList.size() >= 1000) {
                 getAdqAccountHour(advertiserId, accessToken, startDate, endDate, page + 1, isLog);
@@ -161,6 +166,11 @@ public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
             }
             if (!Check.isNull(dailyList)) {
                 accountReportMapper.addAccountDailyList(dailyList);
+                try {
+                    accountReportMapper.addAccountDailyListSD(dailyList);
+                }catch (Exception e){
+                    log.error("addAccountDailyListSD",e);
+                }
             }
             if (dailyList.size() >= 1000) {
                 getAdqAccountHour(advertiserId, accessToken, startDate, endDate, page + 1, isLog);

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

@@ -32,6 +32,8 @@ public class AdqAdIncomeServiceImpl implements IAdqAdIncomeService {
     @Autowired
     private AdqErrorLogMapper adqErrorLogMapper;
 
+    private static final Map<String, String> adSlotMap = new HashMap<>();
+
     public List<JSONObject> getAdqAdIncomeRetryJob() {
         return adqAdIncomeMapper.queryAdqAdIncomeRetryJob();
     }
@@ -81,6 +83,7 @@ public class AdqAdIncomeServiceImpl implements IAdqAdIncomeService {
                             AdqPublisherAdunitGeneral report = JSONObject.parseObject(statItem.toJSONString(), AdqPublisherAdunitGeneral.class);
                             report.setAppId(appId);
                             report.setStatDate(Integer.valueOf(report.getDate().replace("-", "")));
+                            report.setAdSlotName(getAdSlotName(report.getAdSlot()));
                             //System.out.println(report);
                             reports.add(report);
                         }
@@ -98,6 +101,11 @@ public class AdqAdIncomeServiceImpl implements IAdqAdIncomeService {
             }
             if (!Check.isNull(reports)) {
                 adqAdIncomeMapper.insertAdqAdIncome(reports);
+                try{
+                    adqAdIncomeMapper.insertAdqAdIncomeSD(reports);
+                }catch (Exception e){
+                    log.error("insertAdqAdIncomeSD",e);
+                }
             }
 
             if (totalPage > page) {
@@ -158,6 +166,7 @@ public class AdqAdIncomeServiceImpl implements IAdqAdIncomeService {
                             AdqPublisherAdunitGeneral report = JSONObject.parseObject(dataJson.toJSONString(), AdqPublisherAdunitGeneral.class);
                             report.setAppId(appId);
                             report.setStatDate(Integer.valueOf(report.getDate().replace("-", "")));
+                            report.setAdSlotName(getAdSlotName(report.getAdSlot()));
                             //System.out.println(report);
                             reports.add(report);
                         }
@@ -175,6 +184,12 @@ public class AdqAdIncomeServiceImpl implements IAdqAdIncomeService {
             }
             if (!Check.isNull(reports)) {
                 adqAdIncomeMapper.insertAdqAdIncome(reports);
+                try {
+                    adqAdIncomeMapper.insertAdqAdIncomeSD(reports);
+                }catch (Exception e) {
+                    log.error("insertAdqAdIncomeSD",e);
+                }
+
             }
 
             if (totalPage > page) {
@@ -206,4 +221,24 @@ public class AdqAdIncomeServiceImpl implements IAdqAdIncomeService {
         }
     }
 
+
+    private String getAdSlotName(String adSlot) {
+        if (adSlotMap.isEmpty()) {
+            adSlotMap.put("SLOT_ID_BIZ_BOTTOM", "公众号底部广告");
+            adSlotMap.put("SLOT_ID_BIZ_MID_CONTEXT", "公众号文中广告");
+            adSlotMap.put("SLOT_ID_BIZ_VIDEO_END", "公众号视频后贴");
+            adSlotMap.put("SLOT_ID_BIZ_SPONSOR", "公众号互选广告");
+            adSlotMap.put("SLOT_ID_BIZ_CPS", "公众号返佣商品");
+            adSlotMap.put("SLOT_ID_WEAPP_BANNER", "小程序banner");
+            adSlotMap.put("SLOT_ID_WEAPP_REWARD_VIDEO", "小程序激励视频");
+            adSlotMap.put("SLOT_ID_WEAPP_INTERSTITIAL", "小程序插屏广告");
+            adSlotMap.put("SLOT_ID_WEAPP_VIDEO_FEEDS", "小程序视频广告");
+            adSlotMap.put("SLOT_ID_WEAPP_VIDEO_BEGIN", "小程序视频前贴");
+            adSlotMap.put("SLOT_ID_WEAPP_BOX", "小程序格子广告");
+            adSlotMap.put("SLOT_ID_WEAPP_TEMPLATE", "小程序原生模板广告");
+            adSlotMap.put("SLOT_ID_WEAPP_COVER", "封面广告");
+        }
+        return adSlotMap.get(adSlot);
+    }
+
 }

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

@@ -88,6 +88,11 @@ public class AdqAssetReportServiceImpl implements IAdqAssetReportService {
             }
             if (!Check.isNull(dailies)) {
                 adqAssetReportMapper.insertAdqAssetReportDaily(dailies);
+                try {
+                    adqAssetReportMapper.insertAdqAssetReportDailySD(dailies);
+                }catch (Exception e) {
+                    log.error("insertAdqAssetReportDailySD",e);
+                }
             }
             if (!Check.isNullMap(assetIdsMap)) {
                 getAdqAssetInfo(assetIdsMap, advertiserId, accessToken, 1, null, null);
@@ -211,6 +216,12 @@ public class AdqAssetReportServiceImpl implements IAdqAssetReportService {
                 }
                 if (!Check.isNull(infos)) {
                     adqAssetReportMapper.insertAdqAssetInfo(infos);
+                    try {
+                        adqAssetReportMapper.insertAdqAssetInfoSD(infos);
+                    }catch (Exception e) {
+                        log.error("insertAdqAssetInfoSD",e);
+                    }
+
                 }
 
                 if (page == totalPage) {

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

@@ -91,6 +91,12 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
             }
             if (!Check.isNull(hourList)) {
                 adqReportMapper.addsHourList(hourList);
+                try {
+                    adqReportMapper.addsHourListSD(hourList);
+                }catch (Exception e) {
+                    log.error("addsHourListSD",e);
+                }
+
             }
             if (hourList.size() >= 1000) {
                 log.info("新增数据条数:{}", hourList.size());
@@ -170,6 +176,11 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
             }
             if (!Check.isNull(dailies)) {
                 adqReportMapper.addsDaily(dailies);
+                try {
+                    adqReportMapper.addsDailySD(dailies);
+                }catch (Exception e) {
+                    log.error("addsDailySD",e);
+                }
             }
             if (dailies.size() >= 1000) {
                 getAdqCreativeDaily(advertiserId, accessToken, startDate, endDate, page + 1, isLog);

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

@@ -114,6 +114,11 @@ public class AdqFlowDetailsReportServiceImpl implements IAdqFlowDetailsReportSer
                             dailyList = buildFlowDetailsReportDaily(dailyList);
 
                             adqFlowDetailsReportDailyMapper.replaceFlowDetailsReportDailies(dailyList);
+                            try {
+                                adqFlowDetailsReportDailyMapper.replaceFlowDetailsReportDailiesSD(dailyList);
+                            }catch (Exception e) {
+                                log.error("replaceFlowDetailsReportDailiesSD",e);
+                            }
                         }
                     }
                 }

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

@@ -84,6 +84,12 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
         }
         if (!Check.isNull(hourList)) {
             adqReportMapper.addsHourList(hourList);
+            try {
+                adqReportMapper.addsHourListSD(hourList);
+            }catch (Exception e) {
+                log.error("addsHourListSD",e);
+            }
+
         }
         if (hourList.size() >= 1000) {
             getCreativeHourRetry(errorId, advertiserId, accessToken, startDate, endDate, page + 1, isSend);
@@ -148,6 +154,12 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
             }
             if (!Check.isNull(dailies)) {
                 adqReportMapper.addsDaily(dailies);
+                try {
+                    adqReportMapper.addsDailySD(dailies);
+                }catch (Exception e) {
+                    log.error("addsDailySD",e);
+                }
+
             }
             if (dailies.size() >= 1000) {
                 getCreativeDailyRetry(errorId, advertiserId, accessToken, startDate, endDate, page + 1, isSend);
@@ -213,6 +225,11 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
             }
             if (!Check.isNull(hourList)) {
                 accountReportMapper.addAccountHourList(hourList);
+                try {
+                    accountReportMapper.addAccountHourListSD(hourList);
+                }catch (Exception e){
+                    log.error("addAccountHourList",e);
+                }
             }
             if (hourList.size() >= 1000) {
                 getAccountHourRetry(errorId, advertiserId, accessToken, startDate, endDate, page + 1, isSend);
@@ -277,6 +294,11 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
             }
             if (!Check.isNull(dailyList)) {
                 accountReportMapper.addAccountDailyList(dailyList);
+                try {
+                    accountReportMapper.addAccountDailyListSD(dailyList);
+                }catch (Exception e){
+                    log.error("addAccountDailyListSD",e);
+                }
             }
             if (dailyList.size() >= 1000) {
                 getAccountDailyRetry(errorId, advertiserId, accessToken, startDate, endDate, page + 1, isSend);

+ 7 - 0
job-adq/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: