Forráskód Böngészése

快手接口请求速度

yumeng 4 éve
szülő
commit
5bd1a2e608
13 módosított fájl, 273 hozzáadás és 38 törlés
  1. 5 5
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestController.java
  2. 2 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/job/KuaishouDailyAccountReportLoadJob.java
  3. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/job/KuaishouDailyAccountReportNextDayStayJob.java
  4. 2 2
      module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouDailyAccountReportLoadJob.java
  5. 17 10
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouInterfaceServiceImpl.java
  6. 3 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyAccount.java
  7. 6 18
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportHourlyAccount.java
  8. 2 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouReportDailyAccountMapper.java
  9. 3 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouReportHourlyAccountMapper.java
  10. 123 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouReportDailyAccountMapper.xml
  11. 96 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouReportHourlyAccountMapper.xml
  12. 3 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IKuaishouReportHourlyAccountService.java
  13. 10 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaishouReportHourlyAccountServiceImpl.java

+ 5 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestController.java

@@ -688,7 +688,7 @@ public class TestController {
                             @Override
                             public void run() {
                                 //1: 获取广告主信息数据
-                                kuaishouInterfaceService.getAdvertiserReportDaily(token, start, end);
+                                kuaishouInterfaceService.getAdvertiserReportDaily(token, start, end,"adScene");
                             }
                         });
                     });
@@ -743,7 +743,7 @@ public class TestController {
         SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd");
         Date date1 = sim.parse(startDate);
         Date date2 = sim.parse(endDate);
-        kuaishouInterfaceService.getAdvertiserReportDaily(token, date1, date2);
+        kuaishouInterfaceService.getAdvertiserReportDaily(token, date1, date2,"adScene");
         return "Success";
     }
 
@@ -760,7 +760,7 @@ public class TestController {
             List<CtopOauthToken> ctopOauthTokens = tokenMapper.selectList(tokenQueryWrapper);
             if (!Check.isNull(ctopOauthTokens)) {
                 for (CtopOauthToken token : ctopOauthTokens) {
-                    kuaishouInterfaceService.getAdvertiserReportDaily(token, date1, date2);
+                    kuaishouInterfaceService.getAdvertiserReportDaily(token, date1, date2,"adScene");
                 }
             }
         } catch (Exception e) {
@@ -1084,7 +1084,7 @@ public class TestController {
                     } catch (ParseException e) {
                         e.printStackTrace();
                     }
-                    kuaishouInterfaceService.getAdvertiserReportDaily(token, startDate, endDate);
+                    kuaishouInterfaceService.getAdvertiserReportDaily(token, startDate, endDate,"adScene");
 
                     Thread.sleep(1 * 200);
                     //  kuaishouInterfaceService.getAppList(token.getAccountId(), token.getAccessToken());
@@ -1170,7 +1170,7 @@ public class TestController {
                 @Override
                 public void run() {
                     //1: 获取广告主信息数据
-                    kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate, getDate);
+                    kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate, getDate,"adScene");
                 }
             });
         });

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/job/KuaishouDailyAccountReportLoadJob.java

@@ -48,9 +48,9 @@ public class KuaishouDailyAccountReportLoadJob implements Job {
                         @Override
                         public void run() {
                             //跑两天前的账户报表---次留统计用
-                            kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate2, getDate2);
+                            kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate2, getDate2, "adScene");
                             //1: 获取广告主信息数据
-                            kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate, getDate);
+                            kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate, getDate, "adScene");
                         }
                     });
                 });

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/job/KuaishouDailyAccountReportNextDayStayJob.java

@@ -48,7 +48,7 @@ public class KuaishouDailyAccountReportNextDayStayJob implements Job {
                         @Override
                         public void run() {
                             //1: 获取广告主信息数据
-                            kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate, getDate);
+                            kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate, getDate, "adScene");
                         }
                     });
                 });

+ 2 - 2
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouDailyAccountReportLoadJob.java

@@ -40,8 +40,8 @@ public class KuaishouDailyAccountReportLoadJob {
             return ;
         }
         tokens.forEach(token -> executorService.submit(() ->{
-                    kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate2, getDate2);
-                    kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate, getDate);
+                    kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate2, getDate2,"adScene");
+                    kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate, getDate,"adScene");
 
 
         }));

+ 17 - 10
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouInterfaceServiceImpl.java

@@ -145,10 +145,11 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         param.put("end_date", DateUtils.formatDate(endDate));
         param.put("advertiser_id", token.getAccountId());
         param.put("temporal_granularity", "HOURLY");
-        param.put("page_size", 500);
+        param.put("page_size", 2000);
         param.put("page", page);
         String result = HttpUtils.httpPostRequest(url, param, headers);
         JSONObject resultJson = JSONObject.parseObject(result);
+        System.err.println(resultJson);
         Integer code = resultJson.getInteger("code");
         String message = resultJson.getString("message");
         if (null == code || code != 0) {
@@ -159,19 +160,21 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         if (null == details || details.size() <= 0) {
             return;
         }
+        List<KuaishouReportHourlyAccount> addList = new ArrayList<>();
         for (int i = 0; i < details.size(); i++) {
             JSONObject detailJson = details.getJSONObject(i);
             var show = detailJson.getLong("show");
             detailJson.put("photo_show", show);
             var like = detailJson.getLong("like");
             detailJson.put("photo_like", like);
-            var kuaishouReportHourlyAccount = JSONObject.toJavaObject(detailJson, KuaishouReportHourlyAccount.class);
+            KuaishouReportHourlyAccount kuaishouReportHourlyAccount = JSONObject.toJavaObject(detailJson, KuaishouReportHourlyAccount.class);
             kuaishouReportHourlyAccount.setAccountId(token.getAccountId());
             kuaishouReportHourlyAccount.setId("" + token.getAccountId() + kuaishouReportHourlyAccount.getStatDate() + kuaishouReportHourlyAccount.getStatHour());
-            kuaishouReportHourlyAccount.setCreateTime(new Date());
-            kuaishouReportHourlyAccount.setUpdateTime(new Date());
-            hourlyAccountService.saveOrUpdate(kuaishouReportHourlyAccount);
+            //  hourlyAccountService.saveOrUpdate(kuaishouReportHourlyAccount);
+            addList.add(kuaishouReportHourlyAccount);
         }
+        hourlyAccountService.replaceBatch(addList);
+
     }
 
 
@@ -290,7 +293,9 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             param.put("end_date", DateUtils.formatDate(endDate));
         }
         if (!Check.isNull(reportDims)) {
-            param.put("report_dims", reportDims);
+            JSONArray array = new JSONArray();
+            array.add(reportDims);
+            param.put("report_dims", array);
         }
 
         param.put("advertiser_id", token.getAccountId());
@@ -311,7 +316,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             return;
         }
 
-        List<>
+        List<KuaishouReportDailyAccount> addList = new ArrayList<>();
         for (int i = 0; i < details.size(); i++) {
             JSONObject detailJson = details.getJSONObject(i);
             if (!Check.isNull(detailJson)) {
@@ -321,13 +326,15 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                 detailJson.put("photo_show", detailJson.getString("show"));
                 KuaishouReportDailyAccount KuaishouReportDailyAccount = JSONObject.toJavaObject(detailJson, KuaishouReportDailyAccount.class);
                 KuaishouReportDailyAccount.setAccountId(token.getAccountId());
-          //      dailyAccountMapper.insertSelective(KuaishouReportDailyAccount);
+                //      dailyAccountMapper.insertSelective(KuaishouReportDailyAccount);
+                addList.add(KuaishouReportDailyAccount);
             }
         }
+
+        dailyAccountMapper.replaceBatch(addList);
         getAccountDailyReportByPage(token, startDate, endDate, page + 1, reportDims);
     }
 
-
     @Override
     public void getAdvertiserCampaignReportDaily(CtopOauthToken token, Date startDate, Date endDate) {
         getCampaignDailyReportByPage(token, startDate, endDate, 1);
@@ -906,7 +913,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             Date getStartDate = DateUtils.addDay(endDate, -i);
             //1: 获取广告主信息数据
             getAdvertiserReportHourly(token, getStartDate, getStartDate);
-            getAdvertiserReportDaily(token, getStartDate, getStartDate);
+            getAdvertiserReportDaily(token, getStartDate, getStartDate, "adScene");
             //2:获取广告计划信息数据
             // getAdvertiserCampaignReportHourly(token, getStartDate, getStartDate);
             //3:获取广告组信息数据

+ 3 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyAccount.java

@@ -21,6 +21,9 @@ public class KuaishouReportDailyAccount implements Serializable {
     @JsonProperty("charge")
     private BigDecimal charge;
 
+    @JsonProperty("ad_scene")
+    private String adScene;
+
     @JsonProperty("photo_show")
     private Long photoShow;
 

+ 6 - 18
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportHourlyAccount.java

@@ -1,5 +1,6 @@
 package cn.com.ctop.kuaishou.modules.report.entity;
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -14,9 +15,8 @@ import java.util.Date;
 @TableName("ctop_kuaishou_report_hourly_account")
 public class KuaishouReportHourlyAccount implements Serializable {
     private static final long serialVersionUID = 1L;
-    @TableId
+    @TableId(type = IdType.UUID)
     private String id;
-
     private Long accountId;
     @JsonProperty("stat_date")
     private String statDate;
@@ -35,22 +35,7 @@ public class KuaishouReportHourlyAccount implements Serializable {
     private Long aclick;
     @JsonProperty
     private Long bclick;
-    @JsonProperty
-    private Long share;
-    @JsonProperty
-    private Long comment;
-    @JsonProperty
-    private Long photoLike;
-    @JsonProperty
-    private Long follow;
-    @JsonProperty("cancel_follow")
-    private Long cancelFollow;
-    @JsonProperty
-    private Long report;
-    @JsonProperty
-    private Long block;
-    @JsonProperty
-    private Long negative;
+
     @JsonProperty("download_started")
     private Long downloadStarted;
     @JsonProperty("download_completed")
@@ -120,6 +105,9 @@ public class KuaishouReportHourlyAccount implements Serializable {
     @JsonProperty
     private BigDecimal eventNextDayStay;
     @JsonProperty
+    private Double play3sRatio;
+
+    @JsonProperty
     private Date createTime;
     @JsonProperty
     private Date updateTime;

+ 2 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouReportDailyAccountMapper.java

@@ -48,4 +48,6 @@ public interface KuaishouReportDailyAccountMapper extends BaseMapper<KuaishouRep
     List<Long> getSaleProjectAccountIds(@Param("userId")String userId, @Param("yn")Integer yn);
 
     List<KuaishouReportAccountDailyDTOEntity> getKuaishouProjectInfoEntity(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("projectList")List<Long> projectList, @Param("yn")Integer yn);
+
+    void replaceBatch(@Param("addList") List<KuaishouReportDailyAccount> addList);
 }

+ 3 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouReportHourlyAccountMapper.java

@@ -5,9 +5,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 public interface KuaishouReportHourlyAccountMapper extends BaseMapper<KuaishouReportHourlyAccount> {
     Integer selectMaxHour(@Param("accountId") Long accountId, @Param("statDate") String statDate);
 
     BigDecimal getCost(@Param("accountId") Long accountId, @Param("statHour") Integer statHour, @Param("statDate") String statDate);
+
+    void replaceBatch(@Param("addList") List<KuaishouReportHourlyAccount> addList);
 }

+ 123 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouReportDailyAccountMapper.xml

@@ -82,6 +82,128 @@
   </sql>
 
 
+    <insert id="replaceBatch">
+        replace into ctop_kuaishou_report_daily_account(
+        account_id,
+        ad_scene,
+        charge,
+        photo_show,
+        aclick,
+        bclick,
+        photo_share,
+        photo_comment,
+        photo_like,
+        follow,
+        cancel_follow,
+        report,
+        block,
+        negative,
+        download_started,
+        download_completed,
+        activation,
+        submit,
+        stat_date,
+        photo_click,
+        photo_click_ratio,
+        action_ratio,
+        impression_1k_cost,
+        photo_click_cost,
+        action_cost,
+        event_pay_first_day,
+        event_pay_purchase_amount_first_day,
+        event_pay_first_day_roi,
+        event_pay,
+        event_pay_purchase_amount,
+        event_pay_roi,
+        event_register,
+        event_register_cost,
+        event_register_ratio,
+        event_jin_jian_app,
+        event_jin_jian_app_cost,
+        event_credit_grant_app,
+        event_credit_grant_app_cost,
+        event_credit_grant_app_ratio,
+        event_order_paid,
+        event_order_paid_purchase_amount,
+        event_jin_jian_landing_page,
+        event_jin_jian_landing_page_cost,
+        event_credit_grant_landing_page,
+        event_credit_grant_landing_page_cost,
+        event_credit_grant_landing_ratio,
+        event_next_day_stay_cost,
+        event_next_day_stay_ratio,
+        form_action_ratio,
+        event_order_paid_cost,
+        event_next_day_stay,
+        form_cost,
+        form_count,
+        play_3s_ratio
+
+        )
+        values
+        <foreach collection="addList" item="add" separator=",">
+            (
+            #{add.accountId},
+            #{add.adScene},
+            #{add.charge},
+            #{add.photoShow},
+            #{add.aclick},
+            #{add.bclick},
+            #{add.photoShare},
+            #{add.photoComment},
+            #{add.photoLike},
+            #{add.follow},
+            #{add.cancelFollow},
+            #{add.report},
+            #{add.block},
+            #{add.negative},
+            #{add.downloadStarted},
+            #{add.downloadCompleted},
+            #{add.activation},
+            #{add.submit},
+            #{add.statDate},
+            #{add.photoClick},
+            #{add.photoClickRatio},
+            #{add.actionRatio},
+            #{add.impression1kCost},
+            #{add.photoClickCost},
+            #{add.actionCost},
+            #{add.eventPayFirstDay},
+            #{add.eventPayPurchaseAmountFirstDay},
+            #{add.eventPayFirstDayRoi},
+            #{add.eventPay},
+            #{add.eventPayPurchaseAmount},
+            #{add.eventPayRoi},
+            #{add.eventRegister},
+            #{add.eventRegisterCost},
+            #{add.eventRegisterRatio},
+            #{add.eventJinJianApp},
+            #{add.eventJinJianAppCost},
+            #{add.eventCreditGrantApp},
+            #{add.eventCreditGrantAppCost},
+            #{add.eventCreditGrantAppRatio},
+            #{add.eventOrderPaid},
+            #{add.eventOrderPaidPurchaseAmount},
+            #{add.eventJinJianLandingPage},
+            #{add.eventJinJianLandingPageCost},
+            #{add.eventCreditGrantLandingPage},
+            #{add.eventCreditGrantLandingPageCost},
+            #{add.eventCreditGrantLandingRatio},
+            #{add.eventNextDayStayCost},
+            #{add.eventNextDayStayRatio},
+            #{add.formActionRatio},
+            #{add.eventOrderPaidCost},
+            #{add.eventNextDayStay},
+            #{add.formCost},
+            #{add.formCount},
+            #{add.play3sRatio}
+
+            )
+        </foreach>
+
+    </insert>
+
+
     <insert id="insertSelective" parameterType="cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportDailyAccount">
         replace into ctop_kuaishou_report_daily_account
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -526,6 +648,7 @@
           set account_id = #{accountId}
     </insert>
 
+
     <select id="selectCost" resultType="com.alibaba.fastjson.JSONObject">
         select
             sum(charge) cost,

+ 96 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouReportHourlyAccountMapper.xml

@@ -1,6 +1,102 @@
 <?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.kuaishou.modules.report.mapper.KuaishouReportHourlyAccountMapper">
+    <insert id="replaceBatch">
+        replace into ctop_kuaishou_report_hourly_account(
+        id,
+        account_id,
+        charge,
+        photo_show,
+        aclick,
+        bclick,
+        download_started,
+        download_completed,
+        activation,
+        submit,
+        stat_date,
+        stat_hour,
+        photo_click,
+        photo_click_ratio,
+        action_ratio,
+        impression_1k_cost,
+        photo_click_cost,
+        action_cost,
+        event_pay_first_day,
+        event_pay_purchase_amount_first_day,
+        event_pay_first_day_roi,
+        event_pay,
+        event_pay_purchase_amount,
+        event_pay_roi,
+        event_register,
+        event_register_cost,
+        event_jin_jian_app,
+        event_jin_jian_app_cost,
+        event_credit_grant_app,
+        event_credit_grant_app_cost,
+        event_credit_grant_app_ratio,
+        event_order_paid,
+        event_order_paid_purchase_amount,
+        event_jin_jian_landing_page,
+        event_jin_jian_landing_page_cost,
+        event_credit_grant_landing_page,
+        event_credit_grant_landing_page_cost,
+        form_action_ratio,
+        event_order_paid_cost,
+        event_next_day_stay,
+        form_cost,
+        form_count,
+        play_3s_ratio
+        )
+        values
+        <foreach collection="addList" item="add" separator=",">
+            (
+            #{add.id},
+            #{add.accountId},
+            #{add.charge},
+            #{add.photoShow},
+            #{add.aclick},
+            #{add.bclick},
+            #{add.downloadStarted},
+            #{add.downloadCompleted},
+            #{add.activation},
+            #{add.submit},
+            #{add.statDate},
+            #{add.statHour},
+            #{add.photoClick},
+            #{add.photoClickRatio},
+            #{add.actionRatio},
+            #{add.impression1kCost},
+            #{add.photoClickCost},
+            #{add.actionCost},
+            #{add.eventPayFirstDay},
+            #{add.eventPayPurchaseAmountFirstDay},
+            #{add.eventPayFirstDayRoi},
+            #{add.eventPay},
+            #{add.eventPayPurchaseAmount},
+            #{add.eventPayRoi},
+            #{add.eventRegister},
+            #{add.eventRegisterCost},
+            #{add.eventJinJianApp},
+            #{add.eventJinJianAppCost},
+            #{add.eventCreditGrantApp},
+            #{add.eventCreditGrantAppCost},
+            #{add.eventCreditGrantAppRatio},
+            #{add.eventOrderPaid},
+            #{add.eventOrderPaidPurchaseAmount},
+            #{add.eventJinJianLandingPage},
+            #{add.eventJinJianLandingPageCost},
+            #{add.eventCreditGrantLandingPage},
+            #{add.eventCreditGrantLandingPageCost},
+            #{add.formActionRatio},
+            #{add.eventOrderPaidCost},
+            #{add.eventNextDayStay},
+            #{add.formCost},
+            #{add.formCount},
+            #{add.play3sRatio}
+            )
+        </foreach>
+
+    </insert>
 
     <select id="selectMaxHour" resultType="java.lang.Integer">
         select max(stat_hour)

+ 3 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IKuaishouReportHourlyAccountService.java

@@ -3,5 +3,8 @@ package cn.com.ctop.kuaishou.modules.report.service;
 import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportHourlyAccount;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 public interface IKuaishouReportHourlyAccountService extends IService<KuaishouReportHourlyAccount> {
+    void replaceBatch(List<KuaishouReportHourlyAccount> addList);
 }

+ 10 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaishouReportHourlyAccountServiceImpl.java

@@ -4,8 +4,18 @@ import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportHourlyAccount;
 import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouReportHourlyAccountMapper;
 import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportHourlyAccountService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class KuaishouReportHourlyAccountServiceImpl extends ServiceImpl<KuaishouReportHourlyAccountMapper, KuaishouReportHourlyAccount> implements IKuaishouReportHourlyAccountService {
+    @Autowired
+    private KuaishouReportHourlyAccountMapper hourlyAccountMapper;
+
+    @Override
+    public void replaceBatch(List<KuaishouReportHourlyAccount> addList) {
+        hourlyAccountMapper.replaceBatch(addList);
+    }
 }