Browse Source

视频列表

yumeng 4 years ago
parent
commit
6b0a233d7d
20 changed files with 1497 additions and 947 deletions
  1. 12 4
      job-kuaishou/pom.xml
  2. 11 8
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/constant/KuaishouConstant.java
  3. 116 0
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/entity/KuaishouVideoList.java
  4. 108 0
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/enums/MaterialEnum.java
  5. 19 0
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/mapper/KuaishouVideoListMapper.java
  6. 41 0
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/mapper/xml/KuaishouVideoListMapper.xml
  7. 15 0
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/IKuaishouVideoListService.java
  8. 179 179
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouAccountReportDailyServiceImpl.java
  9. 171 171
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouAccountReportHourlyServiceImpl.java
  10. 180 181
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouCampaignReportDailyServiceImpl.java
  11. 178 177
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouCampaignReportHourlyServiceImpl.java
  12. 7 9
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouCreativeReportDailyServiceImpl.java
  13. 5 8
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouMaterialVideoReportDailyServiceImpl.java
  14. 5 10
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouMaterialVideoReportHourlyServiceImpl.java
  15. 5 9
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouProgramCreativeReportDailyServiceImpl.java
  16. 179 182
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouUnitReportDailyServiceImpl.java
  17. 6 9
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouUnitReportHourlyServiceImpl.java
  18. 121 0
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouVideoListServiceImpl.java
  19. 110 0
      job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/VideoListJob.java
  20. 29 0
      job-kuaishou/src/test/java/cn/com/ctop/job/kuaishou/SampleTest.java

+ 12 - 4
job-kuaishou/pom.xml

@@ -26,7 +26,11 @@
             <artifactId>springfox-swagger2</artifactId>
             <version>2.9.2</version>
         </dependency>
-
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>com.github.xiaoymin</groupId>
             <artifactId>swagger-bootstrap-ui</artifactId>
@@ -74,21 +78,25 @@
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>${mybatis-plus.version}</version>
         </dependency>
-
         <!-- druid -->
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>druid-spring-boot-starter</artifactId>
             <version>${druid.version}</version>
         </dependency>
-
         <!-- 动态数据源 -->
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
             <version>2.5.4</version>
         </dependency>
-
+        <!-- junit -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+            <scope>test</scope>
+        </dependency>
         <!-- json -->
         <dependency>
             <groupId>com.alibaba</groupId>

+ 11 - 8
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/constant/KuaishouConstant.java

@@ -2,13 +2,16 @@ package cn.com.ctop.job.kuaishou.data.constant;
 
 public class KuaishouConstant {
 
-  /** 报表 */
-  public static final String ACCOUNT_REPORT = "/rest/openapi/v1/report/account_report";
-  public static final String CAMPAIGN_REPORT = "/rest/openapi/v1/report/campaign_report";
-  public static final String UNIT_REPORT = "/rest/openapi/v1/report/unit_report";
-  public static final String CREATIVE_REPORT = "/rest/openapi/v1/report/creative_report";
-  public static final String PROGRAM_CREATIVE_REPORT = "/rest/openapi/v1/report/program_creative_report";
-  public static final String MATERIAL_REPORT = "/rest/openapi/v1/report/material_report";
-  public static final String SEND_URL = "http://192.168.0.202:8765/webhook/account_report";
+    /**
+     * 报表
+     */
+    public static final String ACCOUNT_REPORT = "/rest/openapi/v1/report/account_report";
+    public static final String CAMPAIGN_REPORT = "/rest/openapi/v1/report/campaign_report";
+    public static final String UNIT_REPORT = "/rest/openapi/v1/report/unit_report";
+    public static final String CREATIVE_REPORT = "/rest/openapi/v1/report/creative_report";
+    public static final String PROGRAM_CREATIVE_REPORT = "/rest/openapi/v1/report/program_creative_report";
+    public static final String MATERIAL_REPORT = "/rest/openapi/v1/report/material_report";
+    public static final String SEND_URL = "http://192.168.0.202:8765/webhook/account_report";
+    public static final String VIDEO_LIST = "/rest/openapi/v1/file/ad/video/list";
 
 }

+ 116 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/entity/KuaishouVideoList.java

@@ -0,0 +1,116 @@
+package cn.com.ctop.job.kuaishou.data.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.util.Date;
+
+/**
+ * 快手-素材列表
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2021-09-28
+ */
+@Data
+@TableName("kuaishou_video_list")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "kuaishou_video_list对象", description = "快手-素材列表")
+public class KuaishouVideoList {
+
+    /**
+     * 账户ID
+     */
+    @Excel(name = "账户ID", width = 15)
+    @ApiModelProperty(value = "账户ID")
+    private Long accountId;
+    /**
+     * 0 可用 1 删除
+     */
+    @Excel(name = "0 可用 1 删除", width = 15)
+    @ApiModelProperty(value = "0 可用 1 删除")
+    private Integer status;
+    /**
+     * 视频id
+     */
+    @Excel(name = "视频id", width = 15)
+    @ApiModelProperty(value = "视频id")
+    private String photoId;
+    /**
+     * 宽
+     */
+    @Excel(name = "宽", width = 15)
+    @ApiModelProperty(value = "宽")
+    private Integer width;
+    /**
+     * 高
+     */
+    @Excel(name = "高", width = 15)
+    @ApiModelProperty(value = "高")
+    private Integer height;
+    /**
+     * 视频预览链接
+     */
+    @Excel(name = "视频预览链接", width = 15)
+    @ApiModelProperty(value = "视频预览链接")
+    private String url;
+    /**
+     * 视频首帧图片链接
+     */
+    @Excel(name = "视频首帧图片链接", width = 15)
+    @ApiModelProperty(value = "视频首帧图片链接")
+    private String coverUrl;
+    /**
+     * 1 竖版视频 2 横版视频
+     */
+    @Excel(name = "1 竖版视频 2 横版视频", width = 15)
+    @ApiModelProperty(value = "1 竖版视频 2 横版视频")
+    private Integer materialType;
+    /**
+     * 0:自产 1:素造
+     */
+    @Excel(name = "0:自产 1:素造", width = 15)
+    @ApiModelProperty(value = "0:自产 1:素造")
+    private Integer channelType;
+    /**
+     * statDate
+     */
+    @ApiModelProperty(value = "statDate")
+    private Date statDate;
+    /**
+     * MD5值
+     */
+    @Excel(name = "MD5值", width = 15)
+    @ApiModelProperty(value = "MD5值")
+    private String signature;
+    /**
+     * 素材名称
+     */
+    @Excel(name = "素材名称", width = 15)
+    @ApiModelProperty(value = "素材名称")
+    private String photoName;
+    /**
+     * 素造素材标签
+     */
+    @Excel(name = "素造素材标签", width = 15)
+    @ApiModelProperty(value = "素造素材标签")
+    private String materialTag;
+    /**
+     * 素造供应商id
+     */
+    @Excel(name = "素造供应商id", width = 15)
+    @ApiModelProperty(value = "素造供应商id")
+    private Integer supplierAccountId;
+    /**
+     * 供应商名称
+     */
+    @Excel(name = "供应商名称", width = 15)
+    @ApiModelProperty(value = "供应商名称")
+    private String supplierAccountName;
+}

+ 108 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/enums/MaterialEnum.java

@@ -0,0 +1,108 @@
+package cn.com.ctop.job.kuaishou.data.enums;
+
+/**
+ * 素材类型
+ */
+public enum MaterialEnum {
+
+
+    VerticalVideoSmall(1, 720, 1280),
+    VerticalVideo787Small(1, 787, 1280),
+    VerticalVideo846Small(1, 846, 1536),
+    VerticalVideo1080mall(1, 1080, 2200),
+    VerticalVideoBig(1, 1080, 1920),
+    VerticalVideo360(1, 360, 640),
+    VerticalVideo362(1, 362, 640),
+    VerticalVideo368(1, 368, 490),
+    VerticalVideo363(1, 363, 640),
+    VerticalVideo438(1, 438, 640),
+    VerticalVideo480(1, 480, 640),
+    VerticalVideo525(1, 525, 640),
+    VerticalVideo540(1, 540, 960),
+    VerticalVideo544(1, 544, 726),
+    VerticalVideo590(1, 590, 1280),
+    VerticalVideo694(1, 694, 1236),
+    VerticalVideo704(1, 704, 1252),
+    VerticalVideo710(1, 710, 1264),
+    VerticalVideo714(1, 714, 1270),
+    VerticalVideo716(1, 716, 1276),
+    VerticalVideo718(1, 718, 1278),
+    VerticalVideo719(1, 719, 1170),
+    VerticalVideo720(1, 720, 960),
+    VerticalVideo750(1, 750, 1334),
+    VerticalVideo787(1, 787, 1280),
+    VerticalVideo864(1, 864, 1536),
+    VerticalVideo1088(1, 1088, 1920),
+    VerticalVideo1181(1, 1181, 1920),
+    VerticalVideo1216(1, 1216, 2160),
+    VerticalVideo1296(1, 1296, 2304),
+    VerticalVideo1440(1, 1440, 2560),
+    VerticalVideo2160(1, 2160, 3840),
+    HorizontalVideoSmall(2, 1280, 720),
+    HorizontalVideoBig(2, 1920, 1080),
+    HorizontalVideo640(2, 640, 368),
+    HorizontalVideo1281(2, 1281, 720),
+    HorizontalVideo1400(2, 1400, 720),
+    HorizontalVideo1700(2, 1700, 1080),
+    HorizontalVideo1902(2, 1902, 1080),
+    HorizontalVideo1920(2, 1920, 1080),
+    BianlitieImageBig(4, 540, 540),
+    BianLitieImageSmall(4, 450, 450);
+
+    private Integer type;
+    private Integer width;
+    private Integer height;
+
+
+    private MaterialEnum(Integer type, Integer width, Integer height) {
+        this.type = type;
+        this.width = width;
+        this.height = height;
+    }
+
+    public static Integer getTypeBySize(Integer widthStr, Integer heightStr) {
+        for (MaterialEnum material : MaterialEnum.values()) {
+            Integer width = material.getWidth();
+            Integer height = material.getHeight();
+            if (widthStr.equals(width) && heightStr.equals(height)) {
+                return material.getType();
+            }
+        }
+
+        return 1;
+    }
+
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getWidth() {
+        return width;
+    }
+
+    public void setWidth(Integer width) {
+        this.width = width;
+    }
+
+    public Integer getHeight() {
+        return height;
+    }
+
+    public void setHeight(Integer height) {
+        this.height = height;
+    }
+
+    @Override
+    public String toString() {
+        return "MaterialEnum{" +
+                "type=" + type +
+                ", width=" + width +
+                ", height=" + height +
+                '}';
+    }
+}

+ 19 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/mapper/KuaishouVideoListMapper.java

@@ -0,0 +1,19 @@
+package cn.com.ctop.job.kuaishou.data.mapper;
+
+import cn.com.ctop.job.kuaishou.data.entity.KuaishouVideoList;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 快手-素材列表
+ *
+ * @author jeecg-boot
+ * 2021-09-28
+ * @version V1.0
+ */
+public interface KuaishouVideoListMapper extends BaseMapper<KuaishouVideoList> {
+
+    void replaceBatch(@Param("addList") List<KuaishouVideoList> videoGetList);
+}

+ 41 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/mapper/xml/KuaishouVideoListMapper.xml

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.job.kuaishou.data.mapper.KuaishouVideoListMapper">
+
+    <insert id="replaceBatch">
+        replace into kuaishou_video_list(
+        `account_id`,
+        `status`,
+        `photo_id`,
+        `width`,
+        `height`,
+        `url`,
+        `cover_url`,
+        `material_type`,
+        `channel_type`,
+        `stat_date`,
+        `signature`,
+        `photo_name`,
+        `material_tag`
+        )
+        values
+        <foreach collection="addList" item="add" separator=",">
+            (
+            #{add.accountId},
+            #{add.status},
+            #{add.photoId},
+            #{add.width},
+            #{add.height},
+            #{add.url},
+            #{add.coverUrl},
+            #{add.materialType},
+            #{add.channelType},
+            #{add.statDate},
+            #{add.signature},
+            #{add.photoName},
+            #{add.materialTag}
+            )
+        </foreach>
+
+    </insert>
+</mapper>

+ 15 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/IKuaishouVideoListService.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.job.kuaishou.data.service;
+
+import cn.com.ctop.job.kuaishou.data.entity.KuaishouVideoList;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 快手-素材列表
+ *
+ * @author jeecg-boot
+ * 2021-09-28
+ * @version V1.0
+ */
+public interface IKuaishouVideoListService extends IService<KuaishouVideoList> {
+    void getVideoList(Long advertiserId, String accessToken, String startDate, String endDate, int page);
+}

+ 179 - 179
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouAccountReportDailyServiceImpl.java

@@ -27,188 +27,188 @@ import java.util.Map;
  */
 @Slf4j
 @Service
-public class KuaishouAccountReportDailyServiceImpl
-    extends ServiceImpl<KuaishouAccountReportDailyMapper, KuaishouAccountReportDaily>
-    implements IKuaishouAccountReportDailyService {
+public class KuaishouAccountReportDailyServiceImpl extends ServiceImpl<KuaishouAccountReportDailyMapper, KuaishouAccountReportDaily> implements IKuaishouAccountReportDailyService {
 
-  @Autowired private KuaishouAccountReportDailyMapper accountReportDailyMapper;
+    @Autowired
+    private KuaishouAccountReportDailyMapper accountReportDailyMapper;
 
-  @Value("${api.kuaishou.postUrl}")
-  private String postUrl;
+    @Value("${api.kuaishou.postUrl}")
+    private String postUrl;
 
-  @Override
-  public void getAdvertiserReportDaily(Long advertiserId, String accessToken, String startDate, String endDate, int page) {
-    String url = postUrl + KuaishouConstant.ACCOUNT_REPORT;
-    Map<String, String> headers = new HashMap<>();
-    headers.put("Access-Token", accessToken);
-    Map<String, Object> param = new HashMap<>();
-    param.put("start_date", startDate);
-    param.put("end_date", endDate);
-    param.put("advertiser_id", advertiserId);
-    param.put("temporal_granularity", "DAILY");
-    param.put("page_size", 2000);
-    param.put("page", page);
-    String result = HttpUtils.httpPostRequest(url, param, headers);
-    JSONObject resultJson = JSONObject.parseObject(result);
-    Integer code = resultJson.getInteger("code");
-    String message = resultJson.getString("message");
-    if (null == code || code != 0) {
-      log.error("获取快手广告主日报表异常:{},accountId:{}", message, advertiserId);
-      return;
+    @Override
+    public void getAdvertiserReportDaily(Long advertiserId, String accessToken, String startDate, String endDate, int page) {
+        String url = postUrl + KuaishouConstant.ACCOUNT_REPORT;
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Access-Token", accessToken);
+        Map<String, Object> param = new HashMap<>();
+        param.put("start_date", startDate);
+        param.put("end_date", endDate);
+        param.put("advertiser_id", advertiserId);
+        param.put("temporal_granularity", "DAILY");
+        param.put("page_size", 2000);
+        param.put("page", page);
+        String result = HttpUtils.httpPostRequest(url, param, headers);
+        JSONObject resultJson = JSONObject.parseObject(result);
+        Integer code = resultJson.getInteger("code");
+        String message = resultJson.getString("message");
+        if (null == code || code != 0) {
+            log.error("获取快手广告主日报表异常:{},accountId:{}", message, advertiserId);
+            return;
+        }
+        JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
+        if (null == details || details.size() <= 0) {
+            log.error("快手日报返回详情为空,accountId:{}", advertiserId);
+            return;
+        }
+        List<KuaishouAccountReportDaily> addList = new ArrayList<>();
+        for (int i = 0; i < details.size(); i++) {
+            JSONObject returnJson = details.getJSONObject(i);
+            KuaishouAccountReportDaily reportDaily = new KuaishouAccountReportDaily();
+            reportDaily.setAdvertiserId(advertiserId);
+            reportDaily.setStatDate(DateUtils.getDateInteger(returnJson.getString("stat_date")));
+            reportDaily.setCharge(returnJson.getBigDecimal("charge"));
+            reportDaily.setShow(returnJson.getLong("show"));
+            reportDaily.setPhotoClick(returnJson.getLong("photo_click"));
+            reportDaily.setAclick(returnJson.getLong("aclick"));
+            reportDaily.setBclick(returnJson.getLong("bclick"));
+            reportDaily.setPhotoClickRatio(returnJson.getBigDecimal("photo_click_ratio"));
+            reportDaily.setPlay3sRatio(returnJson.getBigDecimal("play_3s_ratio"));
+            reportDaily.setActionRatio(returnJson.getBigDecimal("action_ratio"));
+            reportDaily.setImpression1kCost(returnJson.getBigDecimal("impression_1k_cost"));
+            reportDaily.setPhotoClickCost(returnJson.getBigDecimal("photo_click_cost"));
+            reportDaily.setActionCost(returnJson.getBigDecimal("action_cost"));
+            reportDaily.setShare(returnJson.getLong("share"));
+            reportDaily.setComment(returnJson.getLong("comment"));
+            reportDaily.setLike(returnJson.getLong("like"));
+            reportDaily.setFollow(returnJson.getLong("follow"));
+            reportDaily.setCancelFollow(returnJson.getLong("cancel_follow"));
+            reportDaily.setReport(returnJson.getLong("report"));
+            reportDaily.setBlock(returnJson.getLong("block"));
+            reportDaily.setNegative(returnJson.getLong("negative"));
+            reportDaily.setSubmit(returnJson.getLong("submit"));
+            reportDaily.setDownloadStarted(returnJson.getLong("download_started"));
+            reportDaily.setDownloadCompleted(returnJson.getLong("download_completed"));
+            reportDaily.setActivation(returnJson.getLong("activation"));
+            reportDaily.setEventPayFirstDay(returnJson.getLong("event_pay_first_day"));
+            reportDaily.setEventPayPurchaseAmountFirstDay(returnJson.getBigDecimal("event_pay_purchase_amount_first_day"));
+            reportDaily.setEventPayFirstDayRoi(returnJson.getBigDecimal("event_pay_first_day_roi"));
+            reportDaily.setEventPay(returnJson.getLong("event_pay"));
+            reportDaily.setEventPayPurchaseAmount(returnJson.getBigDecimal("event_pay_purchase_amount"));
+            reportDaily.setEventPayRoi(returnJson.getBigDecimal("event_pay_roi"));
+            reportDaily.setEventRegister(returnJson.getLong("event_register"));
+            reportDaily.setEventRegisterCost(returnJson.getBigDecimal("event_register_cost"));
+            reportDaily.setEventRegisterRatio(returnJson.getBigDecimal("event_register_ratio"));
+            reportDaily.setEventJinJianApp(returnJson.getLong("event_jin_jian_app"));
+            reportDaily.setEventJinJianAppCost(returnJson.getBigDecimal("event_jin_jian_app_cost"));
+            reportDaily.setEventCreditGrantApp(returnJson.getLong("event_credit_grant_app"));
+            reportDaily.setEventCreditGrantAppCost(returnJson.getBigDecimal("event_credit_grant_app_cost"));
+            reportDaily.setEventCreditGrantAppRatio(returnJson.getBigDecimal("event_credit_grant_app_ratio"));
+            reportDaily.setEventOrderPaid(returnJson.getLong("event_order_paid"));
+            reportDaily.setEventOrderPaidPurchaseAmount(returnJson.getBigDecimal("event_order_paid_purchase_amount"));
+            reportDaily.setEventOrderPaidCost(returnJson.getBigDecimal("event_order_paid_cost"));
+            reportDaily.setEventNextDayStay(returnJson.getLong("event_next_day_stay"));
+            reportDaily.setEventNextDayStayCost(returnJson.getBigDecimal("event_next_day_stay_cost"));
+            reportDaily.setEventNextDayStayRatio(returnJson.getBigDecimal("event_next_day_stay_ratio"));
+            reportDaily.setFormCount(returnJson.getLong("form_count"));
+            reportDaily.setFormCost(returnJson.getBigDecimal("form_cost"));
+            reportDaily.setFormActionRatio(returnJson.getBigDecimal("form_action_ratio"));
+            reportDaily.setEventJinJianLandingPage(returnJson.getLong("event_jin_jian_landing_page"));
+            reportDaily.setEventJinJianLandingPageCost(returnJson.getBigDecimal("event_jin_jian_landing_page_cost"));
+            reportDaily.setEventCreditGrantLandingPage(returnJson.getLong("event_credit_grant_landing_page"));
+            reportDaily.setEventCreditGrantLandingPageCost(returnJson.getBigDecimal("event_credit_grant_landing_page_cost"));
+            reportDaily.setEventCreditGrantLandingPageRatio(returnJson.getBigDecimal("event_credit_grant_landing_page_ratio"));
+            reportDaily.setEventValidClues(returnJson.getLong("event_valid_clues"));
+            reportDaily.setEventValidCluesCost(returnJson.getBigDecimal("event_valid_clues_cost"));
+            reportDaily.setEventAddWechat(returnJson.getLong("event_add_wechat"));
+            reportDaily.setEventAddWechatCost(returnJson.getBigDecimal("event_add_wechat_cost"));
+            reportDaily.setEventAddWechatRatio(returnJson.getBigDecimal("event_add_wechat_ratio"));
+            reportDaily.setEventGetThrough(returnJson.getLong("event_get_through"));
+            reportDaily.setEventGetThroughCost(returnJson.getBigDecimal("event_get_through_cost"));
+            reportDaily.setEventGetThroughRatio(returnJson.getBigDecimal("event_get_through_ratio"));
+            reportDaily.setEventAppInvoked(returnJson.getLong("event_app_invoked"));
+            reportDaily.setEventAppInvokedCost(returnJson.getBigDecimal("event_app_invoked_cost"));
+            reportDaily.setEventAppInvokedRatio(returnJson.getBigDecimal("event_app_invoked_ratio"));
+            reportDaily.setEventCreditGrantLandingRatio(returnJson.getBigDecimal("event_credit_grant_landing_ratio"));
+            reportDaily.setPlay5sRatio(returnJson.getBigDecimal("play_5s_ratio"));
+            reportDaily.setPlayEndRatio(returnJson.getBigDecimal("play_end_ratio"));
+            reportDaily.setEventNewUserPay(returnJson.getBigDecimal("event_new_user_pay"));
+            reportDaily.setEventNewUserPayCost(returnJson.getBigDecimal("event_new_user_pay_cost"));
+            reportDaily.setEventNewUserPayRatio(returnJson.getBigDecimal("event_new_user_pay_ratio"));
+            reportDaily.setClick1kCost(returnJson.getBigDecimal("click_1k_cost"));
+            reportDaily.setAdProductCnt(returnJson.getLong("ad_product_cnt"));
+            reportDaily.setEventGoodsView(returnJson.getLong("event_goods_view"));
+            reportDaily.setMerchantRecoFans(returnJson.getLong("merchant_reco_fans"));
+            reportDaily.setEventGoodsViewCost(returnJson.getBigDecimal("event_goods_view_cost"));
+            reportDaily.setMerchantRecoFansCost(returnJson.getBigDecimal("merchant_reco_fans_cost"));
+            reportDaily.setEventOrderAmountRoi(returnJson.getBigDecimal("event_order_amount_roi"));
+            reportDaily.setEventButtonClick(returnJson.getLong("event_button_click"));
+            reportDaily.setEventButtonClickCost(returnJson.getBigDecimal("event_button_click_cost"));
+            reportDaily.setEventButtonClickRatio(returnJson.getBigDecimal("event_button_click_ratio"));
+            reportDaily.setEventOrderPaidRoi(returnJson.getBigDecimal("event_order_paid_roi"));
+            reportDaily.setEventNewUserJinjianApp(returnJson.getLong("event_new_user_jinjian_app"));
+            reportDaily.setEventNewUserJinjianAppCost(returnJson.getBigDecimal("event_new_user_jinjian_app_cost"));
+            reportDaily.setEventNewUserJinjianAppRoi(returnJson.getBigDecimal("event_new_user_jinjian_app_roi"));
+            reportDaily.setEventNewUserCreditGrantApp(returnJson.getLong("event_new_user_credit_grant_app"));
+            reportDaily.setEventNewUserCreditGrantAppCost(returnJson.getBigDecimal("event_new_user_credit_grant_app_cost"));
+            reportDaily.setEventNewUserCreditGrantAppRoi(returnJson.getBigDecimal("event_new_user_credit_grant_app_roi"));
+            reportDaily.setEventNewUserJinjianPage(returnJson.getLong("event_new_user_jinjian_page"));
+            reportDaily.setEventNewUserJinjianPageCost(returnJson.getBigDecimal("event_new_user_jinjian_page_cost"));
+            reportDaily.setEventNewUserJinjianPageRoi(returnJson.getBigDecimal("event_new_user_jinjian_page_roi"));
+            reportDaily.setEventNewUserCreditGrantPage(returnJson.getLong("event_new_user_credit_grant_page"));
+            reportDaily.setEventNewUserCreditGrantPageCost(returnJson.getBigDecimal("event_new_user_credit_grant_page_cost"));
+            reportDaily.setEventNewUserCreditGrantPageRoi(returnJson.getBigDecimal("event_new_user_credit_grant_page_roi"));
+            reportDaily.setEventAppointForm(returnJson.getLong("event_appoint_form"));
+            reportDaily.setEventAppointFormCost(returnJson.getBigDecimal("event_appoint_form_cost"));
+            reportDaily.setEventAppointFormRatio(returnJson.getBigDecimal("event_appoint_form_ratio"));
+            reportDaily.setEventAppointJumpClick(returnJson.getLong("event_appoint_jump_click"));
+            reportDaily.setEventAppointJumpClickCost(returnJson.getBigDecimal("event_appoint_jump_click_cost"));
+            reportDaily.setEventAppointJumpClickRatio(returnJson.getBigDecimal("event_appoint_jump_click_ratio"));
+            reportDaily.setUnionEventPayPurchaseAmount7d(returnJson.getLong("union_event_pay_purchase_amount_7d"));
+            reportDaily.setUnionEventPayPurchaseAmount7dRoi(returnJson.getBigDecimal("union_event_pay_purchase_amount_7d_roi"));
+            reportDaily.setPlacementType(returnJson.getString("placement_type"));
+            reportDaily.setAdScene(returnJson.getString("ad_scene"));
+            reportDaily.setEventOrderSuccessed(returnJson.getLong("event_order_successed"));
+            reportDaily.setAdPhotoPlayed10sRatio(returnJson.getBigDecimal("ad_photo_played_10s_ratio"));
+            reportDaily.setKeyActionCost(returnJson.getBigDecimal("key_action_cost"));
+            reportDaily.setEventAddShoppingCartCost(returnJson.getBigDecimal("event_add_shopping_cart_cost"));
+            reportDaily.setEventAdWatchTimesRatio(returnJson.getBigDecimal("event_ad_watch_times_ratio"));
+            reportDaily.setEventOutboundCallCost(returnJson.getBigDecimal("event_outbound_call_cost"));
+            reportDaily.setEventOutboundCall(returnJson.getLong("event_outbound_call"));
+            reportDaily.setActionNewRatio(returnJson.getBigDecimal("action_new_ratio"));
+            reportDaily.setEventWatchAppAd(returnJson.getLong("event_watch_app_ad"));
+            reportDaily.setEventMultiConversionCost(returnJson.getBigDecimal("event_multi_conversion_cost"));
+            reportDaily.setEventPhoneCardActivate(returnJson.getLong("event_phone_card_activate"));
+            reportDaily.setAdPhotoPlayed75percentRatio(returnJson.getBigDecimal("ad_photo_played_75percent_ratio"));
+            reportDaily.setKeyActionRatio(returnJson.getBigDecimal("key_action_ratio"));
+            reportDaily.setEventAdWatchTimesCost(returnJson.getBigDecimal("event_ad_watch_times_cost"));
+            reportDaily.setEventAddShoppingCart(returnJson.getLong("event_add_shopping_cart"));
+            reportDaily.setKeyAction(returnJson.getLong("key_action"));
+            reportDaily.setEventMultiConversion(returnJson.getLong("event_multi_conversion"));
+            reportDaily.setEventWechatConnected(returnJson.getLong("event_wechat_connected"));
+            reportDaily.setEventDspGiftForm(returnJson.getLong("event_dsp_gift_form"));
+            reportDaily.setEventIntentionConfirmed(returnJson.getLong("event_intention_confirmed"));
+            reportDaily.setEventPhoneGetThrough(returnJson.getLong("event_phone_get_through"));
+            reportDaily.setEventMultiConversionRatio(returnJson.getBigDecimal("event_multi_conversion_ratio"));
+            reportDaily.setEventMeasurementHouse(returnJson.getBigDecimal("event_measurement_house"));
+            reportDaily.setAdPhotoPlayed2sRatio(returnJson.getBigDecimal("ad_photo_played_2s_ratio"));
+            reportDaily.setEventOutboundCallRatio(returnJson.getBigDecimal("event_outbound_call_ratio"));
+            reportDaily.setEventAdWatchTimes(returnJson.getLong("event_ad_watch_times"));
+            addList.add(reportDaily);
+        }
+        accountReportDailyMapper.replaceBatch(addList);
+        sendMessage(advertiserId, startDate, endDate, "daily");
+        log.info("账户日报数据获取完成:accountId:{}", advertiserId);
     }
-    JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
-    if (null == details || details.size() <= 0) {
-      log.error("快手日报返回详情为空,accountId:{}", advertiserId);
-      return;
-    }
-    List<KuaishouAccountReportDaily> addList = new ArrayList<>();
-    for (int i = 0; i < details.size(); i++) {
-      JSONObject returnJson = details.getJSONObject(i);
-      KuaishouAccountReportDaily reportDaily = new KuaishouAccountReportDaily();
-      reportDaily.setAdvertiserId(advertiserId);
-      reportDaily.setStatDate(DateUtils.getDateInteger(returnJson.getString("stat_date")));
-      reportDaily.setCharge(returnJson.getBigDecimal("charge"));
-      reportDaily.setShow(returnJson.getLong("show"));
-      reportDaily.setPhotoClick(returnJson.getLong("photo_click"));
-      reportDaily.setAclick(returnJson.getLong("aclick"));
-      reportDaily.setBclick(returnJson.getLong("bclick"));
-      reportDaily.setPhotoClickRatio(returnJson.getBigDecimal("photo_click_ratio"));
-      reportDaily.setPlay3sRatio(returnJson.getBigDecimal("play_3s_ratio"));
-      reportDaily.setActionRatio(returnJson.getBigDecimal("action_ratio"));
-      reportDaily.setImpression1kCost(returnJson.getBigDecimal("impression_1k_cost"));
-      reportDaily.setPhotoClickCost(returnJson.getBigDecimal("photo_click_cost"));
-      reportDaily.setActionCost(returnJson.getBigDecimal("action_cost"));
-      reportDaily.setShare(returnJson.getLong("share"));
-      reportDaily.setComment(returnJson.getLong("comment"));
-      reportDaily.setLike(returnJson.getLong("like"));
-      reportDaily.setFollow(returnJson.getLong("follow"));
-      reportDaily.setCancelFollow(returnJson.getLong("cancel_follow"));
-      reportDaily.setReport(returnJson.getLong("report"));
-      reportDaily.setBlock(returnJson.getLong("block"));
-      reportDaily.setNegative(returnJson.getLong("negative"));
-      reportDaily.setSubmit(returnJson.getLong("submit"));
-      reportDaily.setDownloadStarted(returnJson.getLong("download_started"));
-      reportDaily.setDownloadCompleted(returnJson.getLong("download_completed"));
-      reportDaily.setActivation(returnJson.getLong("activation"));
-      reportDaily.setEventPayFirstDay(returnJson.getLong("event_pay_first_day"));
-      reportDaily.setEventPayPurchaseAmountFirstDay(returnJson.getBigDecimal("event_pay_purchase_amount_first_day"));
-      reportDaily.setEventPayFirstDayRoi(returnJson.getBigDecimal("event_pay_first_day_roi"));
-      reportDaily.setEventPay(returnJson.getLong("event_pay"));
-      reportDaily.setEventPayPurchaseAmount(returnJson.getBigDecimal("event_pay_purchase_amount"));
-      reportDaily.setEventPayRoi(returnJson.getBigDecimal("event_pay_roi"));
-      reportDaily.setEventRegister(returnJson.getLong("event_register"));
-      reportDaily.setEventRegisterCost(returnJson.getBigDecimal("event_register_cost"));
-      reportDaily.setEventRegisterRatio(returnJson.getBigDecimal("event_register_ratio"));
-      reportDaily.setEventJinJianApp(returnJson.getLong("event_jin_jian_app"));
-      reportDaily.setEventJinJianAppCost(returnJson.getBigDecimal("event_jin_jian_app_cost"));
-      reportDaily.setEventCreditGrantApp(returnJson.getLong("event_credit_grant_app"));
-      reportDaily.setEventCreditGrantAppCost(returnJson.getBigDecimal("event_credit_grant_app_cost"));
-      reportDaily.setEventCreditGrantAppRatio(returnJson.getBigDecimal("event_credit_grant_app_ratio"));
-      reportDaily.setEventOrderPaid(returnJson.getLong("event_order_paid"));
-      reportDaily.setEventOrderPaidPurchaseAmount(returnJson.getBigDecimal("event_order_paid_purchase_amount"));
-      reportDaily.setEventOrderPaidCost(returnJson.getBigDecimal("event_order_paid_cost"));
-      reportDaily.setEventNextDayStay(returnJson.getLong("event_next_day_stay"));
-      reportDaily.setEventNextDayStayCost(returnJson.getBigDecimal("event_next_day_stay_cost"));
-      reportDaily.setEventNextDayStayRatio(returnJson.getBigDecimal("event_next_day_stay_ratio"));
-      reportDaily.setFormCount(returnJson.getLong("form_count"));
-      reportDaily.setFormCost(returnJson.getBigDecimal("form_cost"));
-      reportDaily.setFormActionRatio(returnJson.getBigDecimal("form_action_ratio"));
-      reportDaily.setEventJinJianLandingPage(returnJson.getLong("event_jin_jian_landing_page"));
-      reportDaily.setEventJinJianLandingPageCost(returnJson.getBigDecimal("event_jin_jian_landing_page_cost"));
-      reportDaily.setEventCreditGrantLandingPage(returnJson.getLong("event_credit_grant_landing_page"));
-      reportDaily.setEventCreditGrantLandingPageCost(returnJson.getBigDecimal("event_credit_grant_landing_page_cost"));
-      reportDaily.setEventCreditGrantLandingPageRatio(returnJson.getBigDecimal("event_credit_grant_landing_page_ratio"));
-      reportDaily.setEventValidClues(returnJson.getLong("event_valid_clues"));
-      reportDaily.setEventValidCluesCost(returnJson.getBigDecimal("event_valid_clues_cost"));
-      reportDaily.setEventAddWechat(returnJson.getLong("event_add_wechat"));
-      reportDaily.setEventAddWechatCost(returnJson.getBigDecimal("event_add_wechat_cost"));
-      reportDaily.setEventAddWechatRatio(returnJson.getBigDecimal("event_add_wechat_ratio"));
-      reportDaily.setEventGetThrough(returnJson.getLong("event_get_through"));
-      reportDaily.setEventGetThroughCost(returnJson.getBigDecimal("event_get_through_cost"));
-      reportDaily.setEventGetThroughRatio(returnJson.getBigDecimal("event_get_through_ratio"));
-      reportDaily.setEventAppInvoked(returnJson.getLong("event_app_invoked"));
-      reportDaily.setEventAppInvokedCost(returnJson.getBigDecimal("event_app_invoked_cost"));
-      reportDaily.setEventAppInvokedRatio(returnJson.getBigDecimal("event_app_invoked_ratio"));
-      reportDaily.setEventCreditGrantLandingRatio(returnJson.getBigDecimal("event_credit_grant_landing_ratio"));
-      reportDaily.setPlay5sRatio(returnJson.getBigDecimal("play_5s_ratio"));
-      reportDaily.setPlayEndRatio(returnJson.getBigDecimal("play_end_ratio"));
-      reportDaily.setEventNewUserPay(returnJson.getBigDecimal("event_new_user_pay"));
-      reportDaily.setEventNewUserPayCost(returnJson.getBigDecimal("event_new_user_pay_cost"));
-      reportDaily.setEventNewUserPayRatio(returnJson.getBigDecimal("event_new_user_pay_ratio"));
-      reportDaily.setClick1kCost(returnJson.getBigDecimal("click_1k_cost"));
-      reportDaily.setAdProductCnt(returnJson.getLong("ad_product_cnt"));
-      reportDaily.setEventGoodsView(returnJson.getLong("event_goods_view"));
-      reportDaily.setMerchantRecoFans(returnJson.getLong("merchant_reco_fans"));
-      reportDaily.setEventGoodsViewCost(returnJson.getBigDecimal("event_goods_view_cost"));
-      reportDaily.setMerchantRecoFansCost(returnJson.getBigDecimal("merchant_reco_fans_cost"));
-      reportDaily.setEventOrderAmountRoi(returnJson.getBigDecimal("event_order_amount_roi"));
-      reportDaily.setEventButtonClick(returnJson.getLong("event_button_click"));
-      reportDaily.setEventButtonClickCost(returnJson.getBigDecimal("event_button_click_cost"));
-      reportDaily.setEventButtonClickRatio(returnJson.getBigDecimal("event_button_click_ratio"));
-      reportDaily.setEventOrderPaidRoi(returnJson.getBigDecimal("event_order_paid_roi"));
-      reportDaily.setEventNewUserJinjianApp(returnJson.getLong("event_new_user_jinjian_app"));
-      reportDaily.setEventNewUserJinjianAppCost(returnJson.getBigDecimal("event_new_user_jinjian_app_cost"));
-      reportDaily.setEventNewUserJinjianAppRoi(returnJson.getBigDecimal("event_new_user_jinjian_app_roi"));
-      reportDaily.setEventNewUserCreditGrantApp(returnJson.getLong("event_new_user_credit_grant_app"));
-      reportDaily.setEventNewUserCreditGrantAppCost(returnJson.getBigDecimal("event_new_user_credit_grant_app_cost"));
-      reportDaily.setEventNewUserCreditGrantAppRoi(returnJson.getBigDecimal("event_new_user_credit_grant_app_roi"));
-      reportDaily.setEventNewUserJinjianPage(returnJson.getLong("event_new_user_jinjian_page"));
-      reportDaily.setEventNewUserJinjianPageCost(returnJson.getBigDecimal("event_new_user_jinjian_page_cost"));
-      reportDaily.setEventNewUserJinjianPageRoi(returnJson.getBigDecimal("event_new_user_jinjian_page_roi"));
-      reportDaily.setEventNewUserCreditGrantPage(returnJson.getLong("event_new_user_credit_grant_page"));
-      reportDaily.setEventNewUserCreditGrantPageCost(returnJson.getBigDecimal("event_new_user_credit_grant_page_cost"));
-      reportDaily.setEventNewUserCreditGrantPageRoi(returnJson.getBigDecimal("event_new_user_credit_grant_page_roi"));
-      reportDaily.setEventAppointForm(returnJson.getLong("event_appoint_form"));
-      reportDaily.setEventAppointFormCost(returnJson.getBigDecimal("event_appoint_form_cost"));
-      reportDaily.setEventAppointFormRatio(returnJson.getBigDecimal("event_appoint_form_ratio"));
-      reportDaily.setEventAppointJumpClick(returnJson.getLong("event_appoint_jump_click"));
-      reportDaily.setEventAppointJumpClickCost(returnJson.getBigDecimal("event_appoint_jump_click_cost"));
-      reportDaily.setEventAppointJumpClickRatio(returnJson.getBigDecimal("event_appoint_jump_click_ratio"));
-      reportDaily.setUnionEventPayPurchaseAmount7d(returnJson.getLong("union_event_pay_purchase_amount_7d"));
-      reportDaily.setUnionEventPayPurchaseAmount7dRoi(returnJson.getBigDecimal("union_event_pay_purchase_amount_7d_roi"));
-      reportDaily.setPlacementType(returnJson.getString("placement_type"));
-      reportDaily.setAdScene(returnJson.getString("ad_scene"));
-      reportDaily.setEventOrderSuccessed(returnJson.getLong("event_order_successed"));
-      reportDaily.setAdPhotoPlayed10sRatio(returnJson.getBigDecimal("ad_photo_played_10s_ratio"));
-      reportDaily.setKeyActionCost(returnJson.getBigDecimal("key_action_cost"));
-      reportDaily.setEventAddShoppingCartCost(returnJson.getBigDecimal("event_add_shopping_cart_cost"));
-      reportDaily.setEventAdWatchTimesRatio(returnJson.getBigDecimal("event_ad_watch_times_ratio"));
-      reportDaily.setEventOutboundCallCost(returnJson.getBigDecimal("event_outbound_call_cost"));
-      reportDaily.setEventOutboundCall(returnJson.getLong("event_outbound_call"));
-      reportDaily.setActionNewRatio(returnJson.getBigDecimal("action_new_ratio"));
-      reportDaily.setEventWatchAppAd(returnJson.getLong("event_watch_app_ad"));
-      reportDaily.setEventMultiConversionCost(returnJson.getBigDecimal("event_multi_conversion_cost"));
-      reportDaily.setEventPhoneCardActivate(returnJson.getLong("event_phone_card_activate"));
-      reportDaily.setAdPhotoPlayed75percentRatio(returnJson.getBigDecimal("ad_photo_played_75percent_ratio"));
-      reportDaily.setKeyActionRatio(returnJson.getBigDecimal("key_action_ratio"));
-      reportDaily.setEventAdWatchTimesCost(returnJson.getBigDecimal("event_ad_watch_times_cost"));
-      reportDaily.setEventAddShoppingCart(returnJson.getLong("event_add_shopping_cart"));
-      reportDaily.setKeyAction(returnJson.getLong("key_action"));
-      reportDaily.setEventMultiConversion(returnJson.getLong("event_multi_conversion"));
-      reportDaily.setEventWechatConnected(returnJson.getLong("event_wechat_connected"));
-      reportDaily.setEventDspGiftForm(returnJson.getLong("event_dsp_gift_form"));
-      reportDaily.setEventIntentionConfirmed(returnJson.getLong("event_intention_confirmed"));
-      reportDaily.setEventPhoneGetThrough(returnJson.getLong("event_phone_get_through"));
-      reportDaily.setEventMultiConversionRatio(returnJson.getBigDecimal("event_multi_conversion_ratio"));
-      reportDaily.setEventMeasurementHouse(returnJson.getBigDecimal("event_measurement_house"));
-      reportDaily.setAdPhotoPlayed2sRatio(returnJson.getBigDecimal("ad_photo_played_2s_ratio"));
-      reportDaily.setEventOutboundCallRatio(returnJson.getBigDecimal("event_outbound_call_ratio"));
-      reportDaily.setEventAdWatchTimes(returnJson.getLong("event_ad_watch_times"));
-      addList.add(reportDaily);
+
+    @Override
+    public void sendMessage(Long accountId, String startDate, String endDate, String date_type) {
+        String url = KuaishouConstant.SEND_URL;
+        Map<String, Object> param = new HashMap<>();
+        param.put("start_date", DateUtils.getDateInteger(startDate));
+        param.put("end_date", DateUtils.getDateInteger(endDate));
+        param.put("account_id", accountId);
+        param.put("date_type", date_type);
+        String result = HttpUtils.httpPostRequest(url, param, null);
+        System.err.println(result);
     }
-    accountReportDailyMapper.replaceBatch(addList);
-    sendMessage(advertiserId, startDate, endDate, "daily");
-    log.info("账户日报数据获取完成:accountId:{}",advertiserId);
-  }
-  @Override
-  public void sendMessage(Long accountId, String startDate, String endDate, String date_type) {
-    String url = KuaishouConstant.SEND_URL;
-    Map<String, Object> param = new HashMap<>();
-    param.put("start_date", DateUtils.getDateInteger(startDate));
-    param.put("end_date", DateUtils.getDateInteger(endDate));
-    param.put("account_id", accountId);
-    param.put("date_type", date_type);
-    String result = HttpUtils.httpPostRequest(url, param, null);
-    System.err.println(result);
-  }
 }

+ 171 - 171
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouAccountReportHourlyServiceImpl.java

@@ -30,177 +30,177 @@ import java.util.Map;
 @Service
 public class KuaishouAccountReportHourlyServiceImpl extends ServiceImpl<KuaishouAccountReportHourlyMapper, KuaishouAccountReportHourly> implements IKuaishouAccountReportHourlyService {
 
-  @Value("${api.kuaishou.postUrl}")
-  private String postUrl;
-  @Autowired
-  private KuaishouAccountReportHourlyMapper accountReportHourlyMapper;
-  @Autowired
-  private IKuaishouAccountReportDailyService reportDailyService;
-  
+    @Value("${api.kuaishou.postUrl}")
+    private String postUrl;
+    @Autowired
+    private KuaishouAccountReportHourlyMapper accountReportHourlyMapper;
+    @Autowired
+    private IKuaishouAccountReportDailyService reportDailyService;
 
-  @Override
-  public void getAdvertiserReportHour(Long advertiserId, String accessToken, String startDate, String endDate, int page) {
-    String url = postUrl + KuaishouConstant.ACCOUNT_REPORT;
-    Map<String, String> headers = new HashMap<>();
-    headers.put("Access-Token", accessToken);
-    Map<String, Object> param = new HashMap<>();
-    param.put("start_date", startDate);
-    param.put("end_date", endDate);
-    param.put("advertiser_id", advertiserId);
-    param.put("temporal_granularity", "HOURLY");
-    param.put("page_size", 2000);
-    param.put("page", page);
-    String result = HttpUtils.httpPostRequest(url, param, headers);
-    JSONObject resultJson = JSONObject.parseObject(result);
-    Integer code = resultJson.getInteger("code");
-    String message = resultJson.getString("message");
-    if (null == code || code != 0) {
-      log.error("获取快手广告主时报表异常:{},accountId:{}", message, advertiserId);
-      return;
-    }
-    JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
-    if (null == details || details.size() <= 0) {
-      log.error("快手时报返回详情为空,accountId:{}", advertiserId);
-      return;
-    }
-    List<KuaishouAccountReportHourly> addList = new ArrayList<>();
-    for (int i = 0; i < details.size(); i++) {
-      JSONObject returnJson = details.getJSONObject(i);
-      KuaishouAccountReportHourly reportHourly = new KuaishouAccountReportHourly();
-      reportHourly.setAdvertiserId(advertiserId);
-      reportHourly.setStatDate(DateUtils.getDateInteger(returnJson.getString("stat_date")));
-      reportHourly.setHour(returnJson.getInteger("stat_hour"));
-      reportHourly.setCharge(returnJson.getBigDecimal("charge"));
-      reportHourly.setShow(returnJson.getLong("show"));
-      reportHourly.setPhotoClick(returnJson.getLong("photo_click"));
-      reportHourly.setAclick(returnJson.getLong("aclick"));
-      reportHourly.setBclick(returnJson.getLong("bclick"));
-      reportHourly.setPhotoClickRatio(returnJson.getBigDecimal("photo_click_ratio"));
-      reportHourly.setPlay3sRatio(returnJson.getBigDecimal("play_3s_ratio"));
-      reportHourly.setActionRatio(returnJson.getBigDecimal("action_ratio"));
-      reportHourly.setImpression1kCost(returnJson.getBigDecimal("impression_1k_cost"));
-      reportHourly.setPhotoClickCost(returnJson.getBigDecimal("photo_click_cost"));
-      reportHourly.setActionCost(returnJson.getBigDecimal("action_cost"));
-      reportHourly.setShare(returnJson.getLong("share"));
-      reportHourly.setComment(returnJson.getLong("comment"));
-      reportHourly.setLike(returnJson.getLong("like"));
-      reportHourly.setFollow(returnJson.getLong("follow"));
-      reportHourly.setCancelFollow(returnJson.getLong("cancel_follow"));
-      reportHourly.setReport(returnJson.getLong("report"));
-      reportHourly.setBlock(returnJson.getLong("block"));
-      reportHourly.setNegative(returnJson.getLong("negative"));
-      reportHourly.setSubmit(returnJson.getLong("submit"));
-      reportHourly.setDownloadStarted(returnJson.getLong("download_started"));
-      reportHourly.setDownloadCompleted(returnJson.getLong("download_completed"));
-      reportHourly.setActivation(returnJson.getLong("activation"));
-      reportHourly.setEventPayFirstDay(returnJson.getLong("event_pay_first_day"));
-      reportHourly.setEventPayPurchaseAmountFirstDay(returnJson.getBigDecimal("event_pay_purchase_amount_first_day"));
-      reportHourly.setEventPayFirstDayRoi(returnJson.getBigDecimal("event_pay_first_day_roi"));
-      reportHourly.setEventPay(returnJson.getLong("event_pay"));
-      reportHourly.setEventPayPurchaseAmount(returnJson.getBigDecimal("event_pay_purchase_amount"));
-      reportHourly.setEventPayRoi(returnJson.getBigDecimal("event_pay_roi"));
-      reportHourly.setEventRegister(returnJson.getLong("event_register"));
-      reportHourly.setEventRegisterCost(returnJson.getBigDecimal("event_register_cost"));
-      reportHourly.setEventRegisterRatio(returnJson.getBigDecimal("event_register_ratio"));
-      reportHourly.setEventJinJianApp(returnJson.getLong("event_jin_jian_app"));
-      reportHourly.setEventJinJianAppCost(returnJson.getBigDecimal("event_jin_jian_app_cost"));
-      reportHourly.setEventCreditGrantApp(returnJson.getLong("event_credit_grant_app"));
-      reportHourly.setEventCreditGrantAppCost(returnJson.getBigDecimal("event_credit_grant_app_cost"));
-      reportHourly.setEventCreditGrantAppRatio(returnJson.getBigDecimal("event_credit_grant_app_ratio"));
-      reportHourly.setEventOrderPaid(returnJson.getLong("event_order_paid"));
-      reportHourly.setEventOrderPaidPurchaseAmount(returnJson.getBigDecimal("event_order_paid_purchase_amount"));
-      reportHourly.setEventOrderPaidCost(returnJson.getBigDecimal("event_order_paid_cost"));
-      reportHourly.setEventNextDayStay(returnJson.getLong("event_next_day_stay"));
-      reportHourly.setEventNextDayStayCost(returnJson.getBigDecimal("event_next_day_stay_cost"));
-      reportHourly.setEventNextDayStayRatio(returnJson.getBigDecimal("event_next_day_stay_ratio"));
-      reportHourly.setFormCount(returnJson.getLong("form_count"));
-      reportHourly.setFormCost(returnJson.getBigDecimal("form_cost"));
-      reportHourly.setFormActionRatio(returnJson.getBigDecimal("form_action_ratio"));
-      reportHourly.setEventJinJianLandingPage(returnJson.getLong("event_jin_jian_landing_page"));
-      reportHourly.setEventJinJianLandingPageCost(returnJson.getBigDecimal("event_jin_jian_landing_page_cost"));
-      reportHourly.setEventCreditGrantLandingPage(returnJson.getLong("event_credit_grant_landing_page"));
-      reportHourly.setEventCreditGrantLandingPageCost(returnJson.getBigDecimal("event_credit_grant_landing_page_cost"));
-      reportHourly.setEventCreditGrantLandingPageRatio(returnJson.getBigDecimal("event_credit_grant_landing_page_ratio"));
-      reportHourly.setEventValidClues(returnJson.getLong("event_valid_clues"));
-      reportHourly.setEventValidCluesCost(returnJson.getBigDecimal("event_valid_clues_cost"));
-      reportHourly.setEventAddWechat(returnJson.getLong("event_add_wechat"));
-      reportHourly.setEventAddWechatCost(returnJson.getBigDecimal("event_add_wechat_cost"));
-      reportHourly.setEventAddWechatRatio(returnJson.getBigDecimal("event_add_wechat_ratio"));
-      reportHourly.setEventGetThrough(returnJson.getLong("event_get_through"));
-      reportHourly.setEventGetThroughCost(returnJson.getBigDecimal("event_get_through_cost"));
-      reportHourly.setEventGetThroughRatio(returnJson.getBigDecimal("event_get_through_ratio"));
-      reportHourly.setEventAppInvoked(returnJson.getLong("event_app_invoked"));
-      reportHourly.setEventAppInvokedCost(returnJson.getBigDecimal("event_app_invoked_cost"));
-      reportHourly.setEventAppInvokedRatio(returnJson.getBigDecimal("event_app_invoked_ratio"));
-      reportHourly.setEventCreditGrantLandingRatio(returnJson.getBigDecimal("event_credit_grant_landing_ratio"));
-      reportHourly.setPlay5sRatio(returnJson.getBigDecimal("play_5s_ratio"));
-      reportHourly.setPlayEndRatio(returnJson.getBigDecimal("play_end_ratio"));
-      reportHourly.setEventNewUserPay(returnJson.getBigDecimal("event_new_user_pay"));
-      reportHourly.setEventNewUserPayCost(returnJson.getBigDecimal("event_new_user_pay_cost"));
-      reportHourly.setEventNewUserPayRatio(returnJson.getBigDecimal("event_new_user_pay_ratio"));
-      reportHourly.setClick1kCost(returnJson.getBigDecimal("click_1k_cost"));
-      reportHourly.setAdProductCnt(returnJson.getLong("ad_product_cnt"));
-      reportHourly.setEventGoodsView(returnJson.getLong("event_goods_view"));
-      reportHourly.setMerchantRecoFans(returnJson.getLong("merchant_reco_fans"));
-      reportHourly.setEventGoodsViewCost(returnJson.getBigDecimal("event_goods_view_cost"));
-      reportHourly.setMerchantRecoFansCost(returnJson.getBigDecimal("merchant_reco_fans_cost"));
-      reportHourly.setEventOrderAmountRoi(returnJson.getBigDecimal("event_order_amount_roi"));
-      reportHourly.setEventButtonClick(returnJson.getLong("event_button_click"));
-      reportHourly.setEventButtonClickCost(returnJson.getBigDecimal("event_button_click_cost"));
-      reportHourly.setEventButtonClickRatio(returnJson.getBigDecimal("event_button_click_ratio"));
-      reportHourly.setEventOrderPaidRoi(returnJson.getBigDecimal("event_order_paid_roi"));
-      reportHourly.setEventNewUserJinjianApp(returnJson.getLong("event_new_user_jinjian_app"));
-      reportHourly.setEventNewUserJinjianAppCost(returnJson.getBigDecimal("event_new_user_jinjian_app_cost"));
-      reportHourly.setEventNewUserJinjianAppRoi(returnJson.getBigDecimal("event_new_user_jinjian_app_roi"));
-      reportHourly.setEventNewUserCreditGrantApp(returnJson.getLong("event_new_user_credit_grant_app"));
-      reportHourly.setEventNewUserCreditGrantAppCost(returnJson.getBigDecimal("event_new_user_credit_grant_app_cost"));
-      reportHourly.setEventNewUserCreditGrantAppRoi(returnJson.getBigDecimal("event_new_user_credit_grant_app_roi"));
-      reportHourly.setEventNewUserJinjianPage(returnJson.getLong("event_new_user_jinjian_page"));
-      reportHourly.setEventNewUserJinjianPageCost(returnJson.getBigDecimal("event_new_user_jinjian_page_cost"));
-      reportHourly.setEventNewUserJinjianPageRoi(returnJson.getBigDecimal("event_new_user_jinjian_page_roi"));
-      reportHourly.setEventNewUserCreditGrantPage(returnJson.getLong("event_new_user_credit_grant_page"));
-      reportHourly.setEventNewUserCreditGrantPageCost(returnJson.getBigDecimal("event_new_user_credit_grant_page_cost"));
-      reportHourly.setEventNewUserCreditGrantPageRoi(returnJson.getBigDecimal("event_new_user_credit_grant_page_roi"));
-      reportHourly.setEventAppointForm(returnJson.getLong("event_appoint_form"));
-      reportHourly.setEventAppointFormCost(returnJson.getBigDecimal("event_appoint_form_cost"));
-      reportHourly.setEventAppointFormRatio(returnJson.getBigDecimal("event_appoint_form_ratio"));
-      reportHourly.setEventAppointJumpClick(returnJson.getLong("event_appoint_jump_click"));
-      reportHourly.setEventAppointJumpClickCost(returnJson.getBigDecimal("event_appoint_jump_click_cost"));
-      reportHourly.setEventAppointJumpClickRatio(returnJson.getBigDecimal("event_appoint_jump_click_ratio"));
-      reportHourly.setUnionEventPayPurchaseAmount7d(returnJson.getLong("union_event_pay_purchase_amount_7d"));
-      reportHourly.setUnionEventPayPurchaseAmount7dRoi(returnJson.getBigDecimal("union_event_pay_purchase_amount_7d_roi"));
-      reportHourly.setPlacementType(returnJson.getString("placement_type"));
-      reportHourly.setAdScene(returnJson.getString("ad_scene"));
-      reportHourly.setEventOrderSuccessed(returnJson.getLong("event_order_successed"));
-      reportHourly.setAdPhotoPlayed10sRatio(returnJson.getBigDecimal("ad_photo_played_10s_ratio"));
-      reportHourly.setKeyActionCost(returnJson.getBigDecimal("key_action_cost"));
-      reportHourly.setEventAddShoppingCartCost(returnJson.getBigDecimal("event_add_shopping_cart_cost"));
-      reportHourly.setEventAdWatchTimesRatio(returnJson.getBigDecimal("event_ad_watch_times_ratio"));
-      reportHourly.setEventOutboundCallCost(returnJson.getBigDecimal("event_outbound_call_cost"));
-      reportHourly.setEventOutboundCall(returnJson.getLong("event_outbound_call"));
-      reportHourly.setActionNewRatio(returnJson.getBigDecimal("action_new_ratio"));
-      reportHourly.setEventWatchAppAd(returnJson.getLong("event_watch_app_ad"));
-      reportHourly.setEventMultiConversionCost(returnJson.getBigDecimal("event_multi_conversion_cost"));
-      reportHourly.setEventPhoneCardActivate(returnJson.getLong("event_phone_card_activate"));
-      reportHourly.setAdPhotoPlayed75percentRatio(returnJson.getBigDecimal("ad_photo_played_75percent_ratio"));
-      reportHourly.setKeyActionRatio(returnJson.getBigDecimal("key_action_ratio"));
-      reportHourly.setEventAdWatchTimesCost(returnJson.getBigDecimal("event_ad_watch_times_cost"));
-      reportHourly.setEventAddShoppingCart(returnJson.getLong("event_add_shopping_cart"));
-      reportHourly.setKeyAction(returnJson.getLong("key_action"));
-      reportHourly.setEventMultiConversion(returnJson.getLong("event_multi_conversion"));
-      reportHourly.setEventWechatConnected(returnJson.getLong("event_wechat_connected"));
-      reportHourly.setEventDspGiftForm(returnJson.getLong("event_dsp_gift_form"));
-      reportHourly.setEventIntentionConfirmed(returnJson.getLong("event_intention_confirmed"));
-      reportHourly.setEventPhoneGetThrough(returnJson.getLong("event_phone_get_through"));
-      reportHourly.setEventMultiConversionRatio(returnJson.getBigDecimal("event_multi_conversion_ratio"));
-      reportHourly.setEventMeasurementHouse(returnJson.getBigDecimal("event_measurement_house"));
-      reportHourly.setAdPhotoPlayed2sRatio(returnJson.getBigDecimal("ad_photo_played_2s_ratio"));
-      reportHourly.setEventOutboundCallRatio(returnJson.getBigDecimal("event_outbound_call_ratio"));
-      reportHourly.setEventAdWatchTimes(returnJson.getLong("event_ad_watch_times"));
-      addList.add(reportHourly);
+
+    @Override
+    public void getAdvertiserReportHour(Long advertiserId, String accessToken, String startDate, String endDate, int page) {
+        String url = postUrl + KuaishouConstant.ACCOUNT_REPORT;
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Access-Token", accessToken);
+        Map<String, Object> param = new HashMap<>();
+        param.put("start_date", startDate);
+        param.put("end_date", endDate);
+        param.put("advertiser_id", advertiserId);
+        param.put("temporal_granularity", "HOURLY");
+        param.put("page_size", 2000);
+        param.put("page", page);
+        String result = HttpUtils.httpPostRequest(url, param, headers);
+        JSONObject resultJson = JSONObject.parseObject(result);
+        Integer code = resultJson.getInteger("code");
+        String message = resultJson.getString("message");
+        if (null == code || code != 0) {
+            log.error("获取快手广告主时报表异常:{},accountId:{}", message, advertiserId);
+            return;
+        }
+        JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
+        if (null == details || details.size() <= 0) {
+            log.error("快手时报返回详情为空,accountId:{}", advertiserId);
+            return;
+        }
+        List<KuaishouAccountReportHourly> addList = new ArrayList<>();
+        for (int i = 0; i < details.size(); i++) {
+            JSONObject returnJson = details.getJSONObject(i);
+            KuaishouAccountReportHourly reportHourly = new KuaishouAccountReportHourly();
+            reportHourly.setAdvertiserId(advertiserId);
+            reportHourly.setStatDate(DateUtils.getDateInteger(returnJson.getString("stat_date")));
+            reportHourly.setHour(returnJson.getInteger("stat_hour"));
+            reportHourly.setCharge(returnJson.getBigDecimal("charge"));
+            reportHourly.setShow(returnJson.getLong("show"));
+            reportHourly.setPhotoClick(returnJson.getLong("photo_click"));
+            reportHourly.setAclick(returnJson.getLong("aclick"));
+            reportHourly.setBclick(returnJson.getLong("bclick"));
+            reportHourly.setPhotoClickRatio(returnJson.getBigDecimal("photo_click_ratio"));
+            reportHourly.setPlay3sRatio(returnJson.getBigDecimal("play_3s_ratio"));
+            reportHourly.setActionRatio(returnJson.getBigDecimal("action_ratio"));
+            reportHourly.setImpression1kCost(returnJson.getBigDecimal("impression_1k_cost"));
+            reportHourly.setPhotoClickCost(returnJson.getBigDecimal("photo_click_cost"));
+            reportHourly.setActionCost(returnJson.getBigDecimal("action_cost"));
+            reportHourly.setShare(returnJson.getLong("share"));
+            reportHourly.setComment(returnJson.getLong("comment"));
+            reportHourly.setLike(returnJson.getLong("like"));
+            reportHourly.setFollow(returnJson.getLong("follow"));
+            reportHourly.setCancelFollow(returnJson.getLong("cancel_follow"));
+            reportHourly.setReport(returnJson.getLong("report"));
+            reportHourly.setBlock(returnJson.getLong("block"));
+            reportHourly.setNegative(returnJson.getLong("negative"));
+            reportHourly.setSubmit(returnJson.getLong("submit"));
+            reportHourly.setDownloadStarted(returnJson.getLong("download_started"));
+            reportHourly.setDownloadCompleted(returnJson.getLong("download_completed"));
+            reportHourly.setActivation(returnJson.getLong("activation"));
+            reportHourly.setEventPayFirstDay(returnJson.getLong("event_pay_first_day"));
+            reportHourly.setEventPayPurchaseAmountFirstDay(returnJson.getBigDecimal("event_pay_purchase_amount_first_day"));
+            reportHourly.setEventPayFirstDayRoi(returnJson.getBigDecimal("event_pay_first_day_roi"));
+            reportHourly.setEventPay(returnJson.getLong("event_pay"));
+            reportHourly.setEventPayPurchaseAmount(returnJson.getBigDecimal("event_pay_purchase_amount"));
+            reportHourly.setEventPayRoi(returnJson.getBigDecimal("event_pay_roi"));
+            reportHourly.setEventRegister(returnJson.getLong("event_register"));
+            reportHourly.setEventRegisterCost(returnJson.getBigDecimal("event_register_cost"));
+            reportHourly.setEventRegisterRatio(returnJson.getBigDecimal("event_register_ratio"));
+            reportHourly.setEventJinJianApp(returnJson.getLong("event_jin_jian_app"));
+            reportHourly.setEventJinJianAppCost(returnJson.getBigDecimal("event_jin_jian_app_cost"));
+            reportHourly.setEventCreditGrantApp(returnJson.getLong("event_credit_grant_app"));
+            reportHourly.setEventCreditGrantAppCost(returnJson.getBigDecimal("event_credit_grant_app_cost"));
+            reportHourly.setEventCreditGrantAppRatio(returnJson.getBigDecimal("event_credit_grant_app_ratio"));
+            reportHourly.setEventOrderPaid(returnJson.getLong("event_order_paid"));
+            reportHourly.setEventOrderPaidPurchaseAmount(returnJson.getBigDecimal("event_order_paid_purchase_amount"));
+            reportHourly.setEventOrderPaidCost(returnJson.getBigDecimal("event_order_paid_cost"));
+            reportHourly.setEventNextDayStay(returnJson.getLong("event_next_day_stay"));
+            reportHourly.setEventNextDayStayCost(returnJson.getBigDecimal("event_next_day_stay_cost"));
+            reportHourly.setEventNextDayStayRatio(returnJson.getBigDecimal("event_next_day_stay_ratio"));
+            reportHourly.setFormCount(returnJson.getLong("form_count"));
+            reportHourly.setFormCost(returnJson.getBigDecimal("form_cost"));
+            reportHourly.setFormActionRatio(returnJson.getBigDecimal("form_action_ratio"));
+            reportHourly.setEventJinJianLandingPage(returnJson.getLong("event_jin_jian_landing_page"));
+            reportHourly.setEventJinJianLandingPageCost(returnJson.getBigDecimal("event_jin_jian_landing_page_cost"));
+            reportHourly.setEventCreditGrantLandingPage(returnJson.getLong("event_credit_grant_landing_page"));
+            reportHourly.setEventCreditGrantLandingPageCost(returnJson.getBigDecimal("event_credit_grant_landing_page_cost"));
+            reportHourly.setEventCreditGrantLandingPageRatio(returnJson.getBigDecimal("event_credit_grant_landing_page_ratio"));
+            reportHourly.setEventValidClues(returnJson.getLong("event_valid_clues"));
+            reportHourly.setEventValidCluesCost(returnJson.getBigDecimal("event_valid_clues_cost"));
+            reportHourly.setEventAddWechat(returnJson.getLong("event_add_wechat"));
+            reportHourly.setEventAddWechatCost(returnJson.getBigDecimal("event_add_wechat_cost"));
+            reportHourly.setEventAddWechatRatio(returnJson.getBigDecimal("event_add_wechat_ratio"));
+            reportHourly.setEventGetThrough(returnJson.getLong("event_get_through"));
+            reportHourly.setEventGetThroughCost(returnJson.getBigDecimal("event_get_through_cost"));
+            reportHourly.setEventGetThroughRatio(returnJson.getBigDecimal("event_get_through_ratio"));
+            reportHourly.setEventAppInvoked(returnJson.getLong("event_app_invoked"));
+            reportHourly.setEventAppInvokedCost(returnJson.getBigDecimal("event_app_invoked_cost"));
+            reportHourly.setEventAppInvokedRatio(returnJson.getBigDecimal("event_app_invoked_ratio"));
+            reportHourly.setEventCreditGrantLandingRatio(returnJson.getBigDecimal("event_credit_grant_landing_ratio"));
+            reportHourly.setPlay5sRatio(returnJson.getBigDecimal("play_5s_ratio"));
+            reportHourly.setPlayEndRatio(returnJson.getBigDecimal("play_end_ratio"));
+            reportHourly.setEventNewUserPay(returnJson.getBigDecimal("event_new_user_pay"));
+            reportHourly.setEventNewUserPayCost(returnJson.getBigDecimal("event_new_user_pay_cost"));
+            reportHourly.setEventNewUserPayRatio(returnJson.getBigDecimal("event_new_user_pay_ratio"));
+            reportHourly.setClick1kCost(returnJson.getBigDecimal("click_1k_cost"));
+            reportHourly.setAdProductCnt(returnJson.getLong("ad_product_cnt"));
+            reportHourly.setEventGoodsView(returnJson.getLong("event_goods_view"));
+            reportHourly.setMerchantRecoFans(returnJson.getLong("merchant_reco_fans"));
+            reportHourly.setEventGoodsViewCost(returnJson.getBigDecimal("event_goods_view_cost"));
+            reportHourly.setMerchantRecoFansCost(returnJson.getBigDecimal("merchant_reco_fans_cost"));
+            reportHourly.setEventOrderAmountRoi(returnJson.getBigDecimal("event_order_amount_roi"));
+            reportHourly.setEventButtonClick(returnJson.getLong("event_button_click"));
+            reportHourly.setEventButtonClickCost(returnJson.getBigDecimal("event_button_click_cost"));
+            reportHourly.setEventButtonClickRatio(returnJson.getBigDecimal("event_button_click_ratio"));
+            reportHourly.setEventOrderPaidRoi(returnJson.getBigDecimal("event_order_paid_roi"));
+            reportHourly.setEventNewUserJinjianApp(returnJson.getLong("event_new_user_jinjian_app"));
+            reportHourly.setEventNewUserJinjianAppCost(returnJson.getBigDecimal("event_new_user_jinjian_app_cost"));
+            reportHourly.setEventNewUserJinjianAppRoi(returnJson.getBigDecimal("event_new_user_jinjian_app_roi"));
+            reportHourly.setEventNewUserCreditGrantApp(returnJson.getLong("event_new_user_credit_grant_app"));
+            reportHourly.setEventNewUserCreditGrantAppCost(returnJson.getBigDecimal("event_new_user_credit_grant_app_cost"));
+            reportHourly.setEventNewUserCreditGrantAppRoi(returnJson.getBigDecimal("event_new_user_credit_grant_app_roi"));
+            reportHourly.setEventNewUserJinjianPage(returnJson.getLong("event_new_user_jinjian_page"));
+            reportHourly.setEventNewUserJinjianPageCost(returnJson.getBigDecimal("event_new_user_jinjian_page_cost"));
+            reportHourly.setEventNewUserJinjianPageRoi(returnJson.getBigDecimal("event_new_user_jinjian_page_roi"));
+            reportHourly.setEventNewUserCreditGrantPage(returnJson.getLong("event_new_user_credit_grant_page"));
+            reportHourly.setEventNewUserCreditGrantPageCost(returnJson.getBigDecimal("event_new_user_credit_grant_page_cost"));
+            reportHourly.setEventNewUserCreditGrantPageRoi(returnJson.getBigDecimal("event_new_user_credit_grant_page_roi"));
+            reportHourly.setEventAppointForm(returnJson.getLong("event_appoint_form"));
+            reportHourly.setEventAppointFormCost(returnJson.getBigDecimal("event_appoint_form_cost"));
+            reportHourly.setEventAppointFormRatio(returnJson.getBigDecimal("event_appoint_form_ratio"));
+            reportHourly.setEventAppointJumpClick(returnJson.getLong("event_appoint_jump_click"));
+            reportHourly.setEventAppointJumpClickCost(returnJson.getBigDecimal("event_appoint_jump_click_cost"));
+            reportHourly.setEventAppointJumpClickRatio(returnJson.getBigDecimal("event_appoint_jump_click_ratio"));
+            reportHourly.setUnionEventPayPurchaseAmount7d(returnJson.getLong("union_event_pay_purchase_amount_7d"));
+            reportHourly.setUnionEventPayPurchaseAmount7dRoi(returnJson.getBigDecimal("union_event_pay_purchase_amount_7d_roi"));
+            reportHourly.setPlacementType(returnJson.getString("placement_type"));
+            reportHourly.setAdScene(returnJson.getString("ad_scene"));
+            reportHourly.setEventOrderSuccessed(returnJson.getLong("event_order_successed"));
+            reportHourly.setAdPhotoPlayed10sRatio(returnJson.getBigDecimal("ad_photo_played_10s_ratio"));
+            reportHourly.setKeyActionCost(returnJson.getBigDecimal("key_action_cost"));
+            reportHourly.setEventAddShoppingCartCost(returnJson.getBigDecimal("event_add_shopping_cart_cost"));
+            reportHourly.setEventAdWatchTimesRatio(returnJson.getBigDecimal("event_ad_watch_times_ratio"));
+            reportHourly.setEventOutboundCallCost(returnJson.getBigDecimal("event_outbound_call_cost"));
+            reportHourly.setEventOutboundCall(returnJson.getLong("event_outbound_call"));
+            reportHourly.setActionNewRatio(returnJson.getBigDecimal("action_new_ratio"));
+            reportHourly.setEventWatchAppAd(returnJson.getLong("event_watch_app_ad"));
+            reportHourly.setEventMultiConversionCost(returnJson.getBigDecimal("event_multi_conversion_cost"));
+            reportHourly.setEventPhoneCardActivate(returnJson.getLong("event_phone_card_activate"));
+            reportHourly.setAdPhotoPlayed75percentRatio(returnJson.getBigDecimal("ad_photo_played_75percent_ratio"));
+            reportHourly.setKeyActionRatio(returnJson.getBigDecimal("key_action_ratio"));
+            reportHourly.setEventAdWatchTimesCost(returnJson.getBigDecimal("event_ad_watch_times_cost"));
+            reportHourly.setEventAddShoppingCart(returnJson.getLong("event_add_shopping_cart"));
+            reportHourly.setKeyAction(returnJson.getLong("key_action"));
+            reportHourly.setEventMultiConversion(returnJson.getLong("event_multi_conversion"));
+            reportHourly.setEventWechatConnected(returnJson.getLong("event_wechat_connected"));
+            reportHourly.setEventDspGiftForm(returnJson.getLong("event_dsp_gift_form"));
+            reportHourly.setEventIntentionConfirmed(returnJson.getLong("event_intention_confirmed"));
+            reportHourly.setEventPhoneGetThrough(returnJson.getLong("event_phone_get_through"));
+            reportHourly.setEventMultiConversionRatio(returnJson.getBigDecimal("event_multi_conversion_ratio"));
+            reportHourly.setEventMeasurementHouse(returnJson.getBigDecimal("event_measurement_house"));
+            reportHourly.setAdPhotoPlayed2sRatio(returnJson.getBigDecimal("ad_photo_played_2s_ratio"));
+            reportHourly.setEventOutboundCallRatio(returnJson.getBigDecimal("event_outbound_call_ratio"));
+            reportHourly.setEventAdWatchTimes(returnJson.getLong("event_ad_watch_times"));
+            addList.add(reportHourly);
+        }
+        accountReportHourlyMapper.replaceBatch(addList);
+        log.info("账户时报数据获取完成:accountId:{}", advertiserId);
+        reportDailyService.sendMessage(advertiserId, startDate, endDate, "hourly");
     }
-    accountReportHourlyMapper.replaceBatch(addList);
-    log.info("账户时报数据获取完成:accountId:{}", advertiserId);
-    reportDailyService.sendMessage(advertiserId, startDate, endDate, "hourly");
-  }
 }

+ 180 - 181
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouCampaignReportDailyServiceImpl.java

@@ -27,189 +27,188 @@ import java.util.Map;
  */
 @Slf4j
 @Service
-public class KuaishouCampaignReportDailyServiceImpl
-    extends ServiceImpl<KuaishouCampaignReportDailyMapper, KuaishouCampaignReportDaily>
-    implements IKuaishouCampaignReportDailyService {
+public class KuaishouCampaignReportDailyServiceImpl extends ServiceImpl<KuaishouCampaignReportDailyMapper, KuaishouCampaignReportDaily> implements IKuaishouCampaignReportDailyService {
 
-  @Autowired private KuaishouCampaignReportDailyMapper campaignReportDailyMapper;
+    @Autowired
+    private KuaishouCampaignReportDailyMapper campaignReportDailyMapper;
 
-  @Value("${api.kuaishou.postUrl}")
-  private String postUrl;
+    @Value("${api.kuaishou.postUrl}")
+    private String postUrl;
 
-  @Override
-  public void getCampaignReportDaily(
-      Long advertiserId, String accessToken, String startDate, String endDate, int page) {
-    String url = postUrl + KuaishouConstant.CAMPAIGN_REPORT;
-    Map<String, String> headers = new HashMap<>();
-    headers.put("Access-Token", accessToken);
-    Map<String, Object> param = new HashMap<>();
-    param.put("start_date", startDate);
-    param.put("end_date", endDate);
-    param.put("advertiser_id", advertiserId);
-    param.put("temporal_granularity", "DAILY");
-    Integer page_size = 2000;
-    param.put("page_size", page_size);
-    param.put("page", page);
-    String result = HttpUtils.httpPostRequest(url, param, headers);
-    JSONObject resultJson = JSONObject.parseObject(result);
-    Integer code = resultJson.getInteger("code");
-    String message = resultJson.getString("message");
-    if (null == code || code != 0) {
-      log.error("获取快手广告计划日报表异常:{},accountId:{}", message, advertiserId);
-      return;
-    }
-    JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
-    if (null == details || details.size() <= 0) {
-      log.error("快手计划日报返回详情为空,accountId:{}", advertiserId);
-      return;
-    }
-    Boolean toGet = true;
-    if(details.size() < page_size){
-      toGet = false;
-    }
-    List<KuaishouCampaignReportDaily> addList = new ArrayList<>();
-    for (int i = 0; i < details.size(); i++) {
-      JSONObject returnJson = details.getJSONObject(i);
-      KuaishouCampaignReportDaily reportDaily = new KuaishouCampaignReportDaily();
-      reportDaily.setAdvertiserId(advertiserId);
-      reportDaily.setStatDate(DateUtils.getDateInteger(returnJson.getString("stat_date")));
-      reportDaily.setCampaignId(returnJson.getLong("campaign_id"));
-      reportDaily.setCampaignName(returnJson.getString("campaign_name"));
-      reportDaily.setCharge(returnJson.getBigDecimal("charge"));
-      reportDaily.setShow(returnJson.getLong("show"));
-      reportDaily.setPhotoClick(returnJson.getLong("photo_click"));
-      reportDaily.setAclick(returnJson.getLong("aclick"));
-      reportDaily.setBclick(returnJson.getLong("bclick"));
-      reportDaily.setPhotoClickRatio(returnJson.getBigDecimal("photo_click_ratio"));
-      reportDaily.setPlay3sRatio(returnJson.getBigDecimal("play_3s_ratio"));
-      reportDaily.setActionRatio(returnJson.getBigDecimal("action_ratio"));
-      reportDaily.setImpression1kCost(returnJson.getBigDecimal("impression_1k_cost"));
-      reportDaily.setPhotoClickCost(returnJson.getBigDecimal("photo_click_cost"));
-      reportDaily.setActionCost(returnJson.getBigDecimal("action_cost"));
-      reportDaily.setShare(returnJson.getLong("share"));
-      reportDaily.setComment(returnJson.getLong("comment"));
-      reportDaily.setLike(returnJson.getLong("like"));
-      reportDaily.setFollow(returnJson.getLong("follow"));
-      reportDaily.setCancelFollow(returnJson.getLong("cancel_follow"));
-      reportDaily.setReport(returnJson.getLong("report"));
-      reportDaily.setBlock(returnJson.getLong("block"));
-      reportDaily.setNegative(returnJson.getLong("negative"));
-      reportDaily.setSubmit(returnJson.getLong("submit"));
-      reportDaily.setDownloadStarted(returnJson.getLong("download_started"));
-      reportDaily.setDownloadCompleted(returnJson.getLong("download_completed"));
-      reportDaily.setActivation(returnJson.getLong("activation"));
-      reportDaily.setEventPayFirstDay(returnJson.getLong("event_pay_first_day"));
-      reportDaily.setEventPayPurchaseAmountFirstDay(returnJson.getBigDecimal("event_pay_purchase_amount_first_day"));
-      reportDaily.setEventPayFirstDayRoi(returnJson.getBigDecimal("event_pay_first_day_roi"));
-      reportDaily.setEventPay(returnJson.getLong("event_pay"));
-      reportDaily.setEventPayPurchaseAmount(returnJson.getBigDecimal("event_pay_purchase_amount"));
-      reportDaily.setEventPayRoi(returnJson.getBigDecimal("event_pay_roi"));
-      reportDaily.setEventRegister(returnJson.getLong("event_register"));
-      reportDaily.setEventRegisterCost(returnJson.getBigDecimal("event_register_cost"));
-      reportDaily.setEventRegisterRatio(returnJson.getBigDecimal("event_register_ratio"));
-      reportDaily.setEventJinJianApp(returnJson.getLong("event_jin_jian_app"));
-      reportDaily.setEventJinJianAppCost(returnJson.getBigDecimal("event_jin_jian_app_cost"));
-      reportDaily.setEventCreditGrantApp(returnJson.getLong("event_credit_grant_app"));
-      reportDaily.setEventCreditGrantAppCost(returnJson.getBigDecimal("event_credit_grant_app_cost"));
-      reportDaily.setEventCreditGrantAppRatio(returnJson.getBigDecimal("event_credit_grant_app_ratio"));
-      reportDaily.setEventOrderPaid(returnJson.getLong("event_order_paid"));
-      reportDaily.setEventOrderPaidPurchaseAmount(returnJson.getBigDecimal("event_order_paid_purchase_amount"));
-      reportDaily.setEventOrderPaidCost(returnJson.getBigDecimal("event_order_paid_cost"));
-      reportDaily.setEventNextDayStay(returnJson.getLong("event_next_day_stay"));
-      reportDaily.setEventNextDayStayCost(returnJson.getBigDecimal("event_next_day_stay_cost"));
-      reportDaily.setEventNextDayStayRatio(returnJson.getBigDecimal("event_next_day_stay_ratio"));
-      reportDaily.setFormCount(returnJson.getLong("form_count"));
-      reportDaily.setFormCost(returnJson.getBigDecimal("form_cost"));
-      reportDaily.setFormActionRatio(returnJson.getBigDecimal("form_action_ratio"));
-      reportDaily.setEventJinJianLandingPage(returnJson.getLong("event_jin_jian_landing_page"));
-      reportDaily.setEventJinJianLandingPageCost(returnJson.getBigDecimal("event_jin_jian_landing_page_cost"));
-      reportDaily.setEventCreditGrantLandingPage(returnJson.getLong("event_credit_grant_landing_page"));
-      reportDaily.setEventCreditGrantLandingPageCost(returnJson.getBigDecimal("event_credit_grant_landing_page_cost"));
-      reportDaily.setEventCreditGrantLandingPageRatio(returnJson.getBigDecimal("event_credit_grant_landing_page_ratio"));
-      reportDaily.setEventValidClues(returnJson.getLong("event_valid_clues"));
-      reportDaily.setEventValidCluesCost(returnJson.getBigDecimal("event_valid_clues_cost"));
-      reportDaily.setEventAddWechat(returnJson.getLong("event_add_wechat"));
-      reportDaily.setEventAddWechatCost(returnJson.getBigDecimal("event_add_wechat_cost"));
-      reportDaily.setEventAddWechatRatio(returnJson.getBigDecimal("event_add_wechat_ratio"));
-      reportDaily.setEventGetThrough(returnJson.getLong("event_get_through"));
-      reportDaily.setEventGetThroughCost(returnJson.getBigDecimal("event_get_through_cost"));
-      reportDaily.setEventGetThroughRatio(returnJson.getBigDecimal("event_get_through_ratio"));
-      reportDaily.setEventAppInvoked(returnJson.getLong("event_app_invoked"));
-      reportDaily.setEventAppInvokedCost(returnJson.getBigDecimal("event_app_invoked_cost"));
-      reportDaily.setEventAppInvokedRatio(returnJson.getBigDecimal("event_app_invoked_ratio"));
-      reportDaily.setEventCreditGrantLandingRatio(returnJson.getBigDecimal("event_credit_grant_landing_ratio"));
-      reportDaily.setPlay5sRatio(returnJson.getBigDecimal("play_5s_ratio"));
-      reportDaily.setPlayEndRatio(returnJson.getBigDecimal("play_end_ratio"));
-      reportDaily.setEventNewUserPay(returnJson.getBigDecimal("event_new_user_pay"));
-      reportDaily.setEventNewUserPayCost(returnJson.getBigDecimal("event_new_user_pay_cost"));
-      reportDaily.setEventNewUserPayRatio(returnJson.getBigDecimal("event_new_user_pay_ratio"));
-      reportDaily.setClick1kCost(returnJson.getBigDecimal("click_1k_cost"));
-      reportDaily.setAdProductCnt(returnJson.getLong("ad_product_cnt"));
-      reportDaily.setEventGoodsView(returnJson.getLong("event_goods_view"));
-      reportDaily.setMerchantRecoFans(returnJson.getLong("merchant_reco_fans"));
-      reportDaily.setEventGoodsViewCost(returnJson.getBigDecimal("event_goods_view_cost"));
-      reportDaily.setMerchantRecoFansCost(returnJson.getBigDecimal("merchant_reco_fans_cost"));
-      reportDaily.setEventOrderAmountRoi(returnJson.getBigDecimal("event_order_amount_roi"));
-      reportDaily.setEventButtonClick(returnJson.getLong("event_button_click"));
-      reportDaily.setEventButtonClickCost(returnJson.getBigDecimal("event_button_click_cost"));
-      reportDaily.setEventButtonClickRatio(returnJson.getBigDecimal("event_button_click_ratio"));
-      reportDaily.setEventOrderPaidRoi(returnJson.getBigDecimal("event_order_paid_roi"));
-      reportDaily.setEventNewUserJinjianApp(returnJson.getLong("event_new_user_jinjian_app"));
-      reportDaily.setEventNewUserJinjianAppCost(returnJson.getBigDecimal("event_new_user_jinjian_app_cost"));
-      reportDaily.setEventNewUserJinjianAppRoi(returnJson.getBigDecimal("event_new_user_jinjian_app_roi"));
-      reportDaily.setEventNewUserCreditGrantApp(returnJson.getLong("event_new_user_credit_grant_app"));
-      reportDaily.setEventNewUserCreditGrantAppCost(returnJson.getBigDecimal("event_new_user_credit_grant_app_cost"));
-      reportDaily.setEventNewUserCreditGrantAppRoi(returnJson.getBigDecimal("event_new_user_credit_grant_app_roi"));
-      reportDaily.setEventNewUserJinjianPage(returnJson.getLong("event_new_user_jinjian_page"));
-      reportDaily.setEventNewUserJinjianPageCost(returnJson.getBigDecimal("event_new_user_jinjian_page_cost"));
-      reportDaily.setEventNewUserJinjianPageRoi(returnJson.getBigDecimal("event_new_user_jinjian_page_roi"));
-      reportDaily.setEventNewUserCreditGrantPage(returnJson.getLong("event_new_user_credit_grant_page"));
-      reportDaily.setEventNewUserCreditGrantPageCost(returnJson.getBigDecimal("event_new_user_credit_grant_page_cost"));
-      reportDaily.setEventNewUserCreditGrantPageRoi(returnJson.getBigDecimal("event_new_user_credit_grant_page_roi"));
-      reportDaily.setEventAppointForm(returnJson.getLong("event_appoint_form"));
-      reportDaily.setEventAppointFormCost(returnJson.getBigDecimal("event_appoint_form_cost"));
-      reportDaily.setEventAppointFormRatio(returnJson.getBigDecimal("event_appoint_form_ratio"));
-      reportDaily.setEventAppointJumpClick(returnJson.getLong("event_appoint_jump_click"));
-      reportDaily.setEventAppointJumpClickCost(returnJson.getBigDecimal("event_appoint_jump_click_cost"));
-      reportDaily.setEventAppointJumpClickRatio(returnJson.getBigDecimal("event_appoint_jump_click_ratio"));
-      reportDaily.setUnionEventPayPurchaseAmount7d(returnJson.getLong("union_event_pay_purchase_amount_7d"));
-      reportDaily.setUnionEventPayPurchaseAmount7dRoi(returnJson.getBigDecimal("union_event_pay_purchase_amount_7d_roi"));
-      reportDaily.setPlacementType(returnJson.getString("placement_type"));
-      reportDaily.setAdScene(returnJson.getString("ad_scene"));
-      reportDaily.setEventOrderSuccessed(returnJson.getLong("event_order_successed"));
-      reportDaily.setAdPhotoPlayed10sRatio(returnJson.getBigDecimal("ad_photo_played_10s_ratio"));
-      reportDaily.setKeyActionCost(returnJson.getBigDecimal("key_action_cost"));
-      reportDaily.setEventAddShoppingCartCost(returnJson.getBigDecimal("event_add_shopping_cart_cost"));
-      reportDaily.setEventAdWatchTimesRatio(returnJson.getBigDecimal("event_ad_watch_times_ratio"));
-      reportDaily.setEventOutboundCallCost(returnJson.getBigDecimal("event_outbound_call_cost"));
-      reportDaily.setEventOutboundCall(returnJson.getLong("event_outbound_call"));
-      reportDaily.setActionNewRatio(returnJson.getBigDecimal("action_new_ratio"));
-      reportDaily.setEventWatchAppAd(returnJson.getLong("event_watch_app_ad"));
-      reportDaily.setEventMultiConversionCost(returnJson.getBigDecimal("event_multi_conversion_cost"));
-      reportDaily.setEventPhoneCardActivate(returnJson.getLong("event_phone_card_activate"));
-      reportDaily.setAdPhotoPlayed75percentRatio(returnJson.getBigDecimal("ad_photo_played_75percent_ratio"));
-      reportDaily.setKeyActionRatio(returnJson.getBigDecimal("key_action_ratio"));
-      reportDaily.setEventAdWatchTimesCost(returnJson.getBigDecimal("event_ad_watch_times_cost"));
-      reportDaily.setEventAddShoppingCart(returnJson.getLong("event_add_shopping_cart"));
-      reportDaily.setKeyAction(returnJson.getLong("key_action"));
-      reportDaily.setEventMultiConversion(returnJson.getLong("event_multi_conversion"));
-      reportDaily.setEventWechatConnected(returnJson.getLong("event_wechat_connected"));
-      reportDaily.setEventDspGiftForm(returnJson.getLong("event_dsp_gift_form"));
-      reportDaily.setEventIntentionConfirmed(returnJson.getLong("event_intention_confirmed"));
-      reportDaily.setEventPhoneGetThrough(returnJson.getLong("event_phone_get_through"));
-      reportDaily.setEventMultiConversionRatio(returnJson.getBigDecimal("event_multi_conversion_ratio"));
-      reportDaily.setEventMeasurementHouse(returnJson.getBigDecimal("event_measurement_house"));
-      reportDaily.setAdPhotoPlayed2sRatio(returnJson.getBigDecimal("ad_photo_played_2s_ratio"));
-      reportDaily.setEventOutboundCallRatio(returnJson.getBigDecimal("event_outbound_call_ratio"));
-      reportDaily.setEventAdWatchTimes(returnJson.getLong("event_ad_watch_times"));
-      addList.add(reportDaily);
-    }
-      campaignReportDailyMapper.replaceBatch(addList);
-    if(toGet){
-      getCampaignReportDaily(advertiserId,  accessToken,  startDate,  endDate,  page + 1);
-    }else {
-      log.info("计划日报数据获取完成:accountId:{}", advertiserId);
-    }
+    @Override
+    public void getCampaignReportDaily(
+            Long advertiserId, String accessToken, String startDate, String endDate, int page) {
+        String url = postUrl + KuaishouConstant.CAMPAIGN_REPORT;
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Access-Token", accessToken);
+        Map<String, Object> param = new HashMap<>();
+        param.put("start_date", startDate);
+        param.put("end_date", endDate);
+        param.put("advertiser_id", advertiserId);
+        param.put("temporal_granularity", "DAILY");
+        Integer page_size = 2000;
+        param.put("page_size", page_size);
+        param.put("page", page);
+        String result = HttpUtils.httpPostRequest(url, param, headers);
+        JSONObject resultJson = JSONObject.parseObject(result);
+        Integer code = resultJson.getInteger("code");
+        String message = resultJson.getString("message");
+        if (null == code || code != 0) {
+            log.error("获取快手广告计划日报表异常:{},accountId:{}", message, advertiserId);
+            return;
+        }
+        JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
+        if (null == details || details.size() <= 0) {
+            log.error("快手计划日报返回详情为空,accountId:{}", advertiserId);
+            return;
+        }
+        Boolean toGet = true;
+        if (details.size() < page_size) {
+            toGet = false;
+        }
+        List<KuaishouCampaignReportDaily> addList = new ArrayList<>();
+        for (int i = 0; i < details.size(); i++) {
+            JSONObject returnJson = details.getJSONObject(i);
+            KuaishouCampaignReportDaily reportDaily = new KuaishouCampaignReportDaily();
+            reportDaily.setAdvertiserId(advertiserId);
+            reportDaily.setStatDate(DateUtils.getDateInteger(returnJson.getString("stat_date")));
+            reportDaily.setCampaignId(returnJson.getLong("campaign_id"));
+            reportDaily.setCampaignName(returnJson.getString("campaign_name"));
+            reportDaily.setCharge(returnJson.getBigDecimal("charge"));
+            reportDaily.setShow(returnJson.getLong("show"));
+            reportDaily.setPhotoClick(returnJson.getLong("photo_click"));
+            reportDaily.setAclick(returnJson.getLong("aclick"));
+            reportDaily.setBclick(returnJson.getLong("bclick"));
+            reportDaily.setPhotoClickRatio(returnJson.getBigDecimal("photo_click_ratio"));
+            reportDaily.setPlay3sRatio(returnJson.getBigDecimal("play_3s_ratio"));
+            reportDaily.setActionRatio(returnJson.getBigDecimal("action_ratio"));
+            reportDaily.setImpression1kCost(returnJson.getBigDecimal("impression_1k_cost"));
+            reportDaily.setPhotoClickCost(returnJson.getBigDecimal("photo_click_cost"));
+            reportDaily.setActionCost(returnJson.getBigDecimal("action_cost"));
+            reportDaily.setShare(returnJson.getLong("share"));
+            reportDaily.setComment(returnJson.getLong("comment"));
+            reportDaily.setLike(returnJson.getLong("like"));
+            reportDaily.setFollow(returnJson.getLong("follow"));
+            reportDaily.setCancelFollow(returnJson.getLong("cancel_follow"));
+            reportDaily.setReport(returnJson.getLong("report"));
+            reportDaily.setBlock(returnJson.getLong("block"));
+            reportDaily.setNegative(returnJson.getLong("negative"));
+            reportDaily.setSubmit(returnJson.getLong("submit"));
+            reportDaily.setDownloadStarted(returnJson.getLong("download_started"));
+            reportDaily.setDownloadCompleted(returnJson.getLong("download_completed"));
+            reportDaily.setActivation(returnJson.getLong("activation"));
+            reportDaily.setEventPayFirstDay(returnJson.getLong("event_pay_first_day"));
+            reportDaily.setEventPayPurchaseAmountFirstDay(returnJson.getBigDecimal("event_pay_purchase_amount_first_day"));
+            reportDaily.setEventPayFirstDayRoi(returnJson.getBigDecimal("event_pay_first_day_roi"));
+            reportDaily.setEventPay(returnJson.getLong("event_pay"));
+            reportDaily.setEventPayPurchaseAmount(returnJson.getBigDecimal("event_pay_purchase_amount"));
+            reportDaily.setEventPayRoi(returnJson.getBigDecimal("event_pay_roi"));
+            reportDaily.setEventRegister(returnJson.getLong("event_register"));
+            reportDaily.setEventRegisterCost(returnJson.getBigDecimal("event_register_cost"));
+            reportDaily.setEventRegisterRatio(returnJson.getBigDecimal("event_register_ratio"));
+            reportDaily.setEventJinJianApp(returnJson.getLong("event_jin_jian_app"));
+            reportDaily.setEventJinJianAppCost(returnJson.getBigDecimal("event_jin_jian_app_cost"));
+            reportDaily.setEventCreditGrantApp(returnJson.getLong("event_credit_grant_app"));
+            reportDaily.setEventCreditGrantAppCost(returnJson.getBigDecimal("event_credit_grant_app_cost"));
+            reportDaily.setEventCreditGrantAppRatio(returnJson.getBigDecimal("event_credit_grant_app_ratio"));
+            reportDaily.setEventOrderPaid(returnJson.getLong("event_order_paid"));
+            reportDaily.setEventOrderPaidPurchaseAmount(returnJson.getBigDecimal("event_order_paid_purchase_amount"));
+            reportDaily.setEventOrderPaidCost(returnJson.getBigDecimal("event_order_paid_cost"));
+            reportDaily.setEventNextDayStay(returnJson.getLong("event_next_day_stay"));
+            reportDaily.setEventNextDayStayCost(returnJson.getBigDecimal("event_next_day_stay_cost"));
+            reportDaily.setEventNextDayStayRatio(returnJson.getBigDecimal("event_next_day_stay_ratio"));
+            reportDaily.setFormCount(returnJson.getLong("form_count"));
+            reportDaily.setFormCost(returnJson.getBigDecimal("form_cost"));
+            reportDaily.setFormActionRatio(returnJson.getBigDecimal("form_action_ratio"));
+            reportDaily.setEventJinJianLandingPage(returnJson.getLong("event_jin_jian_landing_page"));
+            reportDaily.setEventJinJianLandingPageCost(returnJson.getBigDecimal("event_jin_jian_landing_page_cost"));
+            reportDaily.setEventCreditGrantLandingPage(returnJson.getLong("event_credit_grant_landing_page"));
+            reportDaily.setEventCreditGrantLandingPageCost(returnJson.getBigDecimal("event_credit_grant_landing_page_cost"));
+            reportDaily.setEventCreditGrantLandingPageRatio(returnJson.getBigDecimal("event_credit_grant_landing_page_ratio"));
+            reportDaily.setEventValidClues(returnJson.getLong("event_valid_clues"));
+            reportDaily.setEventValidCluesCost(returnJson.getBigDecimal("event_valid_clues_cost"));
+            reportDaily.setEventAddWechat(returnJson.getLong("event_add_wechat"));
+            reportDaily.setEventAddWechatCost(returnJson.getBigDecimal("event_add_wechat_cost"));
+            reportDaily.setEventAddWechatRatio(returnJson.getBigDecimal("event_add_wechat_ratio"));
+            reportDaily.setEventGetThrough(returnJson.getLong("event_get_through"));
+            reportDaily.setEventGetThroughCost(returnJson.getBigDecimal("event_get_through_cost"));
+            reportDaily.setEventGetThroughRatio(returnJson.getBigDecimal("event_get_through_ratio"));
+            reportDaily.setEventAppInvoked(returnJson.getLong("event_app_invoked"));
+            reportDaily.setEventAppInvokedCost(returnJson.getBigDecimal("event_app_invoked_cost"));
+            reportDaily.setEventAppInvokedRatio(returnJson.getBigDecimal("event_app_invoked_ratio"));
+            reportDaily.setEventCreditGrantLandingRatio(returnJson.getBigDecimal("event_credit_grant_landing_ratio"));
+            reportDaily.setPlay5sRatio(returnJson.getBigDecimal("play_5s_ratio"));
+            reportDaily.setPlayEndRatio(returnJson.getBigDecimal("play_end_ratio"));
+            reportDaily.setEventNewUserPay(returnJson.getBigDecimal("event_new_user_pay"));
+            reportDaily.setEventNewUserPayCost(returnJson.getBigDecimal("event_new_user_pay_cost"));
+            reportDaily.setEventNewUserPayRatio(returnJson.getBigDecimal("event_new_user_pay_ratio"));
+            reportDaily.setClick1kCost(returnJson.getBigDecimal("click_1k_cost"));
+            reportDaily.setAdProductCnt(returnJson.getLong("ad_product_cnt"));
+            reportDaily.setEventGoodsView(returnJson.getLong("event_goods_view"));
+            reportDaily.setMerchantRecoFans(returnJson.getLong("merchant_reco_fans"));
+            reportDaily.setEventGoodsViewCost(returnJson.getBigDecimal("event_goods_view_cost"));
+            reportDaily.setMerchantRecoFansCost(returnJson.getBigDecimal("merchant_reco_fans_cost"));
+            reportDaily.setEventOrderAmountRoi(returnJson.getBigDecimal("event_order_amount_roi"));
+            reportDaily.setEventButtonClick(returnJson.getLong("event_button_click"));
+            reportDaily.setEventButtonClickCost(returnJson.getBigDecimal("event_button_click_cost"));
+            reportDaily.setEventButtonClickRatio(returnJson.getBigDecimal("event_button_click_ratio"));
+            reportDaily.setEventOrderPaidRoi(returnJson.getBigDecimal("event_order_paid_roi"));
+            reportDaily.setEventNewUserJinjianApp(returnJson.getLong("event_new_user_jinjian_app"));
+            reportDaily.setEventNewUserJinjianAppCost(returnJson.getBigDecimal("event_new_user_jinjian_app_cost"));
+            reportDaily.setEventNewUserJinjianAppRoi(returnJson.getBigDecimal("event_new_user_jinjian_app_roi"));
+            reportDaily.setEventNewUserCreditGrantApp(returnJson.getLong("event_new_user_credit_grant_app"));
+            reportDaily.setEventNewUserCreditGrantAppCost(returnJson.getBigDecimal("event_new_user_credit_grant_app_cost"));
+            reportDaily.setEventNewUserCreditGrantAppRoi(returnJson.getBigDecimal("event_new_user_credit_grant_app_roi"));
+            reportDaily.setEventNewUserJinjianPage(returnJson.getLong("event_new_user_jinjian_page"));
+            reportDaily.setEventNewUserJinjianPageCost(returnJson.getBigDecimal("event_new_user_jinjian_page_cost"));
+            reportDaily.setEventNewUserJinjianPageRoi(returnJson.getBigDecimal("event_new_user_jinjian_page_roi"));
+            reportDaily.setEventNewUserCreditGrantPage(returnJson.getLong("event_new_user_credit_grant_page"));
+            reportDaily.setEventNewUserCreditGrantPageCost(returnJson.getBigDecimal("event_new_user_credit_grant_page_cost"));
+            reportDaily.setEventNewUserCreditGrantPageRoi(returnJson.getBigDecimal("event_new_user_credit_grant_page_roi"));
+            reportDaily.setEventAppointForm(returnJson.getLong("event_appoint_form"));
+            reportDaily.setEventAppointFormCost(returnJson.getBigDecimal("event_appoint_form_cost"));
+            reportDaily.setEventAppointFormRatio(returnJson.getBigDecimal("event_appoint_form_ratio"));
+            reportDaily.setEventAppointJumpClick(returnJson.getLong("event_appoint_jump_click"));
+            reportDaily.setEventAppointJumpClickCost(returnJson.getBigDecimal("event_appoint_jump_click_cost"));
+            reportDaily.setEventAppointJumpClickRatio(returnJson.getBigDecimal("event_appoint_jump_click_ratio"));
+            reportDaily.setUnionEventPayPurchaseAmount7d(returnJson.getLong("union_event_pay_purchase_amount_7d"));
+            reportDaily.setUnionEventPayPurchaseAmount7dRoi(returnJson.getBigDecimal("union_event_pay_purchase_amount_7d_roi"));
+            reportDaily.setPlacementType(returnJson.getString("placement_type"));
+            reportDaily.setAdScene(returnJson.getString("ad_scene"));
+            reportDaily.setEventOrderSuccessed(returnJson.getLong("event_order_successed"));
+            reportDaily.setAdPhotoPlayed10sRatio(returnJson.getBigDecimal("ad_photo_played_10s_ratio"));
+            reportDaily.setKeyActionCost(returnJson.getBigDecimal("key_action_cost"));
+            reportDaily.setEventAddShoppingCartCost(returnJson.getBigDecimal("event_add_shopping_cart_cost"));
+            reportDaily.setEventAdWatchTimesRatio(returnJson.getBigDecimal("event_ad_watch_times_ratio"));
+            reportDaily.setEventOutboundCallCost(returnJson.getBigDecimal("event_outbound_call_cost"));
+            reportDaily.setEventOutboundCall(returnJson.getLong("event_outbound_call"));
+            reportDaily.setActionNewRatio(returnJson.getBigDecimal("action_new_ratio"));
+            reportDaily.setEventWatchAppAd(returnJson.getLong("event_watch_app_ad"));
+            reportDaily.setEventMultiConversionCost(returnJson.getBigDecimal("event_multi_conversion_cost"));
+            reportDaily.setEventPhoneCardActivate(returnJson.getLong("event_phone_card_activate"));
+            reportDaily.setAdPhotoPlayed75percentRatio(returnJson.getBigDecimal("ad_photo_played_75percent_ratio"));
+            reportDaily.setKeyActionRatio(returnJson.getBigDecimal("key_action_ratio"));
+            reportDaily.setEventAdWatchTimesCost(returnJson.getBigDecimal("event_ad_watch_times_cost"));
+            reportDaily.setEventAddShoppingCart(returnJson.getLong("event_add_shopping_cart"));
+            reportDaily.setKeyAction(returnJson.getLong("key_action"));
+            reportDaily.setEventMultiConversion(returnJson.getLong("event_multi_conversion"));
+            reportDaily.setEventWechatConnected(returnJson.getLong("event_wechat_connected"));
+            reportDaily.setEventDspGiftForm(returnJson.getLong("event_dsp_gift_form"));
+            reportDaily.setEventIntentionConfirmed(returnJson.getLong("event_intention_confirmed"));
+            reportDaily.setEventPhoneGetThrough(returnJson.getLong("event_phone_get_through"));
+            reportDaily.setEventMultiConversionRatio(returnJson.getBigDecimal("event_multi_conversion_ratio"));
+            reportDaily.setEventMeasurementHouse(returnJson.getBigDecimal("event_measurement_house"));
+            reportDaily.setAdPhotoPlayed2sRatio(returnJson.getBigDecimal("ad_photo_played_2s_ratio"));
+            reportDaily.setEventOutboundCallRatio(returnJson.getBigDecimal("event_outbound_call_ratio"));
+            reportDaily.setEventAdWatchTimes(returnJson.getLong("event_ad_watch_times"));
+            addList.add(reportDaily);
+        }
+        campaignReportDailyMapper.replaceBatch(addList);
+        if (toGet) {
+            getCampaignReportDaily(advertiserId, accessToken, startDate, endDate, page + 1);
+        } else {
+            log.info("计划日报数据获取完成:accountId:{}", advertiserId);
+        }
 
-  }
+    }
 }

+ 178 - 177
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouCampaignReportHourlyServiceImpl.java

@@ -29,184 +29,185 @@ import java.util.Map;
 @Service
 public class KuaishouCampaignReportHourlyServiceImpl extends ServiceImpl<KuaishouCampaignReportHourlyMapper, KuaishouCampaignReportHourly> implements IKuaishouCampaignReportHourlyService {
 
-  @Value("${api.kuaishou.postUrl}")
-  private String postUrl;
+    @Value("${api.kuaishou.postUrl}")
+    private String postUrl;
 
-  @Autowired private KuaishouCampaignReportHourlyMapper campaignReportHourlyMapper;
+    @Autowired
+    private KuaishouCampaignReportHourlyMapper campaignReportHourlyMapper;
 
-  @Override
-  public void getCampaignReportHour(Long advertiserId, String accessToken, String startDate, String endDate, int page) {
-    String url = postUrl + KuaishouConstant.CAMPAIGN_REPORT;
-    Map<String, String> headers = new HashMap<>();
-    headers.put("Access-Token", accessToken);
-    Map<String, Object> param = new HashMap<>();
-    param.put("start_date", startDate);
-    param.put("end_date", endDate);
-    param.put("advertiser_id", advertiserId);
-    param.put("temporal_granularity", "HOURLY");
-    Integer page_size = 2000;
-    param.put("page_size", page_size);
-    param.put("page", page);
-    String result = HttpUtils.httpPostRequest(url, param, headers);
-    JSONObject resultJson = JSONObject.parseObject(result);
-    Integer code = resultJson.getInteger("code");
-    String message = resultJson.getString("message");
-    if (null == code || code != 0) {
-      log.error("获取快手广告计划时报表异常:{},accountId:{}", message, advertiserId);
-      return;
+    @Override
+    public void getCampaignReportHour(Long advertiserId, String accessToken, String startDate, String endDate, int page) {
+        String url = postUrl + KuaishouConstant.CAMPAIGN_REPORT;
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Access-Token", accessToken);
+        Map<String, Object> param = new HashMap<>();
+        param.put("start_date", startDate);
+        param.put("end_date", endDate);
+        param.put("advertiser_id", advertiserId);
+        param.put("temporal_granularity", "HOURLY");
+        Integer page_size = 2000;
+        param.put("page_size", page_size);
+        param.put("page", page);
+        String result = HttpUtils.httpPostRequest(url, param, headers);
+        JSONObject resultJson = JSONObject.parseObject(result);
+        Integer code = resultJson.getInteger("code");
+        String message = resultJson.getString("message");
+        if (null == code || code != 0) {
+            log.error("获取快手广告计划时报表异常:{},accountId:{}", message, advertiserId);
+            return;
+        }
+        JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
+        if (null == details || details.size() <= 0) {
+            log.error("快手计划时报返回详情为空,accountId:{}", advertiserId);
+            return;
+        }
+        Boolean toGet = true;
+        if (details.size() < page_size) {
+            toGet = false;
+        }
+        List<KuaishouCampaignReportHourly> addList = new ArrayList<>();
+        for (int i = 0; i < details.size(); i++) {
+            JSONObject returnJson = details.getJSONObject(i);
+            KuaishouCampaignReportHourly reportHour = new KuaishouCampaignReportHourly();
+            reportHour.setAdvertiserId(advertiserId);
+            reportHour.setStatDate(DateUtils.getDateInteger(returnJson.getString("stat_date")));
+            reportHour.setHour(returnJson.getInteger("stat_hour"));
+            reportHour.setCampaignId(returnJson.getLong("campaign_id"));
+            reportHour.setCampaignName(returnJson.getString("campaign_name"));
+            reportHour.setCharge(returnJson.getBigDecimal("charge"));
+            reportHour.setShow(returnJson.getLong("show"));
+            reportHour.setPhotoClick(returnJson.getLong("photo_click"));
+            reportHour.setAclick(returnJson.getLong("aclick"));
+            reportHour.setBclick(returnJson.getLong("bclick"));
+            reportHour.setPhotoClickRatio(returnJson.getBigDecimal("photo_click_ratio"));
+            reportHour.setPlay3sRatio(returnJson.getBigDecimal("play_3s_ratio"));
+            reportHour.setActionRatio(returnJson.getBigDecimal("action_ratio"));
+            reportHour.setImpression1kCost(returnJson.getBigDecimal("impression_1k_cost"));
+            reportHour.setPhotoClickCost(returnJson.getBigDecimal("photo_click_cost"));
+            reportHour.setActionCost(returnJson.getBigDecimal("action_cost"));
+            reportHour.setShare(returnJson.getLong("share"));
+            reportHour.setComment(returnJson.getLong("comment"));
+            reportHour.setLike(returnJson.getLong("like"));
+            reportHour.setFollow(returnJson.getLong("follow"));
+            reportHour.setCancelFollow(returnJson.getLong("cancel_follow"));
+            reportHour.setReport(returnJson.getLong("report"));
+            reportHour.setBlock(returnJson.getLong("block"));
+            reportHour.setNegative(returnJson.getLong("negative"));
+            reportHour.setSubmit(returnJson.getLong("submit"));
+            reportHour.setDownloadStarted(returnJson.getLong("download_started"));
+            reportHour.setDownloadCompleted(returnJson.getLong("download_completed"));
+            reportHour.setActivation(returnJson.getLong("activation"));
+            reportHour.setEventPayFirstDay(returnJson.getLong("event_pay_first_day"));
+            reportHour.setEventPayPurchaseAmountFirstDay(returnJson.getBigDecimal("event_pay_purchase_amount_first_day"));
+            reportHour.setEventPayFirstDayRoi(returnJson.getBigDecimal("event_pay_first_day_roi"));
+            reportHour.setEventPay(returnJson.getLong("event_pay"));
+            reportHour.setEventPayPurchaseAmount(returnJson.getBigDecimal("event_pay_purchase_amount"));
+            reportHour.setEventPayRoi(returnJson.getBigDecimal("event_pay_roi"));
+            reportHour.setEventRegister(returnJson.getLong("event_register"));
+            reportHour.setEventRegisterCost(returnJson.getBigDecimal("event_register_cost"));
+            reportHour.setEventRegisterRatio(returnJson.getBigDecimal("event_register_ratio"));
+            reportHour.setEventJinJianApp(returnJson.getLong("event_jin_jian_app"));
+            reportHour.setEventJinJianAppCost(returnJson.getBigDecimal("event_jin_jian_app_cost"));
+            reportHour.setEventCreditGrantApp(returnJson.getLong("event_credit_grant_app"));
+            reportHour.setEventCreditGrantAppCost(returnJson.getBigDecimal("event_credit_grant_app_cost"));
+            reportHour.setEventCreditGrantAppRatio(returnJson.getBigDecimal("event_credit_grant_app_ratio"));
+            reportHour.setEventOrderPaid(returnJson.getLong("event_order_paid"));
+            reportHour.setEventOrderPaidPurchaseAmount(returnJson.getBigDecimal("event_order_paid_purchase_amount"));
+            reportHour.setEventOrderPaidCost(returnJson.getBigDecimal("event_order_paid_cost"));
+            reportHour.setEventNextDayStay(returnJson.getLong("event_next_day_stay"));
+            reportHour.setEventNextDayStayCost(returnJson.getBigDecimal("event_next_day_stay_cost"));
+            reportHour.setEventNextDayStayRatio(returnJson.getBigDecimal("event_next_day_stay_ratio"));
+            reportHour.setFormCount(returnJson.getLong("form_count"));
+            reportHour.setFormCost(returnJson.getBigDecimal("form_cost"));
+            reportHour.setFormActionRatio(returnJson.getBigDecimal("form_action_ratio"));
+            reportHour.setEventJinJianLandingPage(returnJson.getLong("event_jin_jian_landing_page"));
+            reportHour.setEventJinJianLandingPageCost(returnJson.getBigDecimal("event_jin_jian_landing_page_cost"));
+            reportHour.setEventCreditGrantLandingPage(returnJson.getLong("event_credit_grant_landing_page"));
+            reportHour.setEventCreditGrantLandingPageCost(returnJson.getBigDecimal("event_credit_grant_landing_page_cost"));
+            reportHour.setEventCreditGrantLandingPageRatio(returnJson.getBigDecimal("event_credit_grant_landing_page_ratio"));
+            reportHour.setEventValidClues(returnJson.getLong("event_valid_clues"));
+            reportHour.setEventValidCluesCost(returnJson.getBigDecimal("event_valid_clues_cost"));
+            reportHour.setEventAddWechat(returnJson.getLong("event_add_wechat"));
+            reportHour.setEventAddWechatCost(returnJson.getBigDecimal("event_add_wechat_cost"));
+            reportHour.setEventAddWechatRatio(returnJson.getBigDecimal("event_add_wechat_ratio"));
+            reportHour.setEventGetThrough(returnJson.getLong("event_get_through"));
+            reportHour.setEventGetThroughCost(returnJson.getBigDecimal("event_get_through_cost"));
+            reportHour.setEventGetThroughRatio(returnJson.getBigDecimal("event_get_through_ratio"));
+            reportHour.setEventAppInvoked(returnJson.getLong("event_app_invoked"));
+            reportHour.setEventAppInvokedCost(returnJson.getBigDecimal("event_app_invoked_cost"));
+            reportHour.setEventAppInvokedRatio(returnJson.getBigDecimal("event_app_invoked_ratio"));
+            reportHour.setEventCreditGrantLandingRatio(returnJson.getBigDecimal("event_credit_grant_landing_ratio"));
+            reportHour.setPlay5sRatio(returnJson.getBigDecimal("play_5s_ratio"));
+            reportHour.setPlayEndRatio(returnJson.getBigDecimal("play_end_ratio"));
+            reportHour.setEventNewUserPay(returnJson.getBigDecimal("event_new_user_pay"));
+            reportHour.setEventNewUserPayCost(returnJson.getBigDecimal("event_new_user_pay_cost"));
+            reportHour.setEventNewUserPayRatio(returnJson.getBigDecimal("event_new_user_pay_ratio"));
+            reportHour.setClick1kCost(returnJson.getBigDecimal("click_1k_cost"));
+            reportHour.setAdProductCnt(returnJson.getLong("ad_product_cnt"));
+            reportHour.setEventGoodsView(returnJson.getLong("event_goods_view"));
+            reportHour.setMerchantRecoFans(returnJson.getLong("merchant_reco_fans"));
+            reportHour.setEventGoodsViewCost(returnJson.getBigDecimal("event_goods_view_cost"));
+            reportHour.setMerchantRecoFansCost(returnJson.getBigDecimal("merchant_reco_fans_cost"));
+            reportHour.setEventOrderAmountRoi(returnJson.getBigDecimal("event_order_amount_roi"));
+            reportHour.setEventButtonClick(returnJson.getLong("event_button_click"));
+            reportHour.setEventButtonClickCost(returnJson.getBigDecimal("event_button_click_cost"));
+            reportHour.setEventButtonClickRatio(returnJson.getBigDecimal("event_button_click_ratio"));
+            reportHour.setEventOrderPaidRoi(returnJson.getBigDecimal("event_order_paid_roi"));
+            reportHour.setEventNewUserJinjianApp(returnJson.getLong("event_new_user_jinjian_app"));
+            reportHour.setEventNewUserJinjianAppCost(returnJson.getBigDecimal("event_new_user_jinjian_app_cost"));
+            reportHour.setEventNewUserJinjianAppRoi(returnJson.getBigDecimal("event_new_user_jinjian_app_roi"));
+            reportHour.setEventNewUserCreditGrantApp(returnJson.getLong("event_new_user_credit_grant_app"));
+            reportHour.setEventNewUserCreditGrantAppCost(returnJson.getBigDecimal("event_new_user_credit_grant_app_cost"));
+            reportHour.setEventNewUserCreditGrantAppRoi(returnJson.getBigDecimal("event_new_user_credit_grant_app_roi"));
+            reportHour.setEventNewUserJinjianPage(returnJson.getLong("event_new_user_jinjian_page"));
+            reportHour.setEventNewUserJinjianPageCost(returnJson.getBigDecimal("event_new_user_jinjian_page_cost"));
+            reportHour.setEventNewUserJinjianPageRoi(returnJson.getBigDecimal("event_new_user_jinjian_page_roi"));
+            reportHour.setEventNewUserCreditGrantPage(returnJson.getLong("event_new_user_credit_grant_page"));
+            reportHour.setEventNewUserCreditGrantPageCost(returnJson.getBigDecimal("event_new_user_credit_grant_page_cost"));
+            reportHour.setEventNewUserCreditGrantPageRoi(returnJson.getBigDecimal("event_new_user_credit_grant_page_roi"));
+            reportHour.setEventAppointForm(returnJson.getLong("event_appoint_form"));
+            reportHour.setEventAppointFormCost(returnJson.getBigDecimal("event_appoint_form_cost"));
+            reportHour.setEventAppointFormRatio(returnJson.getBigDecimal("event_appoint_form_ratio"));
+            reportHour.setEventAppointJumpClick(returnJson.getLong("event_appoint_jump_click"));
+            reportHour.setEventAppointJumpClickCost(returnJson.getBigDecimal("event_appoint_jump_click_cost"));
+            reportHour.setEventAppointJumpClickRatio(returnJson.getBigDecimal("event_appoint_jump_click_ratio"));
+            reportHour.setUnionEventPayPurchaseAmount7d(returnJson.getLong("union_event_pay_purchase_amount_7d"));
+            reportHour.setUnionEventPayPurchaseAmount7dRoi(returnJson.getBigDecimal("union_event_pay_purchase_amount_7d_roi"));
+            reportHour.setPlacementType(returnJson.getString("placement_type"));
+            reportHour.setAdScene(returnJson.getString("ad_scene"));
+            reportHour.setEventOrderSuccessed(returnJson.getLong("event_order_successed"));
+            reportHour.setAdPhotoPlayed10sRatio(returnJson.getBigDecimal("ad_photo_played_10s_ratio"));
+            reportHour.setKeyActionCost(returnJson.getBigDecimal("key_action_cost"));
+            reportHour.setEventAddShoppingCartCost(returnJson.getBigDecimal("event_add_shopping_cart_cost"));
+            reportHour.setEventAdWatchTimesRatio(returnJson.getBigDecimal("event_ad_watch_times_ratio"));
+            reportHour.setEventOutboundCallCost(returnJson.getBigDecimal("event_outbound_call_cost"));
+            reportHour.setEventOutboundCall(returnJson.getLong("event_outbound_call"));
+            reportHour.setActionNewRatio(returnJson.getBigDecimal("action_new_ratio"));
+            reportHour.setEventWatchAppAd(returnJson.getLong("event_watch_app_ad"));
+            reportHour.setEventMultiConversionCost(returnJson.getBigDecimal("event_multi_conversion_cost"));
+            reportHour.setEventPhoneCardActivate(returnJson.getLong("event_phone_card_activate"));
+            reportHour.setAdPhotoPlayed75percentRatio(returnJson.getBigDecimal("ad_photo_played_75percent_ratio"));
+            reportHour.setKeyActionRatio(returnJson.getBigDecimal("key_action_ratio"));
+            reportHour.setEventAdWatchTimesCost(returnJson.getBigDecimal("event_ad_watch_times_cost"));
+            reportHour.setEventAddShoppingCart(returnJson.getLong("event_add_shopping_cart"));
+            reportHour.setKeyAction(returnJson.getLong("key_action"));
+            reportHour.setEventMultiConversion(returnJson.getLong("event_multi_conversion"));
+            reportHour.setEventWechatConnected(returnJson.getLong("event_wechat_connected"));
+            reportHour.setEventDspGiftForm(returnJson.getLong("event_dsp_gift_form"));
+            reportHour.setEventIntentionConfirmed(returnJson.getLong("event_intention_confirmed"));
+            reportHour.setEventPhoneGetThrough(returnJson.getLong("event_phone_get_through"));
+            reportHour.setEventMultiConversionRatio(returnJson.getBigDecimal("event_multi_conversion_ratio"));
+            reportHour.setEventMeasurementHouse(returnJson.getBigDecimal("event_measurement_house"));
+            reportHour.setAdPhotoPlayed2sRatio(returnJson.getBigDecimal("ad_photo_played_2s_ratio"));
+            reportHour.setEventOutboundCallRatio(returnJson.getBigDecimal("event_outbound_call_ratio"));
+            reportHour.setEventAdWatchTimes(returnJson.getLong("event_ad_watch_times"));
+            addList.add(reportHour);
+        }
+        campaignReportHourlyMapper.replaceBatch(addList);
+        if (toGet) {
+            getCampaignReportHour(advertiserId, accessToken, startDate, endDate, page + 1);
+        } else {
+            log.info("计划时报数据获取完成:accountId:{}", advertiserId);
+        }
     }
-    JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
-    if (null == details || details.size() <= 0) {
-      log.error("快手计划时报返回详情为空,accountId:{}", advertiserId);
-      return;
-    }
-    Boolean toGet = true;
-    if(details.size() < page_size){
-        toGet = false;
-    }
-    List<KuaishouCampaignReportHourly> addList = new ArrayList<>();
-    for (int i = 0; i < details.size(); i++) {
-      JSONObject returnJson = details.getJSONObject(i);
-      KuaishouCampaignReportHourly reportHour = new KuaishouCampaignReportHourly();
-      reportHour.setAdvertiserId(advertiserId);
-      reportHour.setStatDate(DateUtils.getDateInteger(returnJson.getString("stat_date")));
-      reportHour.setHour(returnJson.getInteger("stat_hour"));
-      reportHour.setCampaignId(returnJson.getLong("campaign_id"));
-      reportHour.setCampaignName(returnJson.getString("campaign_name"));
-      reportHour.setCharge(returnJson.getBigDecimal("charge"));
-      reportHour.setShow(returnJson.getLong("show"));
-      reportHour.setPhotoClick(returnJson.getLong("photo_click"));
-      reportHour.setAclick(returnJson.getLong("aclick"));
-      reportHour.setBclick(returnJson.getLong("bclick"));
-      reportHour.setPhotoClickRatio(returnJson.getBigDecimal("photo_click_ratio"));
-      reportHour.setPlay3sRatio(returnJson.getBigDecimal("play_3s_ratio"));
-      reportHour.setActionRatio(returnJson.getBigDecimal("action_ratio"));
-      reportHour.setImpression1kCost(returnJson.getBigDecimal("impression_1k_cost"));
-      reportHour.setPhotoClickCost(returnJson.getBigDecimal("photo_click_cost"));
-      reportHour.setActionCost(returnJson.getBigDecimal("action_cost"));
-      reportHour.setShare(returnJson.getLong("share"));
-      reportHour.setComment(returnJson.getLong("comment"));
-      reportHour.setLike(returnJson.getLong("like"));
-      reportHour.setFollow(returnJson.getLong("follow"));
-      reportHour.setCancelFollow(returnJson.getLong("cancel_follow"));
-      reportHour.setReport(returnJson.getLong("report"));
-      reportHour.setBlock(returnJson.getLong("block"));
-      reportHour.setNegative(returnJson.getLong("negative"));
-      reportHour.setSubmit(returnJson.getLong("submit"));
-      reportHour.setDownloadStarted(returnJson.getLong("download_started"));
-      reportHour.setDownloadCompleted(returnJson.getLong("download_completed"));
-      reportHour.setActivation(returnJson.getLong("activation"));
-      reportHour.setEventPayFirstDay(returnJson.getLong("event_pay_first_day"));
-      reportHour.setEventPayPurchaseAmountFirstDay(returnJson.getBigDecimal("event_pay_purchase_amount_first_day"));
-      reportHour.setEventPayFirstDayRoi(returnJson.getBigDecimal("event_pay_first_day_roi"));
-      reportHour.setEventPay(returnJson.getLong("event_pay"));
-      reportHour.setEventPayPurchaseAmount(returnJson.getBigDecimal("event_pay_purchase_amount"));
-      reportHour.setEventPayRoi(returnJson.getBigDecimal("event_pay_roi"));
-      reportHour.setEventRegister(returnJson.getLong("event_register"));
-      reportHour.setEventRegisterCost(returnJson.getBigDecimal("event_register_cost"));
-      reportHour.setEventRegisterRatio(returnJson.getBigDecimal("event_register_ratio"));
-      reportHour.setEventJinJianApp(returnJson.getLong("event_jin_jian_app"));
-      reportHour.setEventJinJianAppCost(returnJson.getBigDecimal("event_jin_jian_app_cost"));
-      reportHour.setEventCreditGrantApp(returnJson.getLong("event_credit_grant_app"));
-      reportHour.setEventCreditGrantAppCost(returnJson.getBigDecimal("event_credit_grant_app_cost"));
-      reportHour.setEventCreditGrantAppRatio(returnJson.getBigDecimal("event_credit_grant_app_ratio"));
-      reportHour.setEventOrderPaid(returnJson.getLong("event_order_paid"));
-      reportHour.setEventOrderPaidPurchaseAmount(returnJson.getBigDecimal("event_order_paid_purchase_amount"));
-      reportHour.setEventOrderPaidCost(returnJson.getBigDecimal("event_order_paid_cost"));
-      reportHour.setEventNextDayStay(returnJson.getLong("event_next_day_stay"));
-      reportHour.setEventNextDayStayCost(returnJson.getBigDecimal("event_next_day_stay_cost"));
-      reportHour.setEventNextDayStayRatio(returnJson.getBigDecimal("event_next_day_stay_ratio"));
-      reportHour.setFormCount(returnJson.getLong("form_count"));
-      reportHour.setFormCost(returnJson.getBigDecimal("form_cost"));
-      reportHour.setFormActionRatio(returnJson.getBigDecimal("form_action_ratio"));
-      reportHour.setEventJinJianLandingPage(returnJson.getLong("event_jin_jian_landing_page"));
-      reportHour.setEventJinJianLandingPageCost(returnJson.getBigDecimal("event_jin_jian_landing_page_cost"));
-      reportHour.setEventCreditGrantLandingPage(returnJson.getLong("event_credit_grant_landing_page"));
-      reportHour.setEventCreditGrantLandingPageCost(returnJson.getBigDecimal("event_credit_grant_landing_page_cost"));
-      reportHour.setEventCreditGrantLandingPageRatio(returnJson.getBigDecimal("event_credit_grant_landing_page_ratio"));
-      reportHour.setEventValidClues(returnJson.getLong("event_valid_clues"));
-      reportHour.setEventValidCluesCost(returnJson.getBigDecimal("event_valid_clues_cost"));
-      reportHour.setEventAddWechat(returnJson.getLong("event_add_wechat"));
-      reportHour.setEventAddWechatCost(returnJson.getBigDecimal("event_add_wechat_cost"));
-      reportHour.setEventAddWechatRatio(returnJson.getBigDecimal("event_add_wechat_ratio"));
-      reportHour.setEventGetThrough(returnJson.getLong("event_get_through"));
-      reportHour.setEventGetThroughCost(returnJson.getBigDecimal("event_get_through_cost"));
-      reportHour.setEventGetThroughRatio(returnJson.getBigDecimal("event_get_through_ratio"));
-      reportHour.setEventAppInvoked(returnJson.getLong("event_app_invoked"));
-      reportHour.setEventAppInvokedCost(returnJson.getBigDecimal("event_app_invoked_cost"));
-      reportHour.setEventAppInvokedRatio(returnJson.getBigDecimal("event_app_invoked_ratio"));
-      reportHour.setEventCreditGrantLandingRatio(returnJson.getBigDecimal("event_credit_grant_landing_ratio"));
-      reportHour.setPlay5sRatio(returnJson.getBigDecimal("play_5s_ratio"));
-      reportHour.setPlayEndRatio(returnJson.getBigDecimal("play_end_ratio"));
-      reportHour.setEventNewUserPay(returnJson.getBigDecimal("event_new_user_pay"));
-      reportHour.setEventNewUserPayCost(returnJson.getBigDecimal("event_new_user_pay_cost"));
-      reportHour.setEventNewUserPayRatio(returnJson.getBigDecimal("event_new_user_pay_ratio"));
-      reportHour.setClick1kCost(returnJson.getBigDecimal("click_1k_cost"));
-      reportHour.setAdProductCnt(returnJson.getLong("ad_product_cnt"));
-      reportHour.setEventGoodsView(returnJson.getLong("event_goods_view"));
-      reportHour.setMerchantRecoFans(returnJson.getLong("merchant_reco_fans"));
-      reportHour.setEventGoodsViewCost(returnJson.getBigDecimal("event_goods_view_cost"));
-      reportHour.setMerchantRecoFansCost(returnJson.getBigDecimal("merchant_reco_fans_cost"));
-      reportHour.setEventOrderAmountRoi(returnJson.getBigDecimal("event_order_amount_roi"));
-      reportHour.setEventButtonClick(returnJson.getLong("event_button_click"));
-      reportHour.setEventButtonClickCost(returnJson.getBigDecimal("event_button_click_cost"));
-      reportHour.setEventButtonClickRatio(returnJson.getBigDecimal("event_button_click_ratio"));
-      reportHour.setEventOrderPaidRoi(returnJson.getBigDecimal("event_order_paid_roi"));
-      reportHour.setEventNewUserJinjianApp(returnJson.getLong("event_new_user_jinjian_app"));
-      reportHour.setEventNewUserJinjianAppCost(returnJson.getBigDecimal("event_new_user_jinjian_app_cost"));
-      reportHour.setEventNewUserJinjianAppRoi(returnJson.getBigDecimal("event_new_user_jinjian_app_roi"));
-      reportHour.setEventNewUserCreditGrantApp(returnJson.getLong("event_new_user_credit_grant_app"));
-      reportHour.setEventNewUserCreditGrantAppCost(returnJson.getBigDecimal("event_new_user_credit_grant_app_cost"));
-      reportHour.setEventNewUserCreditGrantAppRoi(returnJson.getBigDecimal("event_new_user_credit_grant_app_roi"));
-      reportHour.setEventNewUserJinjianPage(returnJson.getLong("event_new_user_jinjian_page"));
-      reportHour.setEventNewUserJinjianPageCost(returnJson.getBigDecimal("event_new_user_jinjian_page_cost"));
-      reportHour.setEventNewUserJinjianPageRoi(returnJson.getBigDecimal("event_new_user_jinjian_page_roi"));
-      reportHour.setEventNewUserCreditGrantPage(returnJson.getLong("event_new_user_credit_grant_page"));
-      reportHour.setEventNewUserCreditGrantPageCost(returnJson.getBigDecimal("event_new_user_credit_grant_page_cost"));
-      reportHour.setEventNewUserCreditGrantPageRoi(returnJson.getBigDecimal("event_new_user_credit_grant_page_roi"));
-      reportHour.setEventAppointForm(returnJson.getLong("event_appoint_form"));
-      reportHour.setEventAppointFormCost(returnJson.getBigDecimal("event_appoint_form_cost"));
-      reportHour.setEventAppointFormRatio(returnJson.getBigDecimal("event_appoint_form_ratio"));
-      reportHour.setEventAppointJumpClick(returnJson.getLong("event_appoint_jump_click"));
-      reportHour.setEventAppointJumpClickCost(returnJson.getBigDecimal("event_appoint_jump_click_cost"));
-      reportHour.setEventAppointJumpClickRatio(returnJson.getBigDecimal("event_appoint_jump_click_ratio"));
-      reportHour.setUnionEventPayPurchaseAmount7d(returnJson.getLong("union_event_pay_purchase_amount_7d"));
-      reportHour.setUnionEventPayPurchaseAmount7dRoi(returnJson.getBigDecimal("union_event_pay_purchase_amount_7d_roi"));
-      reportHour.setPlacementType(returnJson.getString("placement_type"));
-      reportHour.setAdScene(returnJson.getString("ad_scene"));
-      reportHour.setEventOrderSuccessed(returnJson.getLong("event_order_successed"));
-      reportHour.setAdPhotoPlayed10sRatio(returnJson.getBigDecimal("ad_photo_played_10s_ratio"));
-      reportHour.setKeyActionCost(returnJson.getBigDecimal("key_action_cost"));
-      reportHour.setEventAddShoppingCartCost(returnJson.getBigDecimal("event_add_shopping_cart_cost"));
-      reportHour.setEventAdWatchTimesRatio(returnJson.getBigDecimal("event_ad_watch_times_ratio"));
-      reportHour.setEventOutboundCallCost(returnJson.getBigDecimal("event_outbound_call_cost"));
-      reportHour.setEventOutboundCall(returnJson.getLong("event_outbound_call"));
-      reportHour.setActionNewRatio(returnJson.getBigDecimal("action_new_ratio"));
-      reportHour.setEventWatchAppAd(returnJson.getLong("event_watch_app_ad"));
-      reportHour.setEventMultiConversionCost(returnJson.getBigDecimal("event_multi_conversion_cost"));
-      reportHour.setEventPhoneCardActivate(returnJson.getLong("event_phone_card_activate"));
-      reportHour.setAdPhotoPlayed75percentRatio(returnJson.getBigDecimal("ad_photo_played_75percent_ratio"));
-      reportHour.setKeyActionRatio(returnJson.getBigDecimal("key_action_ratio"));
-      reportHour.setEventAdWatchTimesCost(returnJson.getBigDecimal("event_ad_watch_times_cost"));
-      reportHour.setEventAddShoppingCart(returnJson.getLong("event_add_shopping_cart"));
-      reportHour.setKeyAction(returnJson.getLong("key_action"));
-      reportHour.setEventMultiConversion(returnJson.getLong("event_multi_conversion"));
-      reportHour.setEventWechatConnected(returnJson.getLong("event_wechat_connected"));
-      reportHour.setEventDspGiftForm(returnJson.getLong("event_dsp_gift_form"));
-      reportHour.setEventIntentionConfirmed(returnJson.getLong("event_intention_confirmed"));
-      reportHour.setEventPhoneGetThrough(returnJson.getLong("event_phone_get_through"));
-      reportHour.setEventMultiConversionRatio(returnJson.getBigDecimal("event_multi_conversion_ratio"));
-      reportHour.setEventMeasurementHouse(returnJson.getBigDecimal("event_measurement_house"));
-      reportHour.setAdPhotoPlayed2sRatio(returnJson.getBigDecimal("ad_photo_played_2s_ratio"));
-      reportHour.setEventOutboundCallRatio(returnJson.getBigDecimal("event_outbound_call_ratio"));
-      reportHour.setEventAdWatchTimes(returnJson.getLong("event_ad_watch_times"));
-      addList.add(reportHour);
-    }
-    campaignReportHourlyMapper.replaceBatch(addList);
-    if(toGet){
-        getCampaignReportHour(advertiserId,  accessToken,  startDate,  endDate,  page + 1);
-    }else {
-        log.info("计划时报数据获取完成:accountId:{}", advertiserId);
-    }
-  }
 }

+ 7 - 9
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouCreativeReportDailyServiceImpl.java

@@ -2,7 +2,6 @@ package cn.com.ctop.job.kuaishou.data.service.impl;
 
 import cn.com.ctop.job.kuaishou.data.constant.KuaishouConstant;
 import cn.com.ctop.job.kuaishou.data.entity.KuaishouCreativeReportDaily;
-import cn.com.ctop.job.kuaishou.data.entity.KuaishouUnitReportDaily;
 import cn.com.ctop.job.kuaishou.data.mapper.KuaishouCreativeReportDailyMapper;
 import cn.com.ctop.job.kuaishou.data.service.IKuaishouCreativeReportDailyService;
 import cn.com.ctop.job.kuaishou.data.utils.DateUtils;
@@ -28,13 +27,12 @@ import java.util.Map;
  */
 @Slf4j
 @Service
-public class KuaishouCreativeReportDailyServiceImpl
-    extends ServiceImpl<KuaishouCreativeReportDailyMapper, KuaishouCreativeReportDaily>
-    implements IKuaishouCreativeReportDailyService {
+public class KuaishouCreativeReportDailyServiceImpl extends ServiceImpl<KuaishouCreativeReportDailyMapper, KuaishouCreativeReportDaily> implements IKuaishouCreativeReportDailyService {
 
     @Value("${api.kuaishou.postUrl}")
     private String postUrl;
-    @Autowired KuaishouCreativeReportDailyMapper creativeReportDailyMapper;
+    @Autowired
+    KuaishouCreativeReportDailyMapper creativeReportDailyMapper;
 
     @Override
     public void getCreativeReportDaily(Long advertiserId, String accessToken, String startDate, String endDate, int page) {
@@ -63,7 +61,7 @@ public class KuaishouCreativeReportDailyServiceImpl
             return;
         }
         Boolean toGet = true;
-        if(details.size() < page_size){
+        if (details.size() < page_size) {
             toGet = false;
         }
         List<KuaishouCreativeReportDaily> addList = new ArrayList<>();
@@ -207,9 +205,9 @@ public class KuaishouCreativeReportDailyServiceImpl
             addList.add(reportDaily);
         }
         creativeReportDailyMapper.replaceBatch(addList);
-        if(toGet){
-            getCreativeReportDaily(advertiserId,  accessToken,  startDate,  endDate,  page + 1);
-        }else {
+        if (toGet) {
+            getCreativeReportDaily(advertiserId, accessToken, startDate, endDate, page + 1);
+        } else {
             log.info("创意日报数据获取完成:accountId:{}", advertiserId);
         }
     }

+ 5 - 8
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouMaterialVideoReportDailyServiceImpl.java

@@ -2,7 +2,6 @@ package cn.com.ctop.job.kuaishou.data.service.impl;
 
 import cn.com.ctop.job.kuaishou.data.constant.KuaishouConstant;
 import cn.com.ctop.job.kuaishou.data.entity.KuaishouMaterialVideoReportDaily;
-import cn.com.ctop.job.kuaishou.data.entity.KuaishouProgramCreativeReportDaily;
 import cn.com.ctop.job.kuaishou.data.mapper.KuaishouMaterialVideoReportDailyMapper;
 import cn.com.ctop.job.kuaishou.data.service.IKuaishouMaterialVideoReportDailyService;
 import cn.com.ctop.job.kuaishou.data.utils.DateUtils;
@@ -28,9 +27,7 @@ import java.util.Map;
  */
 @Slf4j
 @Service
-public class KuaishouMaterialVideoReportDailyServiceImpl
-    extends ServiceImpl<KuaishouMaterialVideoReportDailyMapper, KuaishouMaterialVideoReportDaily>
-    implements IKuaishouMaterialVideoReportDailyService {
+public class KuaishouMaterialVideoReportDailyServiceImpl extends ServiceImpl<KuaishouMaterialVideoReportDailyMapper, KuaishouMaterialVideoReportDaily> implements IKuaishouMaterialVideoReportDailyService {
 
     @Autowired
     private KuaishouMaterialVideoReportDailyMapper videoReportDailyMapper;
@@ -59,7 +56,7 @@ public class KuaishouMaterialVideoReportDailyServiceImpl
             return;
         }
         Boolean toGet = true;
-        if(details.size() < page_size){
+        if (details.size() < page_size) {
             toGet = false;
         }
         List<KuaishouMaterialVideoReportDaily> addList = new ArrayList<>();
@@ -203,9 +200,9 @@ public class KuaishouMaterialVideoReportDailyServiceImpl
             addList.add(reportDaily);
         }
         videoReportDailyMapper.replaceBatch(addList);
-        if(toGet){
-            getVideoReportDaily(advertiserId,  accessToken,  startDate,  endDate,  page + 1);
-        }else {
+        if (toGet) {
+            getVideoReportDaily(advertiserId, accessToken, startDate, endDate, page + 1);
+        } else {
             log.info("视频日报数据获取完成:accountId:{}", advertiserId);
         }
     }

+ 5 - 10
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouMaterialVideoReportHourlyServiceImpl.java

@@ -1,9 +1,7 @@
 package cn.com.ctop.job.kuaishou.data.service.impl;
 
 import cn.com.ctop.job.kuaishou.data.constant.KuaishouConstant;
-import cn.com.ctop.job.kuaishou.data.entity.KuaishouMaterialVideoReportDaily;
 import cn.com.ctop.job.kuaishou.data.entity.KuaishouMaterialVideoReportHourly;
-import cn.com.ctop.job.kuaishou.data.entity.KuaishouProgramCreativeReportDaily;
 import cn.com.ctop.job.kuaishou.data.mapper.KuaishouMaterialVideoReportHourlyMapper;
 import cn.com.ctop.job.kuaishou.data.service.IKuaishouMaterialVideoReportHourlyService;
 import cn.com.ctop.job.kuaishou.data.utils.DateUtils;
@@ -29,9 +27,7 @@ import java.util.Map;
  */
 @Slf4j
 @Service
-public class KuaishouMaterialVideoReportHourlyServiceImpl
-    extends ServiceImpl<KuaishouMaterialVideoReportHourlyMapper, KuaishouMaterialVideoReportHourly>
-    implements IKuaishouMaterialVideoReportHourlyService {
+public class KuaishouMaterialVideoReportHourlyServiceImpl extends ServiceImpl<KuaishouMaterialVideoReportHourlyMapper, KuaishouMaterialVideoReportHourly> implements IKuaishouMaterialVideoReportHourlyService {
     @Value("${api.kuaishou.postUrl}")
     private String postUrl;
     @Autowired
@@ -53,14 +49,13 @@ public class KuaishouMaterialVideoReportHourlyServiceImpl
         param.put("page", page);
         String result = HttpUtils.httpPostRequest(url, param, headers);
         JSONObject resultJson = JSONObject.parseObject(result);
-    System.err.println(resultJson);
         JSONArray details = resultJson.getJSONArray("details");
         if (null == details || details.size() <= 0) {
             log.error("快手视频时报返回详情为空,accountId:{}", advertiserId);
             return;
         }
         Boolean toGet = true;
-        if(details.size() < page_size){
+        if (details.size() < page_size) {
             toGet = false;
         }
         List<KuaishouMaterialVideoReportHourly> addList = new ArrayList<>();
@@ -205,9 +200,9 @@ public class KuaishouMaterialVideoReportHourlyServiceImpl
             addList.add(reportHourly);
         }
         materialVideoReportHourlyMapper.replaceBatch(addList);
-        if(toGet){
-            getVideoReportHour(advertiserId,  accessToken,  startDate,  endDate,  page + 1);
-        }else {
+        if (toGet) {
+            getVideoReportHour(advertiserId, accessToken, startDate, endDate, page + 1);
+        } else {
             log.info("视频时报数据获取完成:accountId:{}", advertiserId);
         }
     }

+ 5 - 9
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouProgramCreativeReportDailyServiceImpl.java

@@ -1,7 +1,6 @@
 package cn.com.ctop.job.kuaishou.data.service.impl;
 
 import cn.com.ctop.job.kuaishou.data.constant.KuaishouConstant;
-import cn.com.ctop.job.kuaishou.data.entity.KuaishouCreativeReportDaily;
 import cn.com.ctop.job.kuaishou.data.entity.KuaishouProgramCreativeReportDaily;
 import cn.com.ctop.job.kuaishou.data.mapper.KuaishouProgramCreativeReportDailyMapper;
 import cn.com.ctop.job.kuaishou.data.service.IKuaishouProgramCreativeReportDailyService;
@@ -28,10 +27,7 @@ import java.util.Map;
  */
 @Slf4j
 @Service
-public class KuaishouProgramCreativeReportDailyServiceImpl
-    extends ServiceImpl<
-        KuaishouProgramCreativeReportDailyMapper, KuaishouProgramCreativeReportDaily>
-    implements IKuaishouProgramCreativeReportDailyService {
+public class KuaishouProgramCreativeReportDailyServiceImpl extends ServiceImpl<KuaishouProgramCreativeReportDailyMapper, KuaishouProgramCreativeReportDaily> implements IKuaishouProgramCreativeReportDailyService {
     @Value("${api.kuaishou.postUrl}")
     private String postUrl;
     @Autowired
@@ -64,7 +60,7 @@ public class KuaishouProgramCreativeReportDailyServiceImpl
             return;
         }
         Boolean toGet = true;
-        if(details.size() < page_size){
+        if (details.size() < page_size) {
             toGet = false;
         }
         List<KuaishouProgramCreativeReportDaily> addList = new ArrayList<>();
@@ -212,9 +208,9 @@ public class KuaishouProgramCreativeReportDailyServiceImpl
             addList.add(reportDaily);
         }
         programCreativeReportDailyMapper.replaceBatch(addList);
-        if(toGet){
-            getProgramCreativeReportDaily(advertiserId,  accessToken,  startDate,  endDate,  page + 1);
-        }else {
+        if (toGet) {
+            getProgramCreativeReportDaily(advertiserId, accessToken, startDate, endDate, page + 1);
+        } else {
             log.info("程序化创意日报数据获取完成:accountId:{}", advertiserId);
         }
     }

+ 179 - 182
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouUnitReportDailyServiceImpl.java

@@ -1,7 +1,6 @@
 package cn.com.ctop.job.kuaishou.data.service.impl;
 
 import cn.com.ctop.job.kuaishou.data.constant.KuaishouConstant;
-import cn.com.ctop.job.kuaishou.data.entity.KuaishouCampaignReportDaily;
 import cn.com.ctop.job.kuaishou.data.entity.KuaishouUnitReportDaily;
 import cn.com.ctop.job.kuaishou.data.mapper.KuaishouUnitReportDailyMapper;
 import cn.com.ctop.job.kuaishou.data.service.IKuaishouUnitReportDailyService;
@@ -28,191 +27,189 @@ import java.util.Map;
  */
 @Slf4j
 @Service
-public class KuaishouUnitReportDailyServiceImpl
-    extends ServiceImpl<KuaishouUnitReportDailyMapper, KuaishouUnitReportDaily>
-    implements IKuaishouUnitReportDailyService {
+public class KuaishouUnitReportDailyServiceImpl extends ServiceImpl<KuaishouUnitReportDailyMapper, KuaishouUnitReportDaily> implements IKuaishouUnitReportDailyService {
 
     @Value("${api.kuaishou.postUrl}")
     private String postUrl;
-    @Autowired private  KuaishouUnitReportDailyMapper unitReportDailyMapper;
+    @Autowired
+    private KuaishouUnitReportDailyMapper unitReportDailyMapper;
 
-  @Override
-  public void getUnitReportDaily(
-      Long advertiserId, String accessToken, String startDate, String endDate, int page) {
-      String url = postUrl + KuaishouConstant.UNIT_REPORT;
-      Map<String, String> headers = new HashMap<>();
-      headers.put("Access-Token", accessToken);
-      Map<String, Object> param = new HashMap<>();
-      param.put("start_date", startDate);
-      param.put("end_date", endDate);
-      param.put("advertiser_id", advertiserId);
-      param.put("temporal_granularity", "DAILY");
-      Integer page_size = 2000;
-      param.put("page_size", page_size);
-      param.put("page", page);
-      String result = HttpUtils.httpPostRequest(url, param, headers);
-      JSONObject resultJson = JSONObject.parseObject(result);
-      Integer code = resultJson.getInteger("code");
-      String message = resultJson.getString("message");
-      if (null == code || code != 0) {
-          log.error("获取快手广告组日报表异常:{},accountId:{}", message, advertiserId);
-          return;
-      }
-      JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
-      if (null == details || details.size() <= 0) {
-          log.error("快手组日报返回详情为空,accountId:{}", advertiserId);
-          return;
-      }
-      Boolean toGet = true;
-      if(details.size() < page_size){
-          toGet = false;
-      }
-      List<KuaishouUnitReportDaily> addList = new ArrayList<>();
-      for (int i = 0; i < details.size(); i++) {
-          JSONObject returnJson = details.getJSONObject(i);
-          KuaishouUnitReportDaily reportDaily = new KuaishouUnitReportDaily();
-          reportDaily.setAdvertiserId(advertiserId);
-          reportDaily.setStatDate(DateUtils.getDateInteger(returnJson.getString("stat_date")));
-          reportDaily.setCampaignId(returnJson.getLong("campaign_id"));
-          reportDaily.setCampaignName(returnJson.getString("campaign_name"));
-          reportDaily.setUnitId(returnJson.getLong("unit_id"));
-          reportDaily.setUnitName(returnJson.getString("unit_name"));
-          reportDaily.setCharge(returnJson.getBigDecimal("charge"));
-          reportDaily.setShow(returnJson.getLong("show"));
-          reportDaily.setPhotoClick(returnJson.getLong("photo_click"));
-          reportDaily.setAclick(returnJson.getLong("aclick"));
-          reportDaily.setBclick(returnJson.getLong("bclick"));
-          reportDaily.setPhotoClickRatio(returnJson.getBigDecimal("photo_click_ratio"));
-          reportDaily.setPlay3sRatio(returnJson.getBigDecimal("play_3s_ratio"));
-          reportDaily.setActionRatio(returnJson.getBigDecimal("action_ratio"));
-          reportDaily.setImpression1kCost(returnJson.getBigDecimal("impression_1k_cost"));
-          reportDaily.setPhotoClickCost(returnJson.getBigDecimal("photo_click_cost"));
-          reportDaily.setActionCost(returnJson.getBigDecimal("action_cost"));
-          reportDaily.setShare(returnJson.getLong("share"));
-          reportDaily.setComment(returnJson.getLong("comment"));
-          reportDaily.setLike(returnJson.getLong("like"));
-          reportDaily.setFollow(returnJson.getLong("follow"));
-          reportDaily.setCancelFollow(returnJson.getLong("cancel_follow"));
-          reportDaily.setReport(returnJson.getLong("report"));
-          reportDaily.setBlock(returnJson.getLong("block"));
-          reportDaily.setNegative(returnJson.getLong("negative"));
-          reportDaily.setSubmit(returnJson.getLong("submit"));
-          reportDaily.setDownloadStarted(returnJson.getLong("download_started"));
-          reportDaily.setDownloadCompleted(returnJson.getLong("download_completed"));
-          reportDaily.setActivation(returnJson.getLong("activation"));
-          reportDaily.setEventPayFirstDay(returnJson.getLong("event_pay_first_day"));
-          reportDaily.setEventPayPurchaseAmountFirstDay(returnJson.getBigDecimal("event_pay_purchase_amount_first_day"));
-          reportDaily.setEventPayFirstDayRoi(returnJson.getBigDecimal("event_pay_first_day_roi"));
-          reportDaily.setEventPay(returnJson.getLong("event_pay"));
-          reportDaily.setEventPayPurchaseAmount(returnJson.getBigDecimal("event_pay_purchase_amount"));
-          reportDaily.setEventPayRoi(returnJson.getBigDecimal("event_pay_roi"));
-          reportDaily.setEventRegister(returnJson.getLong("event_register"));
-          reportDaily.setEventRegisterCost(returnJson.getBigDecimal("event_register_cost"));
-          reportDaily.setEventRegisterRatio(returnJson.getBigDecimal("event_register_ratio"));
-          reportDaily.setEventJinJianApp(returnJson.getLong("event_jin_jian_app"));
-          reportDaily.setEventJinJianAppCost(returnJson.getBigDecimal("event_jin_jian_app_cost"));
-          reportDaily.setEventCreditGrantApp(returnJson.getLong("event_credit_grant_app"));
-          reportDaily.setEventCreditGrantAppCost(returnJson.getBigDecimal("event_credit_grant_app_cost"));
-          reportDaily.setEventCreditGrantAppRatio(returnJson.getBigDecimal("event_credit_grant_app_ratio"));
-          reportDaily.setEventOrderPaid(returnJson.getLong("event_order_paid"));
-          reportDaily.setEventOrderPaidPurchaseAmount(returnJson.getBigDecimal("event_order_paid_purchase_amount"));
-          reportDaily.setEventOrderPaidCost(returnJson.getBigDecimal("event_order_paid_cost"));
-          reportDaily.setEventNextDayStay(returnJson.getLong("event_next_day_stay"));
-          reportDaily.setEventNextDayStayCost(returnJson.getBigDecimal("event_next_day_stay_cost"));
-          reportDaily.setEventNextDayStayRatio(returnJson.getBigDecimal("event_next_day_stay_ratio"));
-          reportDaily.setFormCount(returnJson.getLong("form_count"));
-          reportDaily.setFormCost(returnJson.getBigDecimal("form_cost"));
-          reportDaily.setFormActionRatio(returnJson.getBigDecimal("form_action_ratio"));
-          reportDaily.setEventJinJianLandingPage(returnJson.getLong("event_jin_jian_landing_page"));
-          reportDaily.setEventJinJianLandingPageCost(returnJson.getBigDecimal("event_jin_jian_landing_page_cost"));
-          reportDaily.setEventCreditGrantLandingPage(returnJson.getLong("event_credit_grant_landing_page"));
-          reportDaily.setEventCreditGrantLandingPageCost(returnJson.getBigDecimal("event_credit_grant_landing_page_cost"));
-          reportDaily.setEventCreditGrantLandingPageRatio(returnJson.getBigDecimal("event_credit_grant_landing_page_ratio"));
-          reportDaily.setEventValidClues(returnJson.getLong("event_valid_clues"));
-          reportDaily.setEventValidCluesCost(returnJson.getBigDecimal("event_valid_clues_cost"));
-          reportDaily.setEventAddWechat(returnJson.getLong("event_add_wechat"));
-          reportDaily.setEventAddWechatCost(returnJson.getBigDecimal("event_add_wechat_cost"));
-          reportDaily.setEventAddWechatRatio(returnJson.getBigDecimal("event_add_wechat_ratio"));
-          reportDaily.setEventGetThrough(returnJson.getLong("event_get_through"));
-          reportDaily.setEventGetThroughCost(returnJson.getBigDecimal("event_get_through_cost"));
-          reportDaily.setEventGetThroughRatio(returnJson.getBigDecimal("event_get_through_ratio"));
-          reportDaily.setEventAppInvoked(returnJson.getLong("event_app_invoked"));
-          reportDaily.setEventAppInvokedCost(returnJson.getBigDecimal("event_app_invoked_cost"));
-          reportDaily.setEventAppInvokedRatio(returnJson.getBigDecimal("event_app_invoked_ratio"));
-          reportDaily.setEventCreditGrantLandingRatio(returnJson.getBigDecimal("event_credit_grant_landing_ratio"));
-          reportDaily.setPlay5sRatio(returnJson.getBigDecimal("play_5s_ratio"));
-          reportDaily.setPlayEndRatio(returnJson.getBigDecimal("play_end_ratio"));
-          reportDaily.setEventNewUserPay(returnJson.getBigDecimal("event_new_user_pay"));
-          reportDaily.setEventNewUserPayCost(returnJson.getBigDecimal("event_new_user_pay_cost"));
-          reportDaily.setEventNewUserPayRatio(returnJson.getBigDecimal("event_new_user_pay_ratio"));
-          reportDaily.setClick1kCost(returnJson.getBigDecimal("click_1k_cost"));
-          reportDaily.setAdProductCnt(returnJson.getLong("ad_product_cnt"));
-          reportDaily.setEventGoodsView(returnJson.getLong("event_goods_view"));
-          reportDaily.setMerchantRecoFans(returnJson.getLong("merchant_reco_fans"));
-          reportDaily.setEventGoodsViewCost(returnJson.getBigDecimal("event_goods_view_cost"));
-          reportDaily.setMerchantRecoFansCost(returnJson.getBigDecimal("merchant_reco_fans_cost"));
-          reportDaily.setEventOrderAmountRoi(returnJson.getBigDecimal("event_order_amount_roi"));
-          reportDaily.setEventButtonClick(returnJson.getLong("event_button_click"));
-          reportDaily.setEventButtonClickCost(returnJson.getBigDecimal("event_button_click_cost"));
-          reportDaily.setEventButtonClickRatio(returnJson.getBigDecimal("event_button_click_ratio"));
-          reportDaily.setEventOrderPaidRoi(returnJson.getBigDecimal("event_order_paid_roi"));
-          reportDaily.setEventNewUserJinjianApp(returnJson.getLong("event_new_user_jinjian_app"));
-          reportDaily.setEventNewUserJinjianAppCost(returnJson.getBigDecimal("event_new_user_jinjian_app_cost"));
-          reportDaily.setEventNewUserJinjianAppRoi(returnJson.getBigDecimal("event_new_user_jinjian_app_roi"));
-          reportDaily.setEventNewUserCreditGrantApp(returnJson.getLong("event_new_user_credit_grant_app"));
-          reportDaily.setEventNewUserCreditGrantAppCost(returnJson.getBigDecimal("event_new_user_credit_grant_app_cost"));
-          reportDaily.setEventNewUserCreditGrantAppRoi(returnJson.getBigDecimal("event_new_user_credit_grant_app_roi"));
-          reportDaily.setEventNewUserJinjianPage(returnJson.getLong("event_new_user_jinjian_page"));
-          reportDaily.setEventNewUserJinjianPageCost(returnJson.getBigDecimal("event_new_user_jinjian_page_cost"));
-          reportDaily.setEventNewUserJinjianPageRoi(returnJson.getBigDecimal("event_new_user_jinjian_page_roi"));
-          reportDaily.setEventNewUserCreditGrantPage(returnJson.getLong("event_new_user_credit_grant_page"));
-          reportDaily.setEventNewUserCreditGrantPageCost(returnJson.getBigDecimal("event_new_user_credit_grant_page_cost"));
-          reportDaily.setEventNewUserCreditGrantPageRoi(returnJson.getBigDecimal("event_new_user_credit_grant_page_roi"));
-          reportDaily.setEventAppointForm(returnJson.getLong("event_appoint_form"));
-          reportDaily.setEventAppointFormCost(returnJson.getBigDecimal("event_appoint_form_cost"));
-          reportDaily.setEventAppointFormRatio(returnJson.getBigDecimal("event_appoint_form_ratio"));
-          reportDaily.setEventAppointJumpClick(returnJson.getLong("event_appoint_jump_click"));
-          reportDaily.setEventAppointJumpClickCost(returnJson.getBigDecimal("event_appoint_jump_click_cost"));
-          reportDaily.setEventAppointJumpClickRatio(returnJson.getBigDecimal("event_appoint_jump_click_ratio"));
-          reportDaily.setUnionEventPayPurchaseAmount7d(returnJson.getLong("union_event_pay_purchase_amount_7d"));
-          reportDaily.setUnionEventPayPurchaseAmount7dRoi(returnJson.getBigDecimal("union_event_pay_purchase_amount_7d_roi"));
-          reportDaily.setPlacementType(returnJson.getString("placement_type"));
-          reportDaily.setAdScene(returnJson.getString("ad_scene"));
-          reportDaily.setEventOrderSuccessed(returnJson.getLong("event_order_successed"));
-          reportDaily.setAdPhotoPlayed10sRatio(returnJson.getBigDecimal("ad_photo_played_10s_ratio"));
-          reportDaily.setKeyActionCost(returnJson.getBigDecimal("key_action_cost"));
-          reportDaily.setEventAddShoppingCartCost(returnJson.getBigDecimal("event_add_shopping_cart_cost"));
-          reportDaily.setEventAdWatchTimesRatio(returnJson.getBigDecimal("event_ad_watch_times_ratio"));
-          reportDaily.setEventOutboundCallCost(returnJson.getBigDecimal("event_outbound_call_cost"));
-          reportDaily.setEventOutboundCall(returnJson.getLong("event_outbound_call"));
-          reportDaily.setActionNewRatio(returnJson.getBigDecimal("action_new_ratio"));
-          reportDaily.setEventWatchAppAd(returnJson.getLong("event_watch_app_ad"));
-          reportDaily.setEventMultiConversionCost(returnJson.getBigDecimal("event_multi_conversion_cost"));
-          reportDaily.setEventPhoneCardActivate(returnJson.getLong("event_phone_card_activate"));
-          reportDaily.setAdPhotoPlayed75percentRatio(returnJson.getBigDecimal("ad_photo_played_75percent_ratio"));
-          reportDaily.setKeyActionRatio(returnJson.getBigDecimal("key_action_ratio"));
-          reportDaily.setEventAdWatchTimesCost(returnJson.getBigDecimal("event_ad_watch_times_cost"));
-          reportDaily.setEventAddShoppingCart(returnJson.getLong("event_add_shopping_cart"));
-          reportDaily.setKeyAction(returnJson.getLong("key_action"));
-          reportDaily.setEventMultiConversion(returnJson.getLong("event_multi_conversion"));
-          reportDaily.setEventWechatConnected(returnJson.getLong("event_wechat_connected"));
-          reportDaily.setEventDspGiftForm(returnJson.getLong("event_dsp_gift_form"));
-          reportDaily.setEventIntentionConfirmed(returnJson.getLong("event_intention_confirmed"));
-          reportDaily.setEventPhoneGetThrough(returnJson.getLong("event_phone_get_through"));
-          reportDaily.setEventMultiConversionRatio(returnJson.getBigDecimal("event_multi_conversion_ratio"));
-          reportDaily.setEventMeasurementHouse(returnJson.getBigDecimal("event_measurement_house"));
-          reportDaily.setAdPhotoPlayed2sRatio(returnJson.getBigDecimal("ad_photo_played_2s_ratio"));
-          reportDaily.setEventOutboundCallRatio(returnJson.getBigDecimal("event_outbound_call_ratio"));
-          reportDaily.setEventAdWatchTimes(returnJson.getLong("event_ad_watch_times"));
-          addList.add(reportDaily);
-      }
-       unitReportDailyMapper.replaceBatch(addList);
-      if(toGet){
-          getUnitReportDaily(advertiserId,  accessToken,  startDate,  endDate,  page + 1);
-      }else {
-          log.info("组日报数据获取完成:accountId:{}", advertiserId);
-      }
+    @Override
+    public void getUnitReportDaily(Long advertiserId, String accessToken, String startDate, String endDate, int page) {
+        String url = postUrl + KuaishouConstant.UNIT_REPORT;
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Access-Token", accessToken);
+        Map<String, Object> param = new HashMap<>();
+        param.put("start_date", startDate);
+        param.put("end_date", endDate);
+        param.put("advertiser_id", advertiserId);
+        param.put("temporal_granularity", "DAILY");
+        Integer page_size = 2000;
+        param.put("page_size", page_size);
+        param.put("page", page);
+        String result = HttpUtils.httpPostRequest(url, param, headers);
+        JSONObject resultJson = JSONObject.parseObject(result);
+        Integer code = resultJson.getInteger("code");
+        String message = resultJson.getString("message");
+        if (null == code || code != 0) {
+            log.error("获取快手广告组日报表异常:{},accountId:{}", message, advertiserId);
+            return;
+        }
+        JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
+        if (null == details || details.size() <= 0) {
+            log.error("快手组日报返回详情为空,accountId:{}", advertiserId);
+            return;
+        }
+        Boolean toGet = true;
+        if (details.size() < page_size) {
+            toGet = false;
+        }
+        List<KuaishouUnitReportDaily> addList = new ArrayList<>();
+        for (int i = 0; i < details.size(); i++) {
+            JSONObject returnJson = details.getJSONObject(i);
+            KuaishouUnitReportDaily reportDaily = new KuaishouUnitReportDaily();
+            reportDaily.setAdvertiserId(advertiserId);
+            reportDaily.setStatDate(DateUtils.getDateInteger(returnJson.getString("stat_date")));
+            reportDaily.setCampaignId(returnJson.getLong("campaign_id"));
+            reportDaily.setCampaignName(returnJson.getString("campaign_name"));
+            reportDaily.setUnitId(returnJson.getLong("unit_id"));
+            reportDaily.setUnitName(returnJson.getString("unit_name"));
+            reportDaily.setCharge(returnJson.getBigDecimal("charge"));
+            reportDaily.setShow(returnJson.getLong("show"));
+            reportDaily.setPhotoClick(returnJson.getLong("photo_click"));
+            reportDaily.setAclick(returnJson.getLong("aclick"));
+            reportDaily.setBclick(returnJson.getLong("bclick"));
+            reportDaily.setPhotoClickRatio(returnJson.getBigDecimal("photo_click_ratio"));
+            reportDaily.setPlay3sRatio(returnJson.getBigDecimal("play_3s_ratio"));
+            reportDaily.setActionRatio(returnJson.getBigDecimal("action_ratio"));
+            reportDaily.setImpression1kCost(returnJson.getBigDecimal("impression_1k_cost"));
+            reportDaily.setPhotoClickCost(returnJson.getBigDecimal("photo_click_cost"));
+            reportDaily.setActionCost(returnJson.getBigDecimal("action_cost"));
+            reportDaily.setShare(returnJson.getLong("share"));
+            reportDaily.setComment(returnJson.getLong("comment"));
+            reportDaily.setLike(returnJson.getLong("like"));
+            reportDaily.setFollow(returnJson.getLong("follow"));
+            reportDaily.setCancelFollow(returnJson.getLong("cancel_follow"));
+            reportDaily.setReport(returnJson.getLong("report"));
+            reportDaily.setBlock(returnJson.getLong("block"));
+            reportDaily.setNegative(returnJson.getLong("negative"));
+            reportDaily.setSubmit(returnJson.getLong("submit"));
+            reportDaily.setDownloadStarted(returnJson.getLong("download_started"));
+            reportDaily.setDownloadCompleted(returnJson.getLong("download_completed"));
+            reportDaily.setActivation(returnJson.getLong("activation"));
+            reportDaily.setEventPayFirstDay(returnJson.getLong("event_pay_first_day"));
+            reportDaily.setEventPayPurchaseAmountFirstDay(returnJson.getBigDecimal("event_pay_purchase_amount_first_day"));
+            reportDaily.setEventPayFirstDayRoi(returnJson.getBigDecimal("event_pay_first_day_roi"));
+            reportDaily.setEventPay(returnJson.getLong("event_pay"));
+            reportDaily.setEventPayPurchaseAmount(returnJson.getBigDecimal("event_pay_purchase_amount"));
+            reportDaily.setEventPayRoi(returnJson.getBigDecimal("event_pay_roi"));
+            reportDaily.setEventRegister(returnJson.getLong("event_register"));
+            reportDaily.setEventRegisterCost(returnJson.getBigDecimal("event_register_cost"));
+            reportDaily.setEventRegisterRatio(returnJson.getBigDecimal("event_register_ratio"));
+            reportDaily.setEventJinJianApp(returnJson.getLong("event_jin_jian_app"));
+            reportDaily.setEventJinJianAppCost(returnJson.getBigDecimal("event_jin_jian_app_cost"));
+            reportDaily.setEventCreditGrantApp(returnJson.getLong("event_credit_grant_app"));
+            reportDaily.setEventCreditGrantAppCost(returnJson.getBigDecimal("event_credit_grant_app_cost"));
+            reportDaily.setEventCreditGrantAppRatio(returnJson.getBigDecimal("event_credit_grant_app_ratio"));
+            reportDaily.setEventOrderPaid(returnJson.getLong("event_order_paid"));
+            reportDaily.setEventOrderPaidPurchaseAmount(returnJson.getBigDecimal("event_order_paid_purchase_amount"));
+            reportDaily.setEventOrderPaidCost(returnJson.getBigDecimal("event_order_paid_cost"));
+            reportDaily.setEventNextDayStay(returnJson.getLong("event_next_day_stay"));
+            reportDaily.setEventNextDayStayCost(returnJson.getBigDecimal("event_next_day_stay_cost"));
+            reportDaily.setEventNextDayStayRatio(returnJson.getBigDecimal("event_next_day_stay_ratio"));
+            reportDaily.setFormCount(returnJson.getLong("form_count"));
+            reportDaily.setFormCost(returnJson.getBigDecimal("form_cost"));
+            reportDaily.setFormActionRatio(returnJson.getBigDecimal("form_action_ratio"));
+            reportDaily.setEventJinJianLandingPage(returnJson.getLong("event_jin_jian_landing_page"));
+            reportDaily.setEventJinJianLandingPageCost(returnJson.getBigDecimal("event_jin_jian_landing_page_cost"));
+            reportDaily.setEventCreditGrantLandingPage(returnJson.getLong("event_credit_grant_landing_page"));
+            reportDaily.setEventCreditGrantLandingPageCost(returnJson.getBigDecimal("event_credit_grant_landing_page_cost"));
+            reportDaily.setEventCreditGrantLandingPageRatio(returnJson.getBigDecimal("event_credit_grant_landing_page_ratio"));
+            reportDaily.setEventValidClues(returnJson.getLong("event_valid_clues"));
+            reportDaily.setEventValidCluesCost(returnJson.getBigDecimal("event_valid_clues_cost"));
+            reportDaily.setEventAddWechat(returnJson.getLong("event_add_wechat"));
+            reportDaily.setEventAddWechatCost(returnJson.getBigDecimal("event_add_wechat_cost"));
+            reportDaily.setEventAddWechatRatio(returnJson.getBigDecimal("event_add_wechat_ratio"));
+            reportDaily.setEventGetThrough(returnJson.getLong("event_get_through"));
+            reportDaily.setEventGetThroughCost(returnJson.getBigDecimal("event_get_through_cost"));
+            reportDaily.setEventGetThroughRatio(returnJson.getBigDecimal("event_get_through_ratio"));
+            reportDaily.setEventAppInvoked(returnJson.getLong("event_app_invoked"));
+            reportDaily.setEventAppInvokedCost(returnJson.getBigDecimal("event_app_invoked_cost"));
+            reportDaily.setEventAppInvokedRatio(returnJson.getBigDecimal("event_app_invoked_ratio"));
+            reportDaily.setEventCreditGrantLandingRatio(returnJson.getBigDecimal("event_credit_grant_landing_ratio"));
+            reportDaily.setPlay5sRatio(returnJson.getBigDecimal("play_5s_ratio"));
+            reportDaily.setPlayEndRatio(returnJson.getBigDecimal("play_end_ratio"));
+            reportDaily.setEventNewUserPay(returnJson.getBigDecimal("event_new_user_pay"));
+            reportDaily.setEventNewUserPayCost(returnJson.getBigDecimal("event_new_user_pay_cost"));
+            reportDaily.setEventNewUserPayRatio(returnJson.getBigDecimal("event_new_user_pay_ratio"));
+            reportDaily.setClick1kCost(returnJson.getBigDecimal("click_1k_cost"));
+            reportDaily.setAdProductCnt(returnJson.getLong("ad_product_cnt"));
+            reportDaily.setEventGoodsView(returnJson.getLong("event_goods_view"));
+            reportDaily.setMerchantRecoFans(returnJson.getLong("merchant_reco_fans"));
+            reportDaily.setEventGoodsViewCost(returnJson.getBigDecimal("event_goods_view_cost"));
+            reportDaily.setMerchantRecoFansCost(returnJson.getBigDecimal("merchant_reco_fans_cost"));
+            reportDaily.setEventOrderAmountRoi(returnJson.getBigDecimal("event_order_amount_roi"));
+            reportDaily.setEventButtonClick(returnJson.getLong("event_button_click"));
+            reportDaily.setEventButtonClickCost(returnJson.getBigDecimal("event_button_click_cost"));
+            reportDaily.setEventButtonClickRatio(returnJson.getBigDecimal("event_button_click_ratio"));
+            reportDaily.setEventOrderPaidRoi(returnJson.getBigDecimal("event_order_paid_roi"));
+            reportDaily.setEventNewUserJinjianApp(returnJson.getLong("event_new_user_jinjian_app"));
+            reportDaily.setEventNewUserJinjianAppCost(returnJson.getBigDecimal("event_new_user_jinjian_app_cost"));
+            reportDaily.setEventNewUserJinjianAppRoi(returnJson.getBigDecimal("event_new_user_jinjian_app_roi"));
+            reportDaily.setEventNewUserCreditGrantApp(returnJson.getLong("event_new_user_credit_grant_app"));
+            reportDaily.setEventNewUserCreditGrantAppCost(returnJson.getBigDecimal("event_new_user_credit_grant_app_cost"));
+            reportDaily.setEventNewUserCreditGrantAppRoi(returnJson.getBigDecimal("event_new_user_credit_grant_app_roi"));
+            reportDaily.setEventNewUserJinjianPage(returnJson.getLong("event_new_user_jinjian_page"));
+            reportDaily.setEventNewUserJinjianPageCost(returnJson.getBigDecimal("event_new_user_jinjian_page_cost"));
+            reportDaily.setEventNewUserJinjianPageRoi(returnJson.getBigDecimal("event_new_user_jinjian_page_roi"));
+            reportDaily.setEventNewUserCreditGrantPage(returnJson.getLong("event_new_user_credit_grant_page"));
+            reportDaily.setEventNewUserCreditGrantPageCost(returnJson.getBigDecimal("event_new_user_credit_grant_page_cost"));
+            reportDaily.setEventNewUserCreditGrantPageRoi(returnJson.getBigDecimal("event_new_user_credit_grant_page_roi"));
+            reportDaily.setEventAppointForm(returnJson.getLong("event_appoint_form"));
+            reportDaily.setEventAppointFormCost(returnJson.getBigDecimal("event_appoint_form_cost"));
+            reportDaily.setEventAppointFormRatio(returnJson.getBigDecimal("event_appoint_form_ratio"));
+            reportDaily.setEventAppointJumpClick(returnJson.getLong("event_appoint_jump_click"));
+            reportDaily.setEventAppointJumpClickCost(returnJson.getBigDecimal("event_appoint_jump_click_cost"));
+            reportDaily.setEventAppointJumpClickRatio(returnJson.getBigDecimal("event_appoint_jump_click_ratio"));
+            reportDaily.setUnionEventPayPurchaseAmount7d(returnJson.getLong("union_event_pay_purchase_amount_7d"));
+            reportDaily.setUnionEventPayPurchaseAmount7dRoi(returnJson.getBigDecimal("union_event_pay_purchase_amount_7d_roi"));
+            reportDaily.setPlacementType(returnJson.getString("placement_type"));
+            reportDaily.setAdScene(returnJson.getString("ad_scene"));
+            reportDaily.setEventOrderSuccessed(returnJson.getLong("event_order_successed"));
+            reportDaily.setAdPhotoPlayed10sRatio(returnJson.getBigDecimal("ad_photo_played_10s_ratio"));
+            reportDaily.setKeyActionCost(returnJson.getBigDecimal("key_action_cost"));
+            reportDaily.setEventAddShoppingCartCost(returnJson.getBigDecimal("event_add_shopping_cart_cost"));
+            reportDaily.setEventAdWatchTimesRatio(returnJson.getBigDecimal("event_ad_watch_times_ratio"));
+            reportDaily.setEventOutboundCallCost(returnJson.getBigDecimal("event_outbound_call_cost"));
+            reportDaily.setEventOutboundCall(returnJson.getLong("event_outbound_call"));
+            reportDaily.setActionNewRatio(returnJson.getBigDecimal("action_new_ratio"));
+            reportDaily.setEventWatchAppAd(returnJson.getLong("event_watch_app_ad"));
+            reportDaily.setEventMultiConversionCost(returnJson.getBigDecimal("event_multi_conversion_cost"));
+            reportDaily.setEventPhoneCardActivate(returnJson.getLong("event_phone_card_activate"));
+            reportDaily.setAdPhotoPlayed75percentRatio(returnJson.getBigDecimal("ad_photo_played_75percent_ratio"));
+            reportDaily.setKeyActionRatio(returnJson.getBigDecimal("key_action_ratio"));
+            reportDaily.setEventAdWatchTimesCost(returnJson.getBigDecimal("event_ad_watch_times_cost"));
+            reportDaily.setEventAddShoppingCart(returnJson.getLong("event_add_shopping_cart"));
+            reportDaily.setKeyAction(returnJson.getLong("key_action"));
+            reportDaily.setEventMultiConversion(returnJson.getLong("event_multi_conversion"));
+            reportDaily.setEventWechatConnected(returnJson.getLong("event_wechat_connected"));
+            reportDaily.setEventDspGiftForm(returnJson.getLong("event_dsp_gift_form"));
+            reportDaily.setEventIntentionConfirmed(returnJson.getLong("event_intention_confirmed"));
+            reportDaily.setEventPhoneGetThrough(returnJson.getLong("event_phone_get_through"));
+            reportDaily.setEventMultiConversionRatio(returnJson.getBigDecimal("event_multi_conversion_ratio"));
+            reportDaily.setEventMeasurementHouse(returnJson.getBigDecimal("event_measurement_house"));
+            reportDaily.setAdPhotoPlayed2sRatio(returnJson.getBigDecimal("ad_photo_played_2s_ratio"));
+            reportDaily.setEventOutboundCallRatio(returnJson.getBigDecimal("event_outbound_call_ratio"));
+            reportDaily.setEventAdWatchTimes(returnJson.getLong("event_ad_watch_times"));
+            addList.add(reportDaily);
+        }
+        unitReportDailyMapper.replaceBatch(addList);
+        if (toGet) {
+            getUnitReportDaily(advertiserId, accessToken, startDate, endDate, page + 1);
+        } else {
+            log.info("组日报数据获取完成:accountId:{}", advertiserId);
+        }
 
 
-  }
+    }
 }

+ 6 - 9
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouUnitReportHourlyServiceImpl.java

@@ -1,7 +1,6 @@
 package cn.com.ctop.job.kuaishou.data.service.impl;
 
 import cn.com.ctop.job.kuaishou.data.constant.KuaishouConstant;
-import cn.com.ctop.job.kuaishou.data.entity.KuaishouUnitReportDaily;
 import cn.com.ctop.job.kuaishou.data.entity.KuaishouUnitReportHourly;
 import cn.com.ctop.job.kuaishou.data.mapper.KuaishouUnitReportHourlyMapper;
 import cn.com.ctop.job.kuaishou.data.service.IKuaishouUnitReportHourlyService;
@@ -28,13 +27,11 @@ import java.util.Map;
  */
 @Slf4j
 @Service
-public class KuaishouUnitReportHourlyServiceImpl
-    extends ServiceImpl<KuaishouUnitReportHourlyMapper, KuaishouUnitReportHourly>
-    implements IKuaishouUnitReportHourlyService {
+public class KuaishouUnitReportHourlyServiceImpl extends ServiceImpl<KuaishouUnitReportHourlyMapper, KuaishouUnitReportHourly> implements IKuaishouUnitReportHourlyService {
     @Value("${api.kuaishou.postUrl}")
     private String postUrl;
     @Autowired
-    private  KuaishouUnitReportHourlyMapper unitReportHourlyMapper;
+    private KuaishouUnitReportHourlyMapper unitReportHourlyMapper;
 
     @Override
     public void getUnitReportHour(Long advertiserId, String accessToken, String startDate, String endDate, int page) {
@@ -63,7 +60,7 @@ public class KuaishouUnitReportHourlyServiceImpl
             return;
         }
         Boolean toGet = true;
-        if(details.size() < page_size){
+        if (details.size() < page_size) {
             toGet = false;
         }
         List<KuaishouUnitReportHourly> addList = new ArrayList<>();
@@ -207,9 +204,9 @@ public class KuaishouUnitReportHourlyServiceImpl
             addList.add(reportHour);
         }
         unitReportHourlyMapper.replaceBatch(addList);
-        if(toGet){
-            getUnitReportHour(advertiserId,  accessToken,  startDate,  endDate,  page + 1);
-        }else {
+        if (toGet) {
+            getUnitReportHour(advertiserId, accessToken, startDate, endDate, page + 1);
+        } else {
             log.info("组时报数据获取完成:accountId:{}", advertiserId);
         }
 

+ 121 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/impl/KuaishouVideoListServiceImpl.java

@@ -0,0 +1,121 @@
+package cn.com.ctop.job.kuaishou.data.service.impl;
+
+import cn.com.ctop.job.kuaishou.data.constant.KuaishouConstant;
+import cn.com.ctop.job.kuaishou.data.entity.KuaishouVideoList;
+import cn.com.ctop.job.kuaishou.data.enums.MaterialEnum;
+import cn.com.ctop.job.kuaishou.data.mapper.KuaishouVideoListMapper;
+import cn.com.ctop.job.kuaishou.data.service.IKuaishouVideoListService;
+import cn.com.ctop.job.kuaishou.data.utils.Check;
+import cn.com.ctop.job.kuaishou.data.utils.HttpUtils;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 快手-素材列表
+ *
+ * @author jeecg-boot
+ * 2021-09-28
+ * @version V1.0
+ */
+@Slf4j
+@Service
+public class KuaishouVideoListServiceImpl extends ServiceImpl<KuaishouVideoListMapper, KuaishouVideoList> implements IKuaishouVideoListService {
+    @Value("${api.kuaishou.postUrl}")
+    private String postUrl;
+    @Autowired
+    private KuaishouVideoListMapper videoListMapper;
+
+    @Override
+    public void getVideoList(Long advertiserId, String accessToken, String startDate, String endDate, int page) {
+        String url = postUrl + KuaishouConstant.VIDEO_LIST;
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Access-Token", accessToken);
+        Map<String, Object> param = new HashMap<>();
+        param.put("advertiser_id", advertiserId);
+        Integer page_size = 500;
+        param.put("page_size", page_size);
+        param.put("page", page);
+        if (!Check.isNull(startDate) && !Check.isNull(endDate)) {
+            param.put("start_date", startDate);
+            param.put("end_date", endDate);
+        }
+        String result = HttpUtils.httpPostRequest(url, param, headers);
+        JSONObject resultJson = JSONObject.parseObject(result);
+        if (Check.isNull(resultJson)) {
+            return;
+        }
+        Integer code = resultJson.getInteger("code");
+        String message = resultJson.getString("message");
+        if (null == code || code != 0) {
+            log.error("获取快手视频列表数据异常:{},accountId:{}", message, advertiserId);
+            return;
+        }
+        JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
+        System.err.println(details);
+        if (null == details || details.size() <= 0) {
+            log.info("快手视频列表信息为空=》accountId:{}", accessToken);
+            return;
+        }
+        Boolean toGet = true;
+        if (details.size() < page_size) {
+            toGet = false;
+        }
+        List<KuaishouVideoList> videoGetList = new ArrayList<>();
+        for (int i = 0; i < details.size(); i++) {
+            JSONObject detailJson = details.getJSONObject(i);
+            if (Check.isNull(detailJson)) {
+                continue;
+            }
+            KuaishouVideoList videoList = new KuaishouVideoList();
+            String photo_id = detailJson.getString("photo_id");
+            videoList.setAccountId(advertiserId);
+            videoList.setCoverUrl(detailJson.getString("cover_url"));
+            videoList.setPhotoId(photo_id);
+            videoList.setPhotoName(detailJson.getString("photo_name"));
+            videoList.setStatDate(detailJson.getDate("upload_time"));
+            String signature = detailJson.getString("signature");
+            videoList.setSignature(signature);
+            Integer source = detailJson.getInteger("source");
+            if (source == 2) {
+                videoList.setChannelType(1);
+            } else {
+                videoList.setChannelType(0);
+            }
+            Integer new_status = detailJson.getInteger("new_status");
+            if (new_status == 1) {
+                videoList.setStatus(0);
+            } else {
+                videoList.setStatus(1);
+            }
+            videoList.setUrl(detailJson.getString("url"));
+            Integer width = detailJson.getInteger("width");
+            videoList.setWidth(width);
+            Integer height = detailJson.getInteger("height");
+            videoList.setHeight(height);
+            Integer type = MaterialEnum.getTypeBySize(width, height);
+            if (!Check.isNull(type)) {
+                videoList.setMaterialType(type);
+            }
+            videoGetList.add(videoList);
+        }
+        if (!Check.isNull(videoGetList)) {
+            videoListMapper.replaceBatch(videoGetList);
+        }
+        if (toGet) {
+            getVideoList(advertiserId, accessToken, startDate, endDate, page + 1);
+        } else {
+            log.info("视频列表数据获取完成:accountId:{}", advertiserId);
+        }
+    }
+
+}

+ 110 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/VideoListJob.java

@@ -0,0 +1,110 @@
+package cn.com.ctop.job.kuaishou.handler;
+
+import cn.com.ctop.job.kuaishou.data.service.IKuaishouVideoListService;
+import cn.com.ctop.job.kuaishou.data.service.IOauthTokenService;
+import cn.com.ctop.job.kuaishou.data.utils.Check;
+import cn.com.ctop.job.kuaishou.data.utils.DateUtils;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+@Slf4j
+@Component
+public class VideoListJob {
+    @Autowired
+    private IOauthTokenService tokenService;
+    private static ExecutorService nowExecutorService = Executors.newFixedThreadPool(3);
+    private static ExecutorService yesterdayExecutorService = Executors.newFixedThreadPool(3);
+    private static ExecutorService allExecutorService = Executors.newFixedThreadPool(3);
+    @Autowired
+    private IKuaishouVideoListService videoListService;
+
+
+    /**
+     * 当日视频物料
+     *
+     * @throws Exception
+     */
+    @XxlJob("nowDateVideoList")
+    public void videoDailyReport() throws Exception {
+        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;
+        }
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        nowExecutorService.submit(
+                new Runnable() {
+                    @Override
+                    public void run() {
+                        videoListService.getVideoList(Long.valueOf(param), token, nowDate, nowDate, 1);
+                    }
+                });
+    }
+
+    /**
+     * 昨日视频物料
+     *
+     * @throws Exception
+     */
+    @XxlJob("yesterdayVideoList")
+    public void videoBeforeYesterdayDailyReport() throws Exception {
+        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;
+        }
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String date = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+        yesterdayExecutorService.submit(
+                new Runnable() {
+                    @Override
+                    public void run() {
+                        videoListService.getVideoList(Long.valueOf(param), token, date, date, 1);
+                    }
+                });
+    }
+
+    /**
+     * 所有视频物料
+     *
+     * @throws Exception
+     */
+    @XxlJob("allVideoList")
+    public void videoNowDateHourReport() throws Exception {
+        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;
+        }
+        allExecutorService.submit(
+                new Runnable() {
+                    @Override
+                    public void run() {
+                        videoListService.getVideoList(Long.valueOf(param), token, null, null, 1);
+                    }
+                });
+    }
+
+
+}

+ 29 - 0
job-kuaishou/src/test/java/cn/com/ctop/job/kuaishou/SampleTest.java

@@ -0,0 +1,29 @@
+package cn.com.ctop.job.kuaishou;
+
+
+import cn.com.ctop.job.kuaishou.data.service.IKuaishouVideoListService;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.text.ParseException;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@Slf4j
+public class SampleTest {
+    @Autowired
+    private IKuaishouVideoListService videoListService;
+
+
+    @Test
+    public void testVidhaieo() throws ParseException {
+        videoListService.getVideoList(9677344L, "f0475aaa667d82ca3c1815038b3873a7", null, null, 1);
+
+    }
+
+
+}