Browse Source

获取原生效果数据整体概览接口(除当日的近三天)

zhaoxian 1 năm trước cách đây
mục cha
commit
501912f879

+ 3 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/constant/KuaishouConstant.java

@@ -39,5 +39,8 @@ public class KuaishouConstant {
     //视频关联创意数查询
     public static final String VIDEO_RELATE_CREATIVES = "/rest/openapi/v1/file/ad/video/relate/creatives";
 
+    //获取原生效果数据整体概览接口(数据概览、分日转化数据分布、转化漏斗)
+    public static final String EFFECT_NATIVE_CHART_REPORT = "/rest/openapi/gw/dsp/v1/effect/native/chartReport";
+
 
 }

+ 50 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/entity/KuaishouEffectNativeChartreportConversionChart.java

@@ -0,0 +1,50 @@
+package cn.com.ctop.job.kuaishou.data.entity;
+
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.math.BigDecimal;
+
+/**
+ * 转化数分日柱状图对象 effect_native_chartreport_conversion_chart
+ */
+@Data
+public class KuaishouEffectNativeChartreportConversionChart {
+
+    /**
+     * 账户ID
+     */
+    private Long accountId;
+
+    /**
+     * 直接转化数
+     */
+    @Excel(name = "直接转化数")
+    private Long conversionCnt;
+
+    /**
+     * 间接转化数
+     */
+    @Excel(name = "间接转化数")
+    private Long indirectConversionCnt;
+
+    /**
+     * 归因窗口
+     */
+    @Excel(name = "归因窗口")
+    private Long attributeWindow;
+
+    /**
+     * 总体值
+     */
+    @Excel(name = "总体值")
+    private BigDecimal sumValue;
+
+    /**
+     * 日期
+     */
+    private Long date;
+
+    public KuaishouEffectNativeChartreportConversionChart() {
+    }
+}

+ 48 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/entity/KuaishouEffectNativeChartreportFunnel.java

@@ -0,0 +1,48 @@
+package cn.com.ctop.job.kuaishou.data.entity;
+
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.math.BigDecimal;
+
+/**
+ * 原生漏斗数据对象 effect_native_chartreport_funnel
+ */
+@Data
+public class KuaishouEffectNativeChartreportFunnel {
+
+    /**
+     * 账户ID
+     */
+    private Long accountId;
+
+    /**
+     * 曝光数
+     */
+    @Excel(name = "曝光数")
+    private Long adShow;
+
+    /**
+     * 行为数
+     */
+    @Excel(name = "行为数")
+    private Long actionbarClick;
+
+    /**
+     * 直接转化数
+     */
+    @Excel(name = "直接转化数")
+    private Long conversionCnt;
+
+    /**
+     * 时间窗口
+     */
+    @Excel(name = "时间窗口")
+    private BigDecimal attributeWindow;
+
+    /**
+     * 日期
+     */
+    private Long statDate;
+
+}

+ 71 - 0
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/entity/KuaishouEffectNativeChartreportSummary.java

@@ -0,0 +1,71 @@
+package cn.com.ctop.job.kuaishou.data.entity;
+
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.math.BigDecimal;
+
+/**
+ * 原生数据概览对象 effect_native_chartreport_summary
+ */
+@Data
+public class KuaishouEffectNativeChartreportSummary {
+
+    /**
+     * 账户ID
+     */
+    private Long accountId;
+
+    /**
+     * 类型
+     */
+    @Excel(name = "类型")
+    private String type;
+
+    /**
+     * 环比
+     */
+    @Excel(name = "环比")
+    private BigDecimal yoy;
+
+    /**
+     * 直接数据
+     */
+    @Excel(name = "直接数据")
+    private BigDecimal direct;
+
+    /**
+     * 间接数据
+     */
+    @Excel(name = "间接数据")
+    private BigDecimal indirect;
+
+    /**
+     * 日期
+     */
+    private Long statDate;
+
+    /**
+     * 原生消耗增量收益
+     */
+    @Excel(name = "原生消耗增量收益")
+    private BigDecimal nativeSoftChargeRatio;
+
+    /**
+     * 归因窗口
+     */
+    @Excel(name = "归因窗口")
+    private Long attributeWindow;
+
+    /**
+     * 原生转化增量收益
+     */
+    @Excel(name = "原生转化增量收益")
+    private BigDecimal nativeConversionRatio;
+
+    /**
+     * 总体值
+     */
+    @Excel(name = "总体值")
+    private BigDecimal sumValue;
+}

+ 11 - 1
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/mapper/KuaishouAccountReportDailyMapper.java

@@ -1,6 +1,9 @@
 package cn.com.ctop.job.kuaishou.data.mapper;
 
 import cn.com.ctop.job.kuaishou.data.entity.KuaishouAccountReportDaily;
+import cn.com.ctop.job.kuaishou.data.entity.KuaishouEffectNativeChartreportConversionChart;
+import cn.com.ctop.job.kuaishou.data.entity.KuaishouEffectNativeChartreportFunnel;
+import cn.com.ctop.job.kuaishou.data.entity.KuaishouEffectNativeChartreportSummary;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -13,5 +16,12 @@ import java.util.List;
  * @version V1.0
  */
 public interface KuaishouAccountReportDailyMapper extends BaseMapper<KuaishouAccountReportDaily> {
-  void replaceBatch(@Param("addList") List<KuaishouAccountReportDaily> addList);
+
+    void replaceBatch(@Param("addList") List<KuaishouAccountReportDaily> addList);
+
+    void replaceBatchSummary(@Param("sumList") List<KuaishouEffectNativeChartreportSummary> sumList);
+
+    void replaceBatchFunnel(@Param("funList") List<KuaishouEffectNativeChartreportFunnel> funList);
+
+    void replaceBatchConversionChart(@Param("chatList") List<KuaishouEffectNativeChartreportConversionChart> chatList);
 }

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

@@ -489,10 +489,84 @@
             #{add.adAppDownloadHalfImpression}
 
 
+            )
+        </foreach>
+    </insert>
 
 
+    <insert id="replaceBatchSummary">
+        replace into media_api.effect_native_chartreport_summary(
+        `account_id`,
+        `type`,
+        `yoy`,
+        `direct`,
+        `indirect`,
+        `stat_date`,
+        `native_soft_charge_ratio`,
+        `attribute_window`,
+        `native_conversion_ratio`,
+        `sum_value`
+        )
+        values
+        <foreach collection="sumList" item="sum" separator=",">
+            (
+            #{sum.accountId},
+            #{sum.type},
+            #{sum.yoy},
+            #{sum.direct},
+            #{sum.indirect},
+            #{sum.statDate},
+            #{sum.nativeSoftChargeRatio},
+            #{sum.attributeWindow},
+            #{sum.nativeConversionRatio},
+            #{sum.sumValue}
+            )
+        </foreach>
+    </insert>
+
+    <insert id="replaceBatchFunnel">
+        replace into media_api.effect_native_chartreport_funnel(
+        `account_id`,
+        `ad_show`,
+        `actionbar_click`,
+        `conversion_cnt`,
+        `attribute_window`,
+        `stat_date`
+        )
+        values
+        <foreach collection="funList" item="fun" separator=",">
+            (
+            #{fun.accountId},
+            #{fun.adShow},
+            #{fun.actionbarClick},
+            #{fun.conversionCnt},
+            #{fun.attributeWindow},
+            #{fun.statDate}
+            )
+        </foreach>
+    </insert>
 
+    <insert id="replaceBatchConversionChart">
+        replace into media_api.effect_native_chartreport_conversion_chart(
+        `account_id`,
+        `conversion_cnt`,
+        `indirect_conversion_cnt`,
+        `attribute_window`,
+        `sum_value`,
+        `date`
+        )
+        values
+        <foreach collection="chatList" item="chat" separator=",">
+            (
+            #{chat.accountId},
+            #{chat.conversionCnt},
+            #{chat.indirectConversionCnt},
+            #{chat.attributeWindow},
+            #{chat.sumValue},
+            #{chat.date}
             )
         </foreach>
     </insert>
+
+
 </mapper>

+ 5 - 2
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/service/IKuaishouAccountReportDailyService.java

@@ -10,6 +10,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @version V1.0
  */
 public interface IKuaishouAccountReportDailyService extends IService<KuaishouAccountReportDaily> {
-  void getAdvertiserReportDaily(Long advertiserId, String accessToken, String startDate, String endDate, int page) throws Exception;
-  void sendMessage(Long accountId, String startDate, String endDate, String date_type);
+    void getAdvertiserReportDaily(Long advertiserId, String accessToken, String startDate, String endDate, int page) throws Exception;
+
+    void sendMessage(Long accountId, String startDate, String endDate, String date_type);
+
+    void effectNativeChartReport(Long accountId, String token, String beginDate, String endDate);
 }

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

@@ -250,9 +250,11 @@ public class AdUnitReportServiceImpl implements IAdUnitReportService {
                 return;
             }
             JSONArray details = data.getJSONArray("details");
+            System.out.println(details);
             if (Check.isNull(details)) {
                 log.error("代理商报表返回details节点为空");
                 return;
+
             }
             List<KuaiShouDailyAgent> agentList = new ArrayList<>();
             for (int i = 0; i < details.size(); i++) {

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

@@ -2,8 +2,12 @@ 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.KuaishouAccountReportDaily;
+import cn.com.ctop.job.kuaishou.data.entity.KuaishouEffectNativeChartreportConversionChart;
+import cn.com.ctop.job.kuaishou.data.entity.KuaishouEffectNativeChartreportFunnel;
+import cn.com.ctop.job.kuaishou.data.entity.KuaishouEffectNativeChartreportSummary;
 import cn.com.ctop.job.kuaishou.data.mapper.KuaishouAccountReportDailyMapper;
 import cn.com.ctop.job.kuaishou.data.service.IKuaishouAccountReportDailyService;
+import cn.com.ctop.job.kuaishou.data.utils.Check;
 import cn.com.ctop.job.kuaishou.data.utils.DateUtils;
 import cn.com.ctop.job.kuaishou.data.utils.HttpUtils;
 import com.alibaba.fastjson.JSONArray;
@@ -36,7 +40,7 @@ public class KuaishouAccountReportDailyServiceImpl extends ServiceImpl<KuaishouA
     private String postUrl;
 
     @Override
-    public void getAdvertiserReportDaily(Long advertiserId, String accessToken, String startDate, String endDate, int page)throws Exception {
+    public void getAdvertiserReportDaily(Long advertiserId, String accessToken, String startDate, String endDate, int page) throws Exception {
         log.info("获取账户日报,账户id:{},开始时间:{},结束时间:{}", advertiserId, startDate, endDate);
         String url = postUrl + KuaishouConstant.ACCOUNT_REPORT;
         Map<String, String> headers = new HashMap<>();
@@ -50,7 +54,7 @@ public class KuaishouAccountReportDailyServiceImpl extends ServiceImpl<KuaishouA
         param.put("page", page);
         String result = HttpUtils.httpPostRequest(url, param, headers);
         JSONObject resultJson = JSONObject.parseObject(result);
-     //   System.err.println(resultJson);
+        //   System.err.println(resultJson);
         Integer code = resultJson.getInteger("code");
         String message = resultJson.getString("message");
         if (null == code || code != 0) {
@@ -85,4 +89,81 @@ public class KuaishouAccountReportDailyServiceImpl extends ServiceImpl<KuaishouA
         String result = HttpUtils.httpPostRequest(url, param, null);
         System.err.println(result);
     }
+
+    @Override
+    public void effectNativeChartReport(Long accountId, String token, String beginDate, String endDate) {
+        String url = postUrl + KuaishouConstant.EFFECT_NATIVE_CHART_REPORT;
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Access-Token", token);
+        Map<String, Object> param = new HashMap<>();
+        param.put("advertiser_id", accountId);
+        JSONObject search_param = new JSONObject();
+
+        search_param.put("report_start_day", DateUtils.timeToStamp(beginDate + " 00:00:00"));
+        search_param.put("report_end_day", DateUtils.timeToStamp(endDate + " 23:59:59"));
+        param.put("search_param", search_param);
+        String result = HttpUtils.httpPostRequest(url, param, headers);
+        JSONObject resultJson = JSONObject.parseObject(result);
+//        System.out.println("-------------------" + param);
+//        System.out.println("");
+//        System.err.println(resultJson);
+        Integer code = resultJson.getInteger("code");
+        if (null == code || code != 0) {
+            String message = resultJson.getString("message");
+            log.error("获取快手获取原生效果数据整体概览接口(数据概览、分日转化数据分布、转化漏斗)异常:{},accountId:{}", message, accountId);
+            return;
+        }
+        JSONObject data = resultJson.getJSONObject("data");
+
+        //数据概览
+        JSONArray summary = data.getJSONArray("summary");
+        if (!Check.isNull(summary)) {
+            List<KuaishouEffectNativeChartreportSummary> sumList = new ArrayList<>();
+            for (int i = 0; i < summary.size(); i++) {
+                JSONObject sumObj = summary.getJSONObject(i);
+                KuaishouEffectNativeChartreportSummary sum = JSONObject.parseObject(sumObj.toJSONString(), KuaishouEffectNativeChartreportSummary.class);
+                sum.setStatDate(DateUtils.getDateLong(beginDate));
+                sum.setAccountId(accountId);
+
+                sumList.add(sum);
+            }
+            if (!Check.isNull(sumList)) {
+                accountReportDailyMapper.replaceBatchSummary(sumList);
+            }
+        }
+
+        //漏斗数据
+        JSONArray funnel = data.getJSONArray("funnel");
+        if (!Check.isNull(funnel)) {
+            List<KuaishouEffectNativeChartreportFunnel> funList = new ArrayList<>();
+            for (int i = 0; i < funnel.size(); i++) {
+                JSONObject funObj = funnel.getJSONObject(i);
+                KuaishouEffectNativeChartreportFunnel fun = JSONObject.parseObject(funObj.toJSONString(), KuaishouEffectNativeChartreportFunnel.class);
+                fun.setStatDate(DateUtils.getDateLong(beginDate));
+                fun.setAccountId(accountId);
+
+                funList.add(fun);
+            }
+            if (!Check.isNull(funList)) {
+                accountReportDailyMapper.replaceBatchFunnel(funList);
+            }
+        }
+
+        //转化数分日柱状图
+        JSONArray conversionChart = data.getJSONArray("conversion_chart");
+        if (!Check.isNull(conversionChart)) {
+            List<KuaishouEffectNativeChartreportConversionChart> chatList = new ArrayList<>();
+            for (int i = 0; i < conversionChart.size(); i++) {
+                JSONObject chatObj = conversionChart.getJSONObject(i);
+                KuaishouEffectNativeChartreportConversionChart chat = JSONObject.parseObject(chatObj.toJSONString(), KuaishouEffectNativeChartreportConversionChart.class);
+                chat.setDate(DateUtils.getDateLong(beginDate));
+                chat.setAccountId(accountId);
+
+                chatList.add(chat);
+            }
+            if (!Check.isNull(chatList)) {
+                accountReportDailyMapper.replaceBatchConversionChart(chatList);
+            }
+        }
+    }
 }

+ 104 - 65
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/data/utils/DateUtils.java

@@ -9,73 +9,112 @@ import java.util.List;
 
 public class DateUtils {
 
-  public static Integer getDateInteger(String date) {
-    if (!Check.isNull(date)) {
-      String replace = date.replace("-", "");
-      return Integer.valueOf(replace);
+    public static Integer getDateInteger(String date) {
+        if (!Check.isNull(date)) {
+            String replace = date.replace("-", "");
+            return Integer.valueOf(replace);
+        }
+        return null;
     }
-    return null;
-  }
-
-  public static String getNowDate(String format) {
-    SimpleDateFormat sdf = new SimpleDateFormat(format);
-    Date date = new Date();
-    return sdf.format(date);
-  }
-
-  public static String getAnotherDay(String format, String date, Integer num) {
-
-    SimpleDateFormat sdf = new SimpleDateFormat(format);
-    Date getDate = null;
-    try {
-      getDate = sdf.parse(date);
-    } catch (ParseException e) {
-      e.printStackTrace();
+    public static Long getDateLong(String date) {
+        if (!Check.isNull(date)) {
+            String replace = date.replace("-", "");
+            return Long.valueOf(replace);
+        }
+        return null;
     }
-    Calendar calendar = Calendar.getInstance();
-    calendar.setTime(getDate);
-    calendar.add(Calendar.DAY_OF_MONTH, num);
-    Date resultDate = calendar.getTime();
-    return sdf.format(resultDate);
-  }
-
-  /**
-   * 获取 两个日期之间的所有 日期
-   * @param startDate
-   * @param endDate
-   */
-  public static List<String> getAllDatesOfTwoTimes(String startDate, String endDate) {
-    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-    List<String> dateList = new ArrayList<String>();
-    try {
-      Date dateOne = sdf.parse(startDate);
-      Date dateTwo = sdf.parse(endDate);
-
-      Calendar calendar = Calendar.getInstance();
-      calendar.setTime(dateOne);
-
-      dateList.add(startDate);
-      while (calendar.getTime().before(dateTwo)) { //倒序时间,顺序after改before其他相应的改动。
-        calendar.add(Calendar.DAY_OF_MONTH, 1);
-        dateList.add(sdf.format(calendar.getTime()));
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
+
+    public static String getNowDate(String format) {
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        Date date = new Date();
+        return sdf.format(date);
+    }
+
+    public static String getAnotherDay(String format, String date, Integer num) {
+
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        Date getDate = null;
+        try {
+            getDate = sdf.parse(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(getDate);
+        calendar.add(Calendar.DAY_OF_MONTH, num);
+        Date resultDate = calendar.getTime();
+        return sdf.format(resultDate);
+    }
+
+    /**
+     * 获取 两个日期之间的所有 日期
+     *
+     * @param startDate
+     * @param endDate
+     */
+    public static List<String> getAllDatesOfTwoTimes(String startDate, String endDate) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        List<String> dateList = new ArrayList<String>();
+        try {
+            Date dateOne = sdf.parse(startDate);
+            Date dateTwo = sdf.parse(endDate);
+
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(dateOne);
+
+            dateList.add(startDate);
+            while (calendar.getTime().before(dateTwo)) { //倒序时间,顺序after改before其他相应的改动。
+                calendar.add(Calendar.DAY_OF_MONTH, 1);
+                dateList.add(sdf.format(calendar.getTime()));
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return dateList;
+    }
+
+    public static Date addDay(Date date, int day) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.DAY_OF_YEAR, day);
+        return calendar.getTime();
     }
-    return dateList;
-  }
-
-  public static Date addDay(Date date, int day) {
-    Calendar calendar = Calendar.getInstance();
-    calendar.setTime(date);
-    calendar.add(Calendar.DAY_OF_YEAR, day);
-    return calendar.getTime();
-  }
-
-  public static Date getNowDate() throws ParseException {
-    SimpleDateFormat dsdf = new SimpleDateFormat("yyyy-MM-dd");
-    String nowDate = getNowDate("yyyy-MM-dd");
-    return dsdf.parse(nowDate);
-  }
 
+    public static Date getNowDate() throws ParseException {
+        SimpleDateFormat dsdf = new SimpleDateFormat("yyyy-MM-dd");
+        String nowDate = getNowDate("yyyy-MM-dd");
+        return dsdf.parse(nowDate);
+    }
+
+    /*
+     日期转换为时间戳(毫秒)
+      */
+    public static long timeToStamp(String timers) {
+        Date d = new Date();
+        long timeStemp = 0;
+        try {
+            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            d = sf.parse(timers);// 日期转换为时间戳
+        } catch (ParseException e) {
+
+            e.printStackTrace();
+        }
+        timeStemp = d.getTime();
+        return timeStemp;
+    }
+
+    /*时间戳(毫秒)转换为日期
+    format:yyyyMMdd 、 yyyy-MM-dd
+    */
+    public static String tempToDate(long millis, String format) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
+        Date d1 = new Date(millis);
+        String d2 = simpleDateFormat.format(d1);
+        return d2;
+    }
+
+    public static void main(String[] args) {
+
+        System.out.println(tempToDate(1704858060000L,"yyyy-MMdd"));
+    }
 }

+ 42 - 1
job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/AccountReportlJob.java

@@ -7,6 +7,7 @@ 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.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -138,7 +139,7 @@ public class AccountReportlJob {
         }
 
         String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
-        String  beforeYesterday = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -2);
+        String beforeYesterday = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -2);
         hourExecutorService.submit(
                 new Runnable() {
                     @Override
@@ -148,4 +149,44 @@ public class AccountReportlJob {
                     }
                 });
     }
+
+    /**
+     * 获取原生效果数据整体概览接口(数据概览、分日转化数据分布、转化漏斗)
+     * 近三天
+     */
+    @XxlJob("effectNativeChartReport")
+    public void effectNativeChartReport() 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 yesterday = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+        //前天
+        String beforeYesterday = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -2);
+        //大前天
+        String beforeYesterday2 = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -3);
+
+        dailyExecutorService.submit(
+                new Runnable() {
+                    @SneakyThrows
+                    @Override
+                    public void run() {
+                        Thread.sleep(500);
+                        kuaishouAccountReportDailyService.effectNativeChartReport(Long.valueOf(param), token, yesterday, yesterday);
+                        kuaishouAccountReportDailyService.effectNativeChartReport(Long.valueOf(param), token, beforeYesterday, beforeYesterday);
+                        kuaishouAccountReportDailyService.effectNativeChartReport(Long.valueOf(param), token, beforeYesterday2, beforeYesterday2);
+
+                    }
+                });
+    }
 }