zhaoxian před 2 roky
rodič
revize
643deec057
22 změnil soubory, kde provedl 830 přidání a 18 odebrání
  1. 3 3
      job-live/src/main/java/cn/com/ctop/job/live/controller/LiveController.java
  2. 2 0
      job-live/src/main/java/cn/com/ctop/job/live/entity/KuaishouLiveAccountReportDaily.java
  3. 1 0
      job-live/src/main/java/cn/com/ctop/job/live/entity/KuaishouLiveCampaignReportDaily.java
  4. 1 0
      job-live/src/main/java/cn/com/ctop/job/live/entity/KuaishouLiveUnitReportDaily.java
  5. 33 3
      job-live/src/main/java/cn/com/ctop/job/live/handler/AdAccountReportJob.java
  6. 33 2
      job-live/src/main/java/cn/com/ctop/job/live/handler/AdCampaignReportJob.java
  7. 2 3
      job-live/src/main/java/cn/com/ctop/job/live/handler/AdCreativeReportJob.java
  8. 31 1
      job-live/src/main/java/cn/com/ctop/job/live/handler/AdUnitReportJob.java
  9. 2 0
      job-live/src/main/java/cn/com/ctop/job/live/mapper/KuaishouLiveAccountReportDailyMapper.java
  10. 2 0
      job-live/src/main/java/cn/com/ctop/job/live/mapper/KuaishouLiveCampaignReportDailyMapper.java
  11. 3 0
      job-live/src/main/java/cn/com/ctop/job/live/mapper/KuaishouLiveUnitReportDailyMapper.java
  12. 182 0
      job-live/src/main/java/cn/com/ctop/job/live/mapper/xml/KuaishouLiveAccountReportDailyMapper.xml
  13. 189 0
      job-live/src/main/java/cn/com/ctop/job/live/mapper/xml/KuaishouLiveCampaignReportDailyMapper.xml
  14. 200 0
      job-live/src/main/java/cn/com/ctop/job/live/mapper/xml/KuaishouLiveUnitReportDailyMapper.xml
  15. 3 1
      job-live/src/main/java/cn/com/ctop/job/live/service/IKuaishouLiveAccountReportDailyService.java
  16. 2 0
      job-live/src/main/java/cn/com/ctop/job/live/service/IKuaishouLiveCampaignReportDailyService.java
  17. 2 0
      job-live/src/main/java/cn/com/ctop/job/live/service/IKuaishouLiveUnitReportDailyService.java
  18. 43 2
      job-live/src/main/java/cn/com/ctop/job/live/service/impl/KuaishouLiveAccountReportDailyServiceImpl.java
  19. 42 1
      job-live/src/main/java/cn/com/ctop/job/live/service/impl/KuaishouLiveCampaignReportDailyServiceImpl.java
  20. 1 1
      job-live/src/main/java/cn/com/ctop/job/live/service/impl/KuaishouLiveCreativeReportDailyServiceImpl.java
  21. 42 1
      job-live/src/main/java/cn/com/ctop/job/live/service/impl/KuaishouLiveUnitReportDailyServiceImpl.java
  22. 11 0
      job-live/src/main/java/cn/com/ctop/job/live/utils/DateUtils.java

+ 3 - 3
job-live/src/main/java/cn/com/ctop/job/live/controller/LiveController.java

@@ -37,9 +37,9 @@ public class LiveController {
      * 清洗昨日直播账户数据
      */
     @GetMapping(value = "/getKuaishouAccountReport")
-    public Result<Object> getKuaishouAccountReport(Long accountId) {
-        String token = "5490f684f0f2bdabdf5d40d9c4f34300";
-        return accountReportDailyService.getKuaishouAccountReport(accountId, token, 1);
+    public void getKuaishouAccountReport(Long accountId) {
+        String token = "cc299cdc3785e1416d0b7b0ea334b6ea";
+        accountReportDailyService.getKuaishouAccountHourReport(accountId, token);
     }
 
     /**

+ 2 - 0
job-live/src/main/java/cn/com/ctop/job/live/entity/KuaishouLiveAccountReportDaily.java

@@ -521,4 +521,6 @@ public class KuaishouLiveAccountReportDaily {
      */
     private Long reportDate;
 
+    private Integer hour;
+
 }

+ 1 - 0
job-live/src/main/java/cn/com/ctop/job/live/entity/KuaishouLiveCampaignReportDaily.java

@@ -537,4 +537,5 @@ public class KuaishouLiveCampaignReportDaily {
      */
     private Long reportDate;
 
+    private Integer hour;
 }

+ 1 - 0
job-live/src/main/java/cn/com/ctop/job/live/entity/KuaishouLiveUnitReportDaily.java

@@ -568,4 +568,5 @@ public class KuaishouLiveUnitReportDaily {
      */
     private Long reportDate;
 
+    private Integer hour;
 }

+ 33 - 3
job-live/src/main/java/cn/com/ctop/job/live/handler/AdAccountReportJob.java

@@ -26,13 +26,13 @@ public class AdAccountReportJob {
     private static ExecutorService hourExecutorService = Executors.newFixedThreadPool(3);
 
     /**
-     * 获取广告信息
+     * 获取广告账户信息
      * 前1天
      *
      * @throws Exception
      */
     @XxlJob("AdAccountReportJob")
-    public void AdAccountReportJob() {
+    public void adAccountReportJob() {
         String param = XxlJobHelper.getJobParam(); // 执行参数
         if (Check.isNull(param)) {
             log.error("入参为空");
@@ -49,7 +49,37 @@ public class AdAccountReportJob {
                     @Override
                     public void run() {
                         try {
-                            accountReportDailyService.getKuaishouAccountReport(Long.valueOf(param), token, 1);
+                            accountReportDailyService.getKuaishouAccountReport(Long.valueOf(param), token);
+                        } catch (Exception e) {
+                            log.info(String.valueOf(e));
+                            ;
+                        }
+                    }
+                });
+    }
+
+     /**
+     * 获取广告账户信息(时报)
+     */
+    @XxlJob("AdAccountHourReportJob")
+    public void adAccountHourReportJob() {
+        String param = XxlJobHelper.getJobParam(); // 执行参数
+        if (Check.isNull(param)) {
+            log.error("入参为空");
+            return;
+        }
+        String token = tokenService.getByAccountId(Long.valueOf(param));
+        if (Check.isNull(token)) {
+            log.error("此账户未获取到相关token,accountId:{}", param);
+            return;
+        }
+
+        dailyExecutorService.submit(
+                new Runnable() {
+                    @Override
+                    public void run() {
+                        try {
+                            accountReportDailyService.getKuaishouAccountHourReport(Long.valueOf(param), token);
                         } catch (Exception e) {
                             log.info(String.valueOf(e));
                             ;

+ 33 - 2
job-live/src/main/java/cn/com/ctop/job/live/handler/AdCampaignReportJob.java

@@ -26,13 +26,13 @@ public class AdCampaignReportJob {
     private static ExecutorService hourExecutorService = Executors.newFixedThreadPool(3);
 
     /**
-     * 获取广告信息
+     * 获取广告计划信息
      * 前1天
      *
      * @throws Exception
      */
     @XxlJob("AdCampaignReportJob")
-    public void AdCampaignReportJob() {
+    public void adCampaignReportJob() {
         String param = XxlJobHelper.getJobParam(); // 执行参数
         if (Check.isNull(param)) {
             log.error("入参为空");
@@ -59,4 +59,35 @@ public class AdCampaignReportJob {
     }
 
 
+    /**
+     * 获取广告计划信息(时报)
+     */
+    @XxlJob("AdCampaignHourReportJob")
+    public void adCampaignHourReportJob() {
+        String param = XxlJobHelper.getJobParam(); // 执行参数
+        if (Check.isNull(param)) {
+            log.error("入参为空");
+            return;
+        }
+        String token = tokenService.getByAccountId(Long.valueOf(param));
+        if (Check.isNull(token)) {
+            log.error("此账户未获取到相关token,accountId:{}", param);
+            return;
+        }
+
+        dailyExecutorService.submit(
+                new Runnable() {
+                    @Override
+                    public void run() {
+                        try {
+                            campaignReportDailyService.getKuaishouCampaignHourReport(Long.valueOf(param), token, 1);
+                        } catch (Exception e) {
+                            log.info(String.valueOf(e));
+                            ;
+                        }
+                    }
+                });
+    }
+
+
 }

+ 2 - 3
job-live/src/main/java/cn/com/ctop/job/live/handler/AdCreativeReportJob.java

@@ -26,13 +26,13 @@ public class AdCreativeReportJob {
     private static ExecutorService hourExecutorService = Executors.newFixedThreadPool(3);
 
     /**
-     * 获取广告信息
+     * 获取广告创意信息
      * 前1天
      *
      * @throws Exception
      */
     @XxlJob("AdCreativeReportJob")
-    public void AdCreativeReportJob() {
+    public void adCreativeReportJob() {
         String param = XxlJobHelper.getJobParam(); // 执行参数
         if (Check.isNull(param)) {
             log.error("入参为空");
@@ -58,5 +58,4 @@ public class AdCreativeReportJob {
                 });
     }
 
-
 }

+ 31 - 1
job-live/src/main/java/cn/com/ctop/job/live/handler/AdUnitReportJob.java

@@ -31,7 +31,7 @@ public class AdUnitReportJob {
      *
      * @throws Exception
      */
-    @XxlJob("AdUnitListReportJob")
+    @XxlJob("AdUnitReportJob")
     public void AdUnitListReportJob() {
         String param = XxlJobHelper.getJobParam(); // 执行参数
         if (Check.isNull(param)) {
@@ -58,5 +58,35 @@ public class AdUnitReportJob {
                 });
     }
 
+    /**
+     * 获取广告组信息(时报)
+     */
+    @XxlJob("AdUnitHourReportJob")
+    public void adUnitHourReportJob() {
+        String param = XxlJobHelper.getJobParam(); // 执行参数
+        if (Check.isNull(param)) {
+            log.error("入参为空");
+            return;
+        }
+        String token = tokenService.getByAccountId(Long.valueOf(param));
+        if (Check.isNull(token)) {
+            log.error("此账户未获取到相关token,accountId:{}", param);
+            return;
+        }
+
+        dailyExecutorService.submit(
+                new Runnable() {
+                    @Override
+                    public void run() {
+                        try {
+                            unitReportDailyService.getKuaishouUnitHourReport(Long.valueOf(param), token, 1);
+                        } catch (Exception e) {
+                            log.info(String.valueOf(e));
+                            ;
+                        }
+                    }
+                });
+    }
+
 
 }

+ 2 - 0
job-live/src/main/java/cn/com/ctop/job/live/mapper/KuaishouLiveAccountReportDailyMapper.java

@@ -15,4 +15,6 @@ public interface KuaishouLiveAccountReportDailyMapper {
 
 
     void replaceBatch(@Param("list") List<KuaishouLiveAccountReportDaily> list);
+
+    void replaceBatchHour(@Param("list") List<KuaishouLiveAccountReportDaily> list);
 }

+ 2 - 0
job-live/src/main/java/cn/com/ctop/job/live/mapper/KuaishouLiveCampaignReportDailyMapper.java

@@ -14,4 +14,6 @@ import java.util.List;
 public interface KuaishouLiveCampaignReportDailyMapper {
 
     void replaceBatch(@Param("list") List<KuaishouLiveCampaignReportDaily> list);
+
+    void replaceBatchHour(@Param("list") List<KuaishouLiveCampaignReportDaily> list);
 }

+ 3 - 0
job-live/src/main/java/cn/com/ctop/job/live/mapper/KuaishouLiveUnitReportDailyMapper.java

@@ -1,5 +1,6 @@
 package cn.com.ctop.job.live.mapper;
 
+import cn.com.ctop.job.live.entity.KuaishouLiveCampaignReportDaily;
 import cn.com.ctop.job.live.entity.KuaishouLiveUnitReportDaily;
 import org.apache.ibatis.annotations.Param;
 
@@ -15,4 +16,6 @@ public interface KuaishouLiveUnitReportDailyMapper {
 
     void replaceBatch(@Param("list") List<KuaishouLiveUnitReportDaily> list);
 
+    void replaceBatchHour(@Param("list") List<KuaishouLiveUnitReportDaily> list);
+
 }

+ 182 - 0
job-live/src/main/java/cn/com/ctop/job/live/mapper/xml/KuaishouLiveAccountReportDailyMapper.xml

@@ -183,4 +183,186 @@
         </foreach>
     </insert>
 
+    <insert id="replaceBatchHour">
+        replace into kuaishou_live_account_report_hourly(
+        account_id,
+        cost_total,
+        ad_show,
+        ad_show1k_cost,
+        impression,
+        photo_click,
+        photo_click_ratio,
+        click,
+        actionbar_click,
+        actionbar_click_cost,
+        esp_click_ratio,
+        action_ratio,
+        ad_item_click_count,
+        esp_live_played_seconds,
+        played_three_seconds,
+        play3s_ratio,
+        played_five_seconds,
+        play5s_ratio,
+        played_end,
+        play_end_ratio,
+        share,
+        comment,
+        likes,
+        report,
+        block,
+        item_negative,
+        live_share,
+        live_comment,
+        live_reward,
+        effective_play_count,
+        effective_play_ratio,
+        ad_live_played1m_num,
+        conversion_num,
+        conversion_cost_esp,
+        gmv,
+        t0_gmv,
+        t1_gmv,
+        t7_gmv,
+        t15_gmv,
+        t30_gmv,
+        roi,
+        t0_roi,
+        t1_roi,
+        t7_roi,
+        t15_roi,
+        t30_roi,
+        paied_order,
+        order_ratio,
+        t0_order_cnt,
+        t0_order_cnt_cost,
+        t0_order_cnt_ratio,
+        t1_order_cnt,
+        t7_order_cnt,
+        t15_order_cnt,
+        t30_order_cnt,
+        merchant_reco_fans,
+        t1_retention,
+        t7_retention,
+        t15_retention,
+        t30_retention,
+        t1_retention_ratio,
+        t7_retention_ratio,
+        t15_retention_ratio,
+        t30_retention_ratio,
+        reservation_success,
+        reservation_cost,
+        standard_live_played_started,
+        live_audience_cost,
+        live_event_goods_view,
+        goods_click_ratio,
+        direct_attr_plat_new_buyer_cnt,
+        t30_attr_plat_total_buyer_cnt,
+        direct_attr_seller_new_buyer_cnt,
+        t30_attr_seller_total_buyer_cnt,
+        fans_t0_gmv,
+        fans_t1_gmv,
+        fans_t7_gmv,
+        fans_t15_gmv,
+        fans_t30_gmv,
+        fans_t0_roi,
+        fans_t1_roi,
+        fans_t7_roi,
+        fans_t15_roi,
+        fans_t30_roi,
+        report_date,
+        `hour`
+        )
+        values
+        <foreach collection="list" item="report" separator=",">
+            (
+            #{report.accountId},
+            #{report.costTotal},
+            #{report.adShow},
+            #{report.adShow1kCost},
+            #{report.impression},
+            #{report.photoClick},
+            #{report.photoClickRatio},
+            #{report.click},
+            #{report.actionbarClick},
+            #{report.actionbarClickCost},
+            #{report.espClickRatio},
+            #{report.actionRatio},
+            #{report.adItemClickCount},
+            #{report.espLivePlayedSeconds},
+            #{report.playedThreeSeconds},
+            #{report.play3sRatio},
+            #{report.playedFiveSeconds},
+            #{report.play5sRatio},
+            #{report.playedEnd},
+            #{report.playEndRatio},
+            #{report.share},
+            #{report.comment},
+            #{report.likes},
+            #{report.report},
+            #{report.block},
+            #{report.itemNegative},
+            #{report.liveShare},
+            #{report.liveComment},
+            #{report.liveReward},
+            #{report.effectivePlayCount},
+            #{report.effectivePlayRatio},
+            #{report.adLivePlayed1mNum},
+            #{report.conversionNum},
+            #{report.conversionCostEsp},
+            #{report.gmv},
+            #{report.t0Gmv},
+            #{report.t1Gmv},
+            #{report.t7Gmv},
+            #{report.t15Gmv},
+            #{report.t30Gmv},
+            #{report.roi},
+            #{report.t0Roi},
+            #{report.t1Roi},
+            #{report.t7Roi},
+            #{report.t15Roi},
+            #{report.t30Roi},
+            #{report.paiedOrder},
+            #{report.orderRatio},
+            #{report.t0OrderCnt},
+            #{report.t0OrderCntCost},
+            #{report.t0OrderCntRatio},
+            #{report.t1OrderCnt},
+            #{report.t7OrderCnt},
+            #{report.t15OrderCnt},
+            #{report.t30OrderCnt},
+            #{report.merchantRecoFans},
+            #{report.t1Retention},
+            #{report.t7Retention},
+            #{report.t15Retention},
+            #{report.t30Retention},
+            #{report.t1RetentionRatio},
+            #{report.t7RetentionRatio},
+            #{report.t15RetentionRatio},
+            #{report.t30RetentionRatio},
+            #{report.reservationSuccess},
+            #{report.reservationCost},
+            #{report.standardLivePlayedStarted},
+            #{report.liveAudienceCost},
+            #{report.liveEventGoodsView},
+            #{report.goodsClickRatio},
+            #{report.directAttrPlatNewBuyerCnt},
+            #{report.t30AttrPlatTotalBuyerCnt},
+            #{report.directAttrSellerNewBuyerCnt},
+            #{report.t30AttrSellerTotalBuyerCnt},
+            #{report.fansT0Gmv},
+            #{report.fansT1Gmv},
+            #{report.fansT7Gmv},
+            #{report.fansT15Gmv},
+            #{report.fansT30Gmv},
+            #{report.fansT0Roi},
+            #{report.fansT1Roi},
+            #{report.fansT7Roi},
+            #{report.fansT15Roi},
+            #{report.fansT30Roi},
+            #{report.reportDate},
+            #{report.hour}
+            )
+        </foreach>
+    </insert>
+
 </mapper>

+ 189 - 0
job-live/src/main/java/cn/com/ctop/job/live/mapper/xml/KuaishouLiveCampaignReportDailyMapper.xml

@@ -190,5 +190,194 @@
         </foreach>
     </insert>
 
+    <insert id="replaceBatchHour">
+        replace into kuaishou_live_campaign_report_hourly(
+        account_id,
+        campaign_id,
+        campaign_name,
+        campaign_type_str,
+        cost_total,
+        ad_show,
+        ad_show1k_cost,
+        impression,
+        photo_click,
+        photo_click_ratio,
+        click,
+        actionbar_click,
+        actionbar_click_cost,
+        esp_click_ratio,
+        action_ratio,
+        ad_item_click_count,
+        esp_live_played_seconds,
+        played_three_seconds,
+        play3s_ratio,
+        played_five_seconds,
+        play5s_ratio,
+        played_end,
+        play_end_ratio,
+        share,
+        comment,
+        likes,
+        report,
+        block,
+        item_negative,
+        live_share,
+        live_comment,
+        live_reward,
+        effective_play_count,
+        effective_play_ratio,
+        ad_live_played1m_num,
+        conversion_num,
+        conversion_cost_esp,
+        gmv,
+        t0_gmv,
+        t1_gmv,
+        t7_gmv,
+        t15_gmv,
+        t30_gmv,
+        roi,
+        t0_roi,
+        t1_roi,
+        t7_roi,
+        t15_roi,
+        t30_roi,
+        paied_order,
+        order_ratio,
+        t0_order_cnt,
+        t0_order_cnt_cost,
+        t0_order_cnt_ratio,
+        t1_order_cnt,
+        t7_order_cnt,
+        t15_order_cnt,
+        t30_order_cnt,
+        merchant_reco_fans,
+        t1_retention,
+        t7_retention,
+        t15_retention,
+        t30_retention,
+        t1_retention_ratio,
+        t7_retention_ratio,
+        t15_retention_ratio,
+        t30_retention_ratio,
+        reservation_success,
+        reservation_cost,
+        standard_live_played_started,
+        live_audience_cost,
+        live_event_goods_view,
+        goods_click_ratio,
+        direct_attr_plat_new_buyer_cnt,
+        t30_attr_plat_total_buyer_cnt,
+        direct_attr_seller_new_buyer_cnt,
+        t30_attr_seller_total_buyer_cnt,
+        fans_t0_gmv,
+        fans_t1_gmv,
+        fans_t7_gmv,
+        fans_t15_gmv,
+        fans_t30_gmv,
+        fans_t0_roi,
+        fans_t1_roi,
+        fans_t7_roi,
+        fans_t15_roi,
+        fans_t30_roi,
+        report_date,
+        `hour`
+
+        )
+        values
+        <foreach collection="list" item="report" separator=",">
+            (
+            #{report.accountId},
+            #{report.campaignId},
+            #{report.campaignName},
+            #{report.campaignTypeStr},
+            #{report.costTotal},
+            #{report.adShow},
+            #{report.adShow1kCost},
+            #{report.impression},
+            #{report.photoClick},
+            #{report.photoClickRatio},
+            #{report.click},
+            #{report.actionbarClick},
+            #{report.actionbarClickCost},
+            #{report.espClickRatio},
+            #{report.actionRatio},
+            #{report.adItemClickCount},
+            #{report.espLivePlayedSeconds},
+            #{report.playedThreeSeconds},
+            #{report.play3sRatio},
+            #{report.playedFiveSeconds},
+            #{report.play5sRatio},
+            #{report.playedEnd},
+            #{report.playEndRatio},
+            #{report.share},
+            #{report.comment},
+            #{report.likes},
+            #{report.report},
+            #{report.block},
+            #{report.itemNegative},
+            #{report.liveShare},
+            #{report.liveComment},
+            #{report.liveReward},
+            #{report.effectivePlayCount},
+            #{report.effectivePlayRatio},
+            #{report.adLivePlayed1mNum},
+            #{report.conversionNum},
+            #{report.conversionCostEsp},
+            #{report.gmv},
+            #{report.t0Gmv},
+            #{report.t1Gmv},
+            #{report.t7Gmv},
+            #{report.t15Gmv},
+            #{report.t30Gmv},
+            #{report.roi},
+            #{report.t0Roi},
+            #{report.t1Roi},
+            #{report.t7Roi},
+            #{report.t15Roi},
+            #{report.t30Roi},
+            #{report.paiedOrder},
+            #{report.orderRatio},
+            #{report.t0OrderCnt},
+            #{report.t0OrderCntCost},
+            #{report.t0OrderCntRatio},
+            #{report.t1OrderCnt},
+            #{report.t7OrderCnt},
+            #{report.t15OrderCnt},
+            #{report.t30OrderCnt},
+            #{report.merchantRecoFans},
+            #{report.t1Retention},
+            #{report.t7Retention},
+            #{report.t15Retention},
+            #{report.t30Retention},
+            #{report.t1RetentionRatio},
+            #{report.t7RetentionRatio},
+            #{report.t15RetentionRatio},
+            #{report.t30RetentionRatio},
+            #{report.reservationSuccess},
+            #{report.reservationCost},
+            #{report.standardLivePlayedStarted},
+            #{report.liveAudienceCost},
+            #{report.liveEventGoodsView},
+            #{report.goodsClickRatio},
+            #{report.directAttrPlatNewBuyerCnt},
+            #{report.t30AttrPlatTotalBuyerCnt},
+            #{report.directAttrSellerNewBuyerCnt},
+            #{report.t30AttrSellerTotalBuyerCnt},
+            #{report.fansT0Gmv},
+            #{report.fansT1Gmv},
+            #{report.fansT7Gmv},
+            #{report.fansT15Gmv},
+            #{report.fansT30Gmv},
+            #{report.fansT0Roi},
+            #{report.fansT1Roi},
+            #{report.fansT7Roi},
+            #{report.fansT15Roi},
+            #{report.fansT30Roi},
+            #{report.reportDate},
+            #{report.hour}
+            )
+        </foreach>
+    </insert>
+
 
 </mapper>

+ 200 - 0
job-live/src/main/java/cn/com/ctop/job/live/mapper/xml/KuaishouLiveUnitReportDailyMapper.xml

@@ -201,4 +201,204 @@
     </insert>
 
 
+    <insert id="replaceBatchHour">
+        replace into kuaishou_live_unit_report_hourly(
+        account_id,
+        campaign_id,
+        campaign_name,
+        unit_id,
+        unit_name,
+        ocpc_action_type_str,
+        speed_type_str,
+        creative_build_type_str,
+        campaign_type_str,
+        cost_total,
+        ad_show,
+        ad_show1k_cost,
+        impression,
+        photo_click,
+        photo_click_ratio,
+        click,
+        actionbar_click,
+        actionbar_click_cost,
+        esp_click_ratio,
+        action_ratio,
+        ad_item_click_count,
+        esp_live_played_seconds,
+        played_three_seconds,
+        play3s_ratio,
+        played_five_seconds,
+        play5s_ratio,
+        played_end,
+        play_end_ratio,
+        share,
+        comment,
+        likes,
+        report,
+        block,
+        item_negative,
+        live_share,
+        live_comment,
+        live_reward,
+        effective_play_count,
+        effective_play_ratio,
+        ad_live_played1m_num,
+        conversion_num,
+        conversion_cost_esp,
+        gmv,
+        t0_gmv,
+        t1_gmv,
+        t7_gmv,
+        t15_gmv,
+        t30_gmv,
+        roi,
+        t0_roi,
+        t1_roi,
+        t7_roi,
+        t15_roi,
+        t30_roi,
+        paied_order,
+        order_ratio,
+        t0_order_cnt,
+        t0_order_cnt_cost,
+        t0_order_cnt_ratio,
+        t1_order_cnt,
+        t7_order_cnt,
+        t15_order_cnt,
+        t30_order_cnt,
+        merchant_reco_fans,
+        t1_retention,
+        t7_retention,
+        t15_retention,
+        t30_retention,
+        t1_retention_ratio,
+        t7_retention_ratio,
+        t15_retention_ratio,
+        t30_retention_ratio,
+        reservation_success,
+        reservation_cost,
+        standard_live_played_started,
+        live_audience_cost,
+        live_event_goods_view,
+        goods_click_ratio,
+        direct_attr_plat_new_buyer_cnt,
+        t30_attr_plat_total_buyer_cnt,
+        direct_attr_seller_new_buyer_cnt,
+        t30_attr_seller_total_buyer_cnt,
+        fans_t0_gmv,
+        fans_t1_gmv,
+        fans_t7_gmv,
+        fans_t15_gmv,
+        fans_t30_gmv,
+        fans_t0_roi,
+        fans_t1_roi,
+        fans_t7_roi,
+        fans_t15_roi,
+        fans_t30_roi,
+        report_date,
+        `hour`
+
+        )
+        values
+        <foreach collection="list" item="report" separator=",">
+            (
+            #{report.accountId},
+            #{report.campaignId},
+            #{report.campaignName},
+            #{report.unitId},
+            #{report.unitName},
+            #{report.ocpcActionTypeStr},
+            #{report.speedTypeStr},
+            #{report.creativeBuildTypeStr},
+            #{report.campaignTypeStr},
+            #{report.costTotal},
+            #{report.adShow},
+            #{report.adShow1kCost},
+            #{report.impression},
+            #{report.photoClick},
+            #{report.photoClickRatio},
+            #{report.click},
+            #{report.actionbarClick},
+            #{report.actionbarClickCost},
+            #{report.espClickRatio},
+            #{report.actionRatio},
+            #{report.adItemClickCount},
+            #{report.espLivePlayedSeconds},
+            #{report.playedThreeSeconds},
+            #{report.play3sRatio},
+            #{report.playedFiveSeconds},
+            #{report.play5sRatio},
+            #{report.playedEnd},
+            #{report.playEndRatio},
+            #{report.share},
+            #{report.comment},
+            #{report.likes},
+            #{report.report},
+            #{report.block},
+            #{report.itemNegative},
+            #{report.liveShare},
+            #{report.liveComment},
+            #{report.liveReward},
+            #{report.effectivePlayCount},
+            #{report.effectivePlayRatio},
+            #{report.adLivePlayed1mNum},
+            #{report.conversionNum},
+            #{report.conversionCostEsp},
+            #{report.gmv},
+            #{report.t0Gmv},
+            #{report.t1Gmv},
+            #{report.t7Gmv},
+            #{report.t15Gmv},
+            #{report.t30Gmv},
+            #{report.roi},
+            #{report.t0Roi},
+            #{report.t1Roi},
+            #{report.t7Roi},
+            #{report.t15Roi},
+            #{report.t30Roi},
+            #{report.paiedOrder},
+            #{report.orderRatio},
+            #{report.t0OrderCnt},
+            #{report.t0OrderCntCost},
+            #{report.t0OrderCntRatio},
+            #{report.t1OrderCnt},
+            #{report.t7OrderCnt},
+            #{report.t15OrderCnt},
+            #{report.t30OrderCnt},
+            #{report.merchantRecoFans},
+            #{report.t1Retention},
+            #{report.t7Retention},
+            #{report.t15Retention},
+            #{report.t30Retention},
+            #{report.t1RetentionRatio},
+            #{report.t7RetentionRatio},
+            #{report.t15RetentionRatio},
+            #{report.t30RetentionRatio},
+            #{report.reservationSuccess},
+            #{report.reservationCost},
+            #{report.standardLivePlayedStarted},
+            #{report.liveAudienceCost},
+            #{report.liveEventGoodsView},
+            #{report.goodsClickRatio},
+            #{report.directAttrPlatNewBuyerCnt},
+            #{report.t30AttrPlatTotalBuyerCnt},
+            #{report.directAttrSellerNewBuyerCnt},
+            #{report.t30AttrSellerTotalBuyerCnt},
+            #{report.fansT0Gmv},
+            #{report.fansT1Gmv},
+            #{report.fansT7Gmv},
+            #{report.fansT15Gmv},
+            #{report.fansT30Gmv},
+            #{report.fansT0Roi},
+            #{report.fansT1Roi},
+            #{report.fansT7Roi},
+            #{report.fansT15Roi},
+            #{report.fansT30Roi},
+            #{report.reportDate},
+            #{report.hour}
+            )
+        </foreach>
+    </insert>
+
+
 </mapper>

+ 3 - 1
job-live/src/main/java/cn/com/ctop/job/live/service/IKuaishouLiveAccountReportDailyService.java

@@ -10,5 +10,7 @@ import cn.com.ctop.job.live.utils.Result;
  */
 public interface IKuaishouLiveAccountReportDailyService {
 
-    Result<Object> getKuaishouAccountReport(Long accountId, String token, int page);
+    Result<Object> getKuaishouAccountReport(Long accountId, String token);
+
+    void getKuaishouAccountHourReport(Long accountId, String token);
 }

+ 2 - 0
job-live/src/main/java/cn/com/ctop/job/live/service/IKuaishouLiveCampaignReportDailyService.java

@@ -11,4 +11,6 @@ import cn.com.ctop.job.live.utils.Result;
 public interface IKuaishouLiveCampaignReportDailyService {
 
     Result<Object> getKuaishouCampaignReport(Long accountId, String token, int page);
+
+    void getKuaishouCampaignHourReport(Long accountId, String token, int page);
 }

+ 2 - 0
job-live/src/main/java/cn/com/ctop/job/live/service/IKuaishouLiveUnitReportDailyService.java

@@ -11,4 +11,6 @@ import cn.com.ctop.job.live.utils.Result;
 public interface IKuaishouLiveUnitReportDailyService {
 
     Result<Object> getKuaishouUnitReport(Long accountId, String token, int page);
+
+    void getKuaishouUnitHourReport(Long valueOf, String token, int i);
 }

+ 43 - 2
job-live/src/main/java/cn/com/ctop/job/live/service/impl/KuaishouLiveAccountReportDailyServiceImpl.java

@@ -34,8 +34,8 @@ public class KuaishouLiveAccountReportDailyServiceImpl implements IKuaishouLiveA
     private KuaishouLiveAccountReportDailyMapper mapper;
 
     @Override
-    public Result<Object> getKuaishouAccountReport(Long accountId, String token, int page) {
-        log.info("调用接口---getKuaishouAccountReport(获取直播账户报表)---账户:{} ===第{}页===", accountId, page);
+    public Result<Object> getKuaishouAccountReport(Long accountId, String token) {
+        log.info("调用接口---getKuaishouAccountReport(获取直播账户报表)---账户:{}", accountId);
         Result<Object> result = new Result<>();
         Map<String, Object> param = new HashMap<String, Object>();
         param.put("advertiser_id", accountId);
@@ -72,4 +72,45 @@ public class KuaishouLiveAccountReportDailyServiceImpl implements IKuaishouLiveA
         return result.success("success");
     }
 
+    @Override
+    public void getKuaishouAccountHourReport(Long accountId, String token) {
+        log.info("调用接口---getKuaishouAccountReport(获取直播账户报表)---账户:{}", accountId);
+        Result<Object> result = new Result<>();
+        Map<String, Object> param = new HashMap<String, Object>();
+        param.put("advertiser_id", accountId);
+        JSONObject params = new JSONObject();
+        //当前小时数
+        Integer hourNumber = DateUtils.getHourNumber();
+        //当日当时整点时间
+        String date = DateUtils.getDate() + " " + hourNumber + ":00:00";
+        params.put("start_time", DateUtils.timeToStamp(date));
+        params.put("end_time", new Date().getTime());
+        params.put("view_type", 1);
+        params.put("group_type", 2);
+        JSONObject pageInfo = new JSONObject();
+        pageInfo.put("page", 1);
+        pageInfo.put("page_size", 2000);
+        param.put("page_info", pageInfo);
+        param.put("param", params);
+        JSONObject apiResult = APIUtil.getApiResult(KuaishouAPIConstant.REPORT_LIST, token, param);
+        if (apiResult.getInteger("code") == 0) {
+            apiResult = apiResult.getJSONObject("data");
+            JSONArray data = apiResult.getJSONArray("data");
+            List<KuaishouLiveAccountReportDaily> list = new ArrayList<>();
+            for (int i = 0; i < data.size(); i++) {
+                JSONObject object = data.getJSONObject(i);
+                KuaishouLiveAccountReportDaily accountReport = JSONObject.parseObject(object.toJSONString(), KuaishouLiveAccountReportDaily.class);
+                accountReport.setAccountId(accountId);
+                accountReport.setHour(hourNumber);
+                accountReport.setReportDate(Long.valueOf(DateUtils.timestampToStr(object.getLong("report_date"))));
+                list.add(accountReport);
+            }
+            if (!Check.isNull(list)) {
+                mapper.replaceBatchHour(list);
+            }
+        } else {
+            log.error("获取直播账户报表,账户{},{}", accountId, apiResult.toJSONString());
+        }
+    }
+
 }

+ 42 - 1
job-live/src/main/java/cn/com/ctop/job/live/service/impl/KuaishouLiveCampaignReportDailyServiceImpl.java

@@ -40,7 +40,7 @@ public class KuaishouLiveCampaignReportDailyServiceImpl implements IKuaishouLive
         Map<String, Object> param = new HashMap<String, Object>();
         param.put("advertiser_id", accountId);
         JSONObject params = new JSONObject();
-        String yesterday = DateUtils.getSubtractTime(new Date(), 0);
+        String yesterday = DateUtils.getSubtractTime(new Date(), 1);
 //        String yesterday = "2022-06-14";
         params.put("start_time", DateUtils.timeToStamp(yesterday + " 00:00:00"));
         params.put("end_time", DateUtils.timeToStamp(yesterday + " 23:23:59"));
@@ -71,4 +71,45 @@ public class KuaishouLiveCampaignReportDailyServiceImpl implements IKuaishouLive
         }
         return result.success("success");
     }
+
+    @Override
+    public void getKuaishouCampaignHourReport(Long accountId, String token, int page) {
+        log.info("调用接口---getKuaishouAccountReport(获取直播计划报表)---账户:{} ===第{}页===", accountId, page);
+        Result<Object> result = new Result<>();
+        Map<String, Object> param = new HashMap<String, Object>();
+        param.put("advertiser_id", accountId);
+        JSONObject params = new JSONObject();
+        //当前小时数
+        Integer hourNumber = DateUtils.getHourNumber();
+        //当日当时整点时间
+        String date = DateUtils.getDate() + " " + hourNumber + ":00:00";
+        params.put("start_time", DateUtils.timeToStamp(date));
+        params.put("end_time", new Date().getTime());
+        params.put("view_type", 2);
+        params.put("group_type", 2);
+        JSONObject pageInfo = new JSONObject();
+        pageInfo.put("page", 1);
+        pageInfo.put("page_size", 2000);
+        param.put("page_info", pageInfo);
+        param.put("param", params);
+        JSONObject apiResult = APIUtil.getApiResult(KuaishouAPIConstant.REPORT_LIST, token, param);
+        if (apiResult.getInteger("code") == 0) {
+            apiResult = apiResult.getJSONObject("data");
+            JSONArray data = apiResult.getJSONArray("data");
+            List<KuaishouLiveCampaignReportDaily> list = new ArrayList<>();
+            for (int i = 0; i < data.size(); i++) {
+                JSONObject object = data.getJSONObject(i);
+                KuaishouLiveCampaignReportDaily campaignReport = JSONObject.parseObject(object.toJSONString(), KuaishouLiveCampaignReportDaily.class);
+                campaignReport.setAccountId(accountId);
+                campaignReport.setHour(hourNumber);
+                campaignReport.setReportDate(Long.valueOf(DateUtils.timestampToStr(object.getLong("report_date"))));
+                list.add(campaignReport);
+            }
+            if (!Check.isNull(list)) {
+                mapper.replaceBatchHour(list);
+            }
+        } else {
+            log.error("获取直播计划报表,账户{},{}", accountId, apiResult.toJSONString());
+        }
+    }
 }

+ 1 - 1
job-live/src/main/java/cn/com/ctop/job/live/service/impl/KuaishouLiveCreativeReportDailyServiceImpl.java

@@ -40,7 +40,7 @@ public class KuaishouLiveCreativeReportDailyServiceImpl implements IKuaishouLive
         Map<String, Object> param = new HashMap<String, Object>();
         param.put("advertiser_id", accountId);
         JSONObject params = new JSONObject();
-        String yesterday = DateUtils.getSubtractTime(new Date(), 0);
+        String yesterday = DateUtils.getSubtractTime(new Date(), 1);
 //        String yesterday = "2022-06-14";
         params.put("start_time", DateUtils.timeToStamp(yesterday + " 00:00:00"));
         params.put("end_time", DateUtils.timeToStamp(yesterday + " 23:23:59"));

+ 42 - 1
job-live/src/main/java/cn/com/ctop/job/live/service/impl/KuaishouLiveUnitReportDailyServiceImpl.java

@@ -40,7 +40,7 @@ public class KuaishouLiveUnitReportDailyServiceImpl implements IKuaishouLiveUnit
         Map<String, Object> param = new HashMap<String, Object>();
         param.put("advertiser_id", accountId);
         JSONObject params = new JSONObject();
-        String yesterday = DateUtils.getSubtractTime(new Date(), 0);
+        String yesterday = DateUtils.getSubtractTime(new Date(), 1);
 //        String yesterday = "2022-06-14";
         params.put("start_time", DateUtils.timeToStamp(yesterday + " 00:00:00"));
         params.put("end_time", DateUtils.timeToStamp(yesterday + " 23:23:59"));
@@ -71,4 +71,45 @@ public class KuaishouLiveUnitReportDailyServiceImpl implements IKuaishouLiveUnit
         }
         return result.success("success");
     }
+
+    @Override
+    public void getKuaishouUnitHourReport(Long accountId, String token, int page) {
+        log.info("调用接口---getKuaishouAccountReport(获取直播广告组报表)---账户:{} ===第{}页===", accountId, page);
+        Result<Object> result = new Result<>();
+        Map<String, Object> param = new HashMap<String, Object>();
+        param.put("advertiser_id", accountId);
+        JSONObject params = new JSONObject();
+        //当前小时数
+        Integer hourNumber = DateUtils.getHourNumber();
+        //当日当时整点时间
+        String date = DateUtils.getDate() + " " + hourNumber + ":00:00";
+        params.put("start_time", DateUtils.timeToStamp(date));
+        params.put("end_time", new Date().getTime());
+        params.put("view_type", 3);
+        params.put("group_type", 2);
+        JSONObject pageInfo = new JSONObject();
+        pageInfo.put("page", 1);
+        pageInfo.put("page_size", 2000);
+        param.put("page_info", pageInfo);
+        param.put("param", params);
+        JSONObject apiResult = APIUtil.getApiResult(KuaishouAPIConstant.REPORT_LIST, token, param);
+        if (apiResult.getInteger("code") == 0) {
+            apiResult = apiResult.getJSONObject("data");
+            JSONArray data = apiResult.getJSONArray("data");
+            List<KuaishouLiveUnitReportDaily> list = new ArrayList<>();
+            for (int i = 0; i < data.size(); i++) {
+                JSONObject object = data.getJSONObject(i);
+                KuaishouLiveUnitReportDaily unitReport = JSONObject.parseObject(object.toJSONString(), KuaishouLiveUnitReportDaily.class);
+                unitReport.setAccountId(accountId);
+                unitReport.setHour(hourNumber);
+                unitReport.setReportDate(Long.valueOf(DateUtils.timestampToStr(object.getLong("report_date"))));
+                list.add(unitReport);
+            }
+            if (!Check.isNull(list)) {
+                mapper.replaceBatchHour(list);
+            }
+        } else {
+            log.error("获取直播广告组报表,账户{},{}", accountId, apiResult.toJSONString());
+        }
+    }
 }

+ 11 - 0
job-live/src/main/java/cn/com/ctop/job/live/utils/DateUtils.java

@@ -12,6 +12,7 @@ import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.GregorianCalendar;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -300,4 +301,14 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
         date.setTime(timestamp);
         return (DateFormatUtils.format(date, YYYYMMDD));
     }
+
+    /**
+     * 获取当前小时数
+     */
+    public static Integer getHourNumber() {
+        GregorianCalendar calendar = new GregorianCalendar();
+        return calendar.get(Calendar.HOUR_OF_DAY);
+    }
+
+
 }