zhaoxian пре 4 година
родитељ
комит
e3c840faa8
21 измењених фајлова са 2249 додато и 2 уклоњено
  1. 4 0
      module-common/src/main/java/cn/com/ctop/common/module/utils/KuaishouInterfaceConstant.java
  2. 48 0
      module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouDailyAudienceReportJob.java
  3. 6 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/IKuaiShouCommentServiceImpl.java
  4. 256 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/controller/KuaishouAudienceReportDailyController.java
  5. 750 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouAudienceReportDaily.java
  6. 22 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouAudienceReportDailyAge.java
  7. 30 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouAudienceReportDailyBussiness.java
  8. 30 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouAudienceReportDailyCity.java
  9. 31 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouAudienceReportDailyClient.java
  10. 30 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouAudienceReportDailyGender.java
  11. 749 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouAudienceReportDailyProvince.java
  12. 15 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyAgeMapper.java
  13. 16 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyBusinessMapper.java
  14. 16 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyCityMapper.java
  15. 16 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyClientMapper.java
  16. 16 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyGenderMapper.java
  17. 15 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyMapper.java
  18. 15 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyProvinceMapper.java
  19. 5 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyMapper.xml
  20. 24 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IKuaishouAudienceReportDailyService.java
  21. 155 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaishouAudienceReportDailyServiceImpl.java

+ 4 - 0
module-common/src/main/java/cn/com/ctop/common/module/utils/KuaishouInterfaceConstant.java

@@ -309,5 +309,9 @@ public class KuaishouInterfaceConstant {
      * 屏蔽评论接口
      */
     public static final String COMMENT_SHIELD = "/rest/openapi/v1/comment/shield";
+  /**
+     * 人群分析报表
+     */
+    public static final String AUDIENCE_REPORT = "/rest/openapi/v1/report/audience_report";
 
 }

+ 48 - 0
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouDailyAudienceReportJob.java

@@ -0,0 +1,48 @@
+package cn.com.ctop.job.kuaishou.handler;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.service.ICtopOauthTokenService;
+import cn.com.ctop.kuaishou.modules.report.service.IKuaishouAudienceReportDailyService;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import org.jeecg.common.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * 快手广告主分天数据
+ *
+ * @author syh
+ */
+@Component
+public class KuaishouDailyAudienceReportJob {
+    @Autowired
+    private ICtopOauthTokenService tokenService;
+    @Autowired
+    private IKuaishouAudienceReportDailyService kuaishouAudienceReportDailyService;
+    static ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+    @XxlJob("kuaishouDailyAudienceReportJob")
+    public void execute() throws Exception {
+        //查询两天前数据
+        String date = DateUtils.getLastDay(DateUtils.date2Str(), 2);
+        List<CtopOauthToken> tokens = tokenService.selectKuaiShouToken();
+        if (null == tokens || tokens.isEmpty()) {
+            XxlJobHelper.log("定时获取人群分析报表数据异常:未获取到可用的token");
+            XxlJobHelper.handleFail();
+            return;
+        }
+        tokens.forEach(token -> executorService.submit(() -> {
+            kuaishouAudienceReportDailyService.crowdAnalysisReport(token, date, "province", 1, 2000);
+            kuaishouAudienceReportDailyService.crowdAnalysisReport(token, date, "city", 1, 2000);
+            kuaishouAudienceReportDailyService.crowdAnalysisReport(token, date, "gender", 1, 2000);
+            kuaishouAudienceReportDailyService.crowdAnalysisReport(token, date, "ageSegment", 1, 2000);
+            kuaishouAudienceReportDailyService.crowdAnalysisReport(token, date, "clientId", 1, 2000);
+            kuaishouAudienceReportDailyService.crowdAnalysisReport(token, date, "businessInterestTags", 1, 2000);
+        }));
+    }
+}

+ 6 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/IKuaiShouCommentServiceImpl.java

@@ -29,8 +29,12 @@ public class IKuaiShouCommentServiceImpl implements IKuaiShouCommentService {
 
     @Override
     public void shieldComment(Long accountId) {
-        CtopOauthToken oauthToken = oauthTokenService.getTokenByAccountId(accountId);
-        queryComments(oauthToken.getAccessToken(), accountId, 1, 500, 0);
+        try {
+            CtopOauthToken oauthToken = oauthTokenService.getTokenByAccountId(accountId);
+            queryComments(oauthToken.getAccessToken(), accountId, 1, 500, 0);
+        } catch (Exception e) {
+            log.error("屏蔽评论异常", e);
+        }
     }
 
     /**

+ 256 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/controller/KuaishouAudienceReportDailyController.java

@@ -0,0 +1,256 @@
+package cn.com.ctop.kuaishou.modules.report.controller;
+
+import cn.com.ctop.common.module.annotation.AutoLog;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
+import cn.com.ctop.kuaishou.modules.report.service.IKuaishouAudienceReportDailyService;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 人群分析报表
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-12-03
+ */
+@Slf4j
+@Api(tags = "人群分析报表")
+@RestController
+@RequestMapping("/modules.batch/kuaishouAudienceReportDaily")
+public class KuaishouAudienceReportDailyController {
+    @Autowired
+    private IKuaishouAudienceReportDailyService kuaishouAudienceReportDailyService;
+
+    /**
+     * 分页列表查询
+     *
+     * @param kuaishouAudienceReportDaily
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @AutoLog(value = "人群分析报表-分页列表查询")
+    @ApiOperation(value = "人群分析报表-分页列表查询", notes = "人群分析报表-分页列表查询")
+    @GetMapping(value = "/list")
+    public Result<IPage<KuaishouAudienceReportDaily>> queryPageList(KuaishouAudienceReportDaily kuaishouAudienceReportDaily,
+                                                                    @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                                    HttpServletRequest req) {
+        Result<IPage<KuaishouAudienceReportDaily>> result = new Result<>();
+        QueryWrapper<KuaishouAudienceReportDaily> queryWrapper = QueryGenerator.initQueryWrapper(kuaishouAudienceReportDaily, req.getParameterMap());
+        Page<KuaishouAudienceReportDaily> page = new Page<KuaishouAudienceReportDaily>(pageNo, pageSize);
+        IPage<KuaishouAudienceReportDaily> pageList = kuaishouAudienceReportDailyService.page(page, queryWrapper);
+        result.setSuccess(true);
+        result.setResult(pageList);
+        return result;
+    }
+
+    /**
+     * 添加
+     *
+     * @param kuaishouAudienceReportDaily
+     * @return
+     */
+    @AutoLog(value = "人群分析报表-添加")
+    @ApiOperation(value = "人群分析报表-添加", notes = "人群分析报表-添加")
+    @PostMapping(value = "/add")
+    public Result<KuaishouAudienceReportDaily> add(@RequestBody KuaishouAudienceReportDaily kuaishouAudienceReportDaily) {
+        Result<KuaishouAudienceReportDaily> result = new Result<>();
+        try {
+            kuaishouAudienceReportDailyService.save(kuaishouAudienceReportDaily);
+            result.success("添加成功!");
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            result.error500("操作失败");
+        }
+        return result;
+    }
+
+    /**
+     * 编辑
+     *
+     * @param kuaishouAudienceReportDaily
+     * @return
+     */
+    @AutoLog(value = "人群分析报表-编辑")
+    @ApiOperation(value = "人群分析报表-编辑", notes = "人群分析报表-编辑")
+    @PutMapping(value = "/edit")
+    public Result<KuaishouAudienceReportDaily> edit(@RequestBody KuaishouAudienceReportDaily kuaishouAudienceReportDaily) {
+        Result<KuaishouAudienceReportDaily> result = new Result<KuaishouAudienceReportDaily>();
+        KuaishouAudienceReportDaily kuaishouAudienceReportDailyEntity = kuaishouAudienceReportDailyService.getById(kuaishouAudienceReportDaily.getId());
+        if (kuaishouAudienceReportDailyEntity == null) {
+            result.error500("未找到对应实体");
+        } else {
+            boolean ok = kuaishouAudienceReportDailyService.updateById(kuaishouAudienceReportDaily);
+            if (ok) {
+                result.success("修改成功!");
+            }
+        }
+
+        return result;
+    }
+
+    /**
+     * 通过id删除
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "人群分析报表-通过id删除")
+    @ApiOperation(value = "人群分析报表-通过id删除", notes = "人群分析报表-通过id删除")
+    @DeleteMapping(value = "/delete")
+    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
+        try {
+            kuaishouAudienceReportDailyService.removeById(id);
+        } catch (Exception e) {
+            log.error("删除失败", e.getMessage());
+            return Result.error("删除失败!");
+        }
+        return Result.ok("删除成功!");
+    }
+
+    /**
+     * 批量删除
+     *
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "人群分析报表-批量删除")
+    @ApiOperation(value = "人群分析报表-批量删除", notes = "人群分析报表-批量删除")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<KuaishouAudienceReportDaily> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+        Result<KuaishouAudienceReportDaily> result = new Result<>();
+        if (ids == null || "".equals(ids.trim())) {
+            result.error500("参数不识别!");
+        } else {
+            this.kuaishouAudienceReportDailyService.removeByIds(Arrays.asList(ids.split(",")));
+            result.success("删除成功!");
+        }
+        return result;
+    }
+
+    /**
+     * 通过id查询
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "人群分析报表-通过id查询")
+    @ApiOperation(value = "人群分析报表-通过id查询", notes = "人群分析报表-通过id查询")
+    @GetMapping(value = "/queryById")
+    public Result<KuaishouAudienceReportDaily> queryById(@RequestParam(name = "id", required = true) String id) {
+        Result<KuaishouAudienceReportDaily> result = new Result<>();
+        KuaishouAudienceReportDaily kuaishouAudienceReportDaily = kuaishouAudienceReportDailyService.getById(id);
+        if (kuaishouAudienceReportDaily == null) {
+            result.error500("未找到对应实体");
+        } else {
+            result.setResult(kuaishouAudienceReportDaily);
+            result.setSuccess(true);
+        }
+        return result;
+    }
+
+    /**
+     * 导出excel
+     *
+     * @param request
+     * @param response
+     */
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+        // Step.1 组装查询条件
+        QueryWrapper<KuaishouAudienceReportDaily> queryWrapper = null;
+        try {
+            String paramsStr = request.getParameter("paramsStr");
+            if (oConvertUtils.isNotEmpty(paramsStr)) {
+                String deString = URLDecoder.decode(paramsStr, "UTF-8");
+                KuaishouAudienceReportDaily kuaishouAudienceReportDaily = JSON.parseObject(deString, KuaishouAudienceReportDaily.class);
+                queryWrapper = QueryGenerator.initQueryWrapper(kuaishouAudienceReportDaily, request.getParameterMap());
+            }
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+
+        //Step.2 AutoPoi 导出Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        List<KuaishouAudienceReportDaily> pageList = kuaishouAudienceReportDailyService.list(queryWrapper);
+        //导出文件名称
+        mv.addObject(NormalExcelConstants.FILE_NAME, "人群分析报表列表");
+        mv.addObject(NormalExcelConstants.CLASS, KuaishouAudienceReportDaily.class);
+        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("人群分析报表列表数据", "导出人:Jeecg", "导出信息"));
+        mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
+        return mv;
+    }
+
+    /**
+     * 通过excel导入数据
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+            MultipartFile file = entity.getValue();
+            ImportParams params = new ImportParams();
+            params.setTitleRows(2);
+            params.setHeadRows(1);
+            params.setNeedSave(true);
+            try {
+                List<KuaishouAudienceReportDaily> listKuaishouAudienceReportDailys = ExcelImportUtil.importExcel(file.getInputStream(), KuaishouAudienceReportDaily.class, params);
+                kuaishouAudienceReportDailyService.saveBatch(listKuaishouAudienceReportDailys);
+                return Result.ok("文件导入成功!数据行数:" + listKuaishouAudienceReportDailys.size());
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+                return Result.error("文件导入失败:" + e.getMessage());
+            } finally {
+                try {
+                    file.getInputStream().close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return Result.ok("文件导入失败!");
+    }
+
+}

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

@@ -0,0 +1,750 @@
+package cn.com.ctop.kuaishou.modules.report.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * 人群分析报表
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-12-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_audience_report_daily_province对象", description = "人群分析报表")
+public class KuaishouAudienceReportDaily {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.INPUT)
+    @ApiModelProperty(value = "id")
+    private java.lang.Long id;
+    /**
+     * 账户ID
+     */
+    @Excel(name = "账户ID", width = 15)
+    @ApiModelProperty(value = "账户ID")
+    private java.lang.Long accountId;
+    /**
+     * placementType
+     */
+    @Excel(name = "placementType", width = 15)
+    @ApiModelProperty(value = "placementType")
+    private java.lang.String placementType;
+    /**
+     * 日期
+     */
+    @Excel(name = "日期", width = 15)
+    @ApiModelProperty(value = "日期")
+    private java.lang.String statDate;
+    /**
+     * 素材曝光数
+     */
+    @Excel(name = "素材曝光数", width = 15)
+    @ApiModelProperty(value = "素材曝光数")
+    private java.lang.Long aclick;
+    /**
+     * 行为数
+     */
+    @Excel(name = "行为数", width = 15)
+    @ApiModelProperty(value = "行为数")
+    private java.lang.Long bclick;
+    /**
+     * 封面点成本
+     */
+    @Excel(name = "封面点成本", width = 15)
+    @ApiModelProperty(value = "封面点成本")
+    private java.lang.Double photoClickCost;
+    /**
+     * 新增关注数
+     */
+    @Excel(name = "新增关注数", width = 15)
+    @ApiModelProperty(value = "新增关注数")
+    private java.lang.Long follow;
+    /**
+     * 取消关注数
+     */
+    @Excel(name = "取消关注数", width = 15)
+    @ApiModelProperty(value = "取消关注数")
+    private java.lang.Long cancelFollow;
+    /**
+     * 举报数
+     */
+    @Excel(name = "举报数", width = 15)
+    @ApiModelProperty(value = "举报数")
+    private java.lang.Long report;
+    /**
+     * 拉黑数
+     */
+    @Excel(name = "拉黑数", width = 15)
+    @ApiModelProperty(value = "拉黑数")
+    private java.lang.Long block;
+    /**
+     * 减少此类作品数
+     */
+    @Excel(name = "减少此类作品数", width = 15)
+    @ApiModelProperty(value = "减少此类作品数")
+    private java.lang.Long negative;
+    /**
+     * 应用下载数据-安卓下载开始数
+     */
+    @Excel(name = "应用下载数据-安卓下载开始数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-安卓下载开始数")
+    private java.lang.Long downloadStarted;
+    /**
+     * 应用下载数据-安卓下载完成数
+     */
+    @Excel(name = "应用下载数据-安卓下载完成数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-安卓下载完成数")
+    private java.lang.Long downloadCompleted;
+    /**
+     * 应用下载数据-激活数
+     */
+    @Excel(name = "应用下载数据-激活数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-激活数")
+    private java.lang.Long activation;
+    /**
+     * 提交按钮点击数
+     */
+    @Excel(name = "提交按钮点击数", width = 15)
+    @ApiModelProperty(value = "提交按钮点击数")
+    private java.lang.Long submit;
+    /**
+     * 封面点击数
+     */
+    @Excel(name = "封面点击数", width = 15)
+    @ApiModelProperty(value = "封面点击数")
+    private java.lang.Long photoClick;
+    /**
+     * 封面点击率
+     */
+    @Excel(name = "封面点击率", width = 15)
+    @ApiModelProperty(value = "封面点击率")
+    private java.lang.Double photoClickRatio;
+    /**
+     * 花费
+     */
+    @Excel(name = "花费", width = 15)
+    @ApiModelProperty(value = "花费")
+    private java.lang.Double charge;
+    /**
+     * 行为率
+     */
+    @Excel(name = "行为率", width = 15)
+    @ApiModelProperty(value = "行为率")
+    private java.lang.Double actionRatio;
+    /**
+     * 平均千次曝光花费(元)
+     */
+    @Excel(name = "平均千次曝光花费(元)", width = 15)
+    @ApiModelProperty(value = "平均千次曝光花费(元)")
+    private java.math.BigDecimal impression_1kCost;
+    /**
+     * 平均行为单价(元)
+     */
+    @Excel(name = "平均行为单价(元)", width = 15)
+    @ApiModelProperty(value = "平均行为单价(元)")
+    private java.math.BigDecimal actionCost;
+    /**
+     * 应用下载数据-首日付费次数
+     */
+    @Excel(name = "应用下载数据-首日付费次数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-首日付费次数")
+    private java.lang.Long eventPayFirstDay;
+    /**
+     * 应用下载数据-首日付费金额
+     */
+    @Excel(name = "应用下载数据-首日付费金额", width = 15)
+    @ApiModelProperty(value = "应用下载数据-首日付费金额")
+    private java.math.BigDecimal eventPayPurchaseAmountFirstDay;
+    /**
+     * 应用下载数据-首日ROI
+     */
+    @Excel(name = "应用下载数据-首日ROI", width = 15)
+    @ApiModelProperty(value = "应用下载数据-首日ROI")
+    private java.lang.Double eventPayFirstDayRoi;
+    /**
+     * 应用下载数据-付费次数
+     */
+    @Excel(name = "应用下载数据-付费次数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-付费次数")
+    private java.lang.Long eventPay;
+    /**
+     * 应用下载数据-付费金额
+     */
+    @Excel(name = "应用下载数据-付费金额", width = 15)
+    @ApiModelProperty(value = "应用下载数据-付费金额")
+    private java.math.BigDecimal eventPayPurchaseAmount;
+    /**
+     * 应用下载数据-ROI
+     */
+    @Excel(name = "应用下载数据-ROI", width = 15)
+    @ApiModelProperty(value = "应用下载数据-ROI")
+    private java.lang.Double eventPayRoi;
+    /**
+     * 应用下载数据-注册数
+     */
+    @Excel(name = "应用下载数据-注册数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-注册数")
+    private java.lang.Long eventRegister;
+    /**
+     * 应用下载数据-注册成本
+     */
+    @Excel(name = "应用下载数据-注册成本", width = 15)
+    @ApiModelProperty(value = "应用下载数据-注册成本")
+    private java.math.BigDecimal eventRegisterCost;
+    /**
+     * 应用下载数据-注册率
+     */
+    @Excel(name = "应用下载数据-注册率", width = 15)
+    @ApiModelProperty(value = "应用下载数据-注册率")
+    private java.lang.Double eventRegisterRatio;
+    /**
+     * 应用下载数据-完件数
+     */
+    @Excel(name = "应用下载数据-完件数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-完件数")
+    private java.lang.Long eventJinJianApp;
+    /**
+     * 应用下载数据-完件成本
+     */
+    @Excel(name = "应用下载数据-完件成本", width = 15)
+    @ApiModelProperty(value = "应用下载数据-完件成本")
+    private java.math.BigDecimal eventJinJianAppCost;
+    /**
+     * 应用下载数据-授信数
+     */
+    @Excel(name = "应用下载数据-授信数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-授信数")
+    private java.lang.Long eventCreditGrantApp;
+    /**
+     * 应用下载数据-授信成本
+     */
+    @Excel(name = "应用下载数据-授信成本", width = 15)
+    @ApiModelProperty(value = "应用下载数据-授信成本")
+    private java.math.BigDecimal eventCreditGrantAppCost;
+    /**
+     * 应用下载数据-付款成功数
+     */
+    @Excel(name = "应用下载数据-付款成功数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-付款成功数")
+    private java.lang.Long eventOrderPaid;
+    /**
+     * 应用下载数据-付款成功金额
+     */
+    @Excel(name = "应用下载数据-付款成功金额", width = 15)
+    @ApiModelProperty(value = "应用下载数据-付款成功金额")
+    private java.math.BigDecimal eventOrderPaidPurchaseAmount;
+    /**
+     * 落地页数据-落地页完件数
+     */
+    @Excel(name = "落地页数据-落地页完件数", width = 15)
+    @ApiModelProperty(value = "落地页数据-落地页完件数")
+    private java.lang.Long eventJinJianLandingPage;
+    /**
+     * 落地页数据-落地页完件成本
+     */
+    @Excel(name = "落地页数据-落地页完件成本", width = 15)
+    @ApiModelProperty(value = "落地页数据-落地页完件成本")
+    private java.math.BigDecimal eventJinJianLandingPageCost;
+    /**
+     * 落地页数据-落地页授信数
+     */
+    @Excel(name = "落地页数据-落地页授信数", width = 15)
+    @ApiModelProperty(value = "落地页数据-落地页授信数")
+    private java.lang.Long eventCreditGrantLandingPage;
+    /**
+     * 落地页数据-落地页授信成本
+     */
+    @Excel(name = "落地页数据-落地页授信成本", width = 15)
+    @ApiModelProperty(value = "落地页数据-落地页授信成本")
+    private java.math.BigDecimal eventCreditGrantLandingPageCost;
+    /**
+     * 落地页数据-落地页授信率
+     */
+    @Excel(name = "落地页数据-落地页授信率", width = 15)
+    @ApiModelProperty(value = "落地页数据-落地页授信率")
+    private java.lang.Double eventCreditGrantLandingRatio;
+    /**
+     * 应用下载数据-次留成本(仅支持分日查询)
+     */
+    @Excel(name = "应用下载数据-次留成本(仅支持分日查询)", width = 15)
+    @ApiModelProperty(value = "应用下载数据-次留成本(仅支持分日查询)")
+    private java.math.BigDecimal eventNextDayStayCost;
+    /**
+     * 应用下载数据-次留率(仅支持分日查询)
+     */
+    @Excel(name = "应用下载数据-次留率(仅支持分日查询)", width = 15)
+    @ApiModelProperty(value = "应用下载数据-次留率(仅支持分日查询)")
+    private java.math.BigDecimal eventNextDayStayRatio;
+    /**
+     * 落地页数据-表单提交点击率
+     */
+    @Excel(name = "落地页数据-表单提交点击率", width = 15)
+    @ApiModelProperty(value = "落地页数据-表单提交点击率")
+    private java.lang.Double formActionRatio;
+    /**
+     * 应用下载数据-单次付款成本
+     */
+    @Excel(name = "应用下载数据-单次付款成本", width = 15)
+    @ApiModelProperty(value = "应用下载数据-单次付款成本")
+    private java.math.BigDecimal eventOrderPaidCost;
+    /**
+     * 应用下载数据-次留数(仅支持分日查询)
+     */
+    @Excel(name = "应用下载数据-次留数(仅支持分日查询)", width = 15)
+    @ApiModelProperty(value = "应用下载数据-次留数(仅支持分日查询)")
+    private java.lang.Long eventNextDayStay;
+    /**
+     * 落地页数据-表单提交单价
+     */
+    @Excel(name = "落地页数据-表单提交单价", width = 15)
+    @ApiModelProperty(value = "落地页数据-表单提交单价")
+    private java.math.BigDecimal formCost;
+    /**
+     * 落地页数据-表单提交数
+     */
+    @Excel(name = "落地页数据-表单提交数", width = 15)
+    @ApiModelProperty(value = "落地页数据-表单提交数")
+    private java.lang.Long formCount;
+    /**
+     * 3s播放率
+     */
+    @Excel(name = "3s播放率", width = 15)
+    @ApiModelProperty(value = "3s播放率")
+    private java.lang.Double play_3sRatio;
+    /**
+     * 数据小时
+     */
+    @Excel(name = "数据小时", width = 15)
+    @ApiModelProperty(value = "数据小时")
+    private java.lang.Long statHour;
+    /**
+     * click1kCost
+     */
+    @Excel(name = "click1kCost", width = 15)
+    @ApiModelProperty(value = "click1kCost")
+    private java.lang.String click_1kCost;
+    /**
+     * 落地页数据-有效线索数
+     */
+    @Excel(name = "落地页数据-有效线索数", width = 15)
+    @ApiModelProperty(value = "落地页数据-有效线索数")
+    private java.lang.Long eventValidClues;
+    /**
+     * 落地页数据-有效线索成本
+     */
+    @Excel(name = "落地页数据-有效线索成本", width = 15)
+    @ApiModelProperty(value = "落地页数据-有效线索成本")
+    private java.math.BigDecimal eventValidCluesCost;
+    /**
+     * 商品成交数
+     */
+    @Excel(name = "商品成交数", width = 15)
+    @ApiModelProperty(value = "商品成交数")
+    private java.lang.Long adProductCnt;
+    /**
+     * 商品访问数
+     */
+    @Excel(name = "商品访问数", width = 15)
+    @ApiModelProperty(value = "商品访问数")
+    private java.lang.Long eventGoodsView;
+    /**
+     * 涨粉量
+     */
+    @Excel(name = "涨粉量", width = 15)
+    @ApiModelProperty(value = "涨粉量")
+    private java.lang.Long merchantRecoFans;
+    /**
+     * 涨粉量
+     */
+    @Excel(name = "涨粉量", width = 15)
+    @ApiModelProperty(value = "涨粉量")
+    private java.lang.Long eventOrderAmountRoi;
+    /**
+     * 新增付费人数
+     */
+    @Excel(name = "新增付费人数", width = 15)
+    @ApiModelProperty(value = "新增付费人数")
+    private java.lang.Long eventNewUserPay;
+    /**
+     * 新增付费人数成本:当日消耗 / 当日新增
+     */
+    @Excel(name = "新增付费人数成本:当日消耗 / 当日新增", width = 15)
+    @ApiModelProperty(value = "新增付费人数成本:当日消耗 / 当日新增")
+    private java.math.BigDecimal eventNewUserPayCost;
+    /**
+     * 新增付费人数率:当日新增付费人数 / 当日行为数
+     */
+    @Excel(name = "新增付费人数率:当日新增付费人数 / 当日行为数", width = 15)
+    @ApiModelProperty(value = "新增付费人数率:当日新增付费人数 / 当日行为数")
+    private java.math.BigDecimal eventNewUserPayRatio;
+    /**
+     * 按钮点击数
+     */
+    @Excel(name = "按钮点击数", width = 15)
+    @ApiModelProperty(value = "按钮点击数")
+    private java.lang.Long eventButtonClick;
+    /**
+     * 按钮点击成本
+     */
+    @Excel(name = "按钮点击成本", width = 15)
+    @ApiModelProperty(value = "按钮点击成本")
+    private java.math.BigDecimal eventButtonClickCost;
+    /**
+     * 按钮点击成率
+     */
+    @Excel(name = "按钮点击成率", width = 15)
+    @ApiModelProperty(value = "按钮点击成率")
+    private java.math.BigDecimal eventButtonClickRatio;
+    /**
+     * 5s播放率
+     */
+    @Excel(name = "5s播放率", width = 15)
+    @ApiModelProperty(value = "5s播放率")
+    private java.math.BigDecimal play_5sRatio;
+    /**
+     * 完播率
+     */
+    @Excel(name = "完播率", width = 15)
+    @ApiModelProperty(value = "完播率")
+    private java.math.BigDecimal playEndRatio;
+    /**
+     * 订单支付率
+     */
+    @Excel(name = "订单支付率", width = 15)
+    @ApiModelProperty(value = "订单支付率")
+    private java.math.BigDecimal eventOrderPaidRoi;
+    /**
+     * 新增完件人数
+     */
+    @Excel(name = "新增完件人数", width = 15)
+    @ApiModelProperty(value = "新增完件人数")
+    private java.lang.Long eventNewUserJinjianApp;
+    /**
+     * 新增完件人数成本
+     */
+    @Excel(name = "新增完件人数成本", width = 15)
+    @ApiModelProperty(value = "新增完件人数成本")
+    private java.math.BigDecimal eventNewUserJinjianAppCost;
+    /**
+     * 新增完件人数率
+     */
+    @Excel(name = "新增完件人数率", width = 15)
+    @ApiModelProperty(value = "新增完件人数率")
+    private java.math.BigDecimal eventNewUserJinjianAppRoi;
+    /**
+     * 新增授信人数
+     */
+    @Excel(name = "新增授信人数", width = 15)
+    @ApiModelProperty(value = "新增授信人数")
+    private java.lang.Long eventNewUserCreditGrantApp;
+    /**
+     * 新增授信人数成本
+     */
+    @Excel(name = "新增授信人数成本", width = 15)
+    @ApiModelProperty(value = "新增授信人数成本")
+    private java.math.BigDecimal eventNewUserCreditGrantAppCost;
+    /**
+     * 新增授信人数率
+     */
+    @Excel(name = "新增授信人数率", width = 15)
+    @ApiModelProperty(value = "新增授信人数率")
+    private java.math.BigDecimal eventNewUserCreditGrantAppRoi;
+    /**
+     * 落地页新增完件人数
+     */
+    @Excel(name = "落地页新增完件人数", width = 15)
+    @ApiModelProperty(value = "落地页新增完件人数")
+    private java.lang.Long eventNewUserJinjianPage;
+    /**
+     * 落地页新增完件人数成本
+     */
+    @Excel(name = "落地页新增完件人数成本", width = 15)
+    @ApiModelProperty(value = "落地页新增完件人数成本")
+    private java.math.BigDecimal eventNewUserJinjianPageCost;
+    /**
+     * 落地页新增完件人数率
+     */
+    @Excel(name = "落地页新增完件人数率", width = 15)
+    @ApiModelProperty(value = "落地页新增完件人数率")
+    private java.math.BigDecimal eventNewUserJinjianPageRoi;
+    /**
+     * 落地页新增授信人数
+     */
+    @Excel(name = "落地页新增授信人数", width = 15)
+    @ApiModelProperty(value = "落地页新增授信人数")
+    private java.lang.Long eventNewUserCreditGrantPage;
+    /**
+     * 落地页新增授信人数成本
+     */
+    @Excel(name = "落地页新增授信人数成本", width = 15)
+    @ApiModelProperty(value = "落地页新增授信人数成本")
+    private java.math.BigDecimal eventNewUserCreditGrantPageCost;
+    /**
+     * 落地页新增授信人数率
+     */
+    @Excel(name = "落地页新增授信人数率", width = 15)
+    @ApiModelProperty(value = "落地页新增授信人数率")
+    private java.math.BigDecimal eventNewUserCreditGrantPageRoi;
+    /**
+     * eventAppointForm
+     */
+    @Excel(name = "eventAppointForm", width = 15)
+    @ApiModelProperty(value = "eventAppointForm")
+    private java.lang.Long eventAppointForm;
+    /**
+     * eventAppointFormCost
+     */
+    @Excel(name = "eventAppointFormCost", width = 15)
+    @ApiModelProperty(value = "eventAppointFormCost")
+    private java.math.BigDecimal eventAppointFormCost;
+    /**
+     * eventAppointFormRatio
+     */
+    @Excel(name = "eventAppointFormRatio", width = 15)
+    @ApiModelProperty(value = "eventAppointFormRatio")
+    private java.math.BigDecimal eventAppointFormRatio;
+    /**
+     * eventAppointJumpClick
+     */
+    @Excel(name = "eventAppointJumpClick", width = 15)
+    @ApiModelProperty(value = "eventAppointJumpClick")
+    private java.lang.Long eventAppointJumpClick;
+    /**
+     * eventAppointJumpClickCost
+     */
+    @Excel(name = "eventAppointJumpClickCost", width = 15)
+    @ApiModelProperty(value = "eventAppointJumpClickCost")
+    private java.math.BigDecimal eventAppointJumpClickCost;
+    /**
+     * eventAppointJumpClickRatio
+     */
+    @Excel(name = "eventAppointJumpClickRatio", width = 15)
+    @ApiModelProperty(value = "eventAppointJumpClickRatio")
+    private java.math.BigDecimal eventAppointJumpClickRatio;
+    /**
+     * unionEventPayPurchaseAmount7d
+     */
+    @Excel(name = "unionEventPayPurchaseAmount_7d", width = 15)
+    @ApiModelProperty(value = "unionEventPayPurchaseAmount_7d")
+    private java.lang.String unionEventPayPurchaseAmount_7d;
+    /**
+     * 省份
+     */
+    @Excel(name = "省份", width = 15)
+    @ApiModelProperty(value = "省份")
+    private java.lang.String province;
+    /**
+     * eventAppInvoked
+     */
+    @Excel(name = "eventAppInvoked", width = 15)
+    @ApiModelProperty(value = "eventAppInvoked")
+    private java.lang.String eventAppInvoked;
+    /**
+     * unionEventPayPurchaseAmount7dRoi
+     */
+    @Excel(name = "unionEventPayPurchaseAmount_7dRoi", width = 15)
+    @ApiModelProperty(value = "unionEventPayPurchaseAmount_7dRoi")
+    private java.lang.String unionEventPayPurchaseAmount_7dRoi;
+    /**
+     * eventAddShoppingCartCost
+     */
+    @Excel(name = "eventAddShoppingCartCost", width = 15)
+    @ApiModelProperty(value = "eventAddShoppingCartCost")
+    private java.lang.String eventAddShoppingCartCost;
+    /**
+     * 性别
+     */
+    @Excel(name = "性别", width = 15)
+    @ApiModelProperty(value = "性别")
+    private java.lang.String gender;
+    /**
+     * 城市
+     */
+    @Excel(name = "城市", width = 15)
+    @ApiModelProperty(value = "城市")
+    private java.lang.String city;
+    /**
+     * eventAdWatchTimesRatio
+     */
+    @Excel(name = "eventAdWatchTimesRatio", width = 15)
+    @ApiModelProperty(value = "eventAdWatchTimesRatio")
+    private java.lang.String eventAdWatchTimesRatio;
+    /**
+     * 分享数
+     */
+    @Excel(name = "分享数", width = 15)
+    @ApiModelProperty(value = "分享数")
+    private java.lang.String shares;
+    /**
+     * 商业兴趣
+     */
+    @Excel(name = "商业兴趣", width = 15)
+    @ApiModelProperty(value = "商业兴趣")
+    private java.lang.String businessInterestTags;
+    /**
+     * eventWatchAppAd
+     */
+    @Excel(name = "eventWatchAppAd", width = 15)
+    @ApiModelProperty(value = "eventWatchAppAd")
+    private java.lang.String eventWatchAppAd;
+    /**
+     * eventMultiConversionCost
+     */
+    @Excel(name = "eventMultiConversionCost", width = 15)
+    @ApiModelProperty(value = "eventMultiConversionCost")
+    private java.lang.String eventMultiConversionCost;
+    /**
+     * 涨粉成本
+     */
+    @Excel(name = "涨粉成本", width = 15)
+    @ApiModelProperty(value = "涨粉成本")
+    private java.math.BigDecimal merchantRecoFansCost;
+    /**
+     * 广告投放场景
+     */
+    @Excel(name = "广告投放场景", width = 15)
+    @ApiModelProperty(value = "广告投放场景")
+    private java.lang.String adScene;
+    /**
+     * eventAdWatchTimesCost
+     */
+    @Excel(name = "eventAdWatchTimesCost", width = 15)
+    @ApiModelProperty(value = "eventAdWatchTimesCost")
+    private java.lang.String eventAdWatchTimesCost;
+    /**
+     * eventAddShoppingCart
+     */
+    @Excel(name = "eventAddShoppingCart", width = 15)
+    @ApiModelProperty(value = "eventAddShoppingCart")
+    private java.lang.String eventAddShoppingCart;
+    /**
+     * 年龄
+     */
+    @Excel(name = "年龄", width = 15)
+    @ApiModelProperty(value = "年龄")
+    private java.lang.String ageSegment;
+    /**
+     * 点赞数
+     */
+    @Excel(name = "点赞数", width = 15)
+    @ApiModelProperty(value = "点赞数")
+    private java.lang.Long photoLike;
+    /**
+     * 微信复制数
+     */
+    @Excel(name = "微信复制数", width = 15)
+    @ApiModelProperty(value = "微信复制数")
+    private java.lang.Long eventAddWechat;
+    /**
+     * 微信复制成本
+     */
+    @Excel(name = "微信复制成本", width = 15)
+    @ApiModelProperty(value = "微信复制成本")
+    private java.math.BigDecimal eventAddWechatCost;
+    /**
+     * 微信复制率
+     */
+    @Excel(name = "微信复制率", width = 15)
+    @ApiModelProperty(value = "微信复制率")
+    private java.math.BigDecimal eventAddWechatRatio;
+    /**
+     * eventAppInvokedCost
+     */
+    @Excel(name = "eventAppInvokedCost", width = 15)
+    @ApiModelProperty(value = "eventAppInvokedCost")
+    private java.math.BigDecimal eventAppInvokedCost;
+    /**
+     * eventMultiConversion
+     */
+    @Excel(name = "eventMultiConversion", width = 15)
+    @ApiModelProperty(value = "eventMultiConversion")
+    private java.lang.String eventMultiConversion;
+    /**
+     * eventDspGiftForm
+     */
+    @Excel(name = "eventDspGiftForm", width = 15)
+    @ApiModelProperty(value = "eventDspGiftForm")
+    private java.lang.String eventDspGiftForm;
+    /**
+     * eventAppInvokedRatio
+     */
+    @Excel(name = "eventAppInvokedRatio", width = 15)
+    @ApiModelProperty(value = "eventAppInvokedRatio")
+    private java.lang.String eventAppInvokedRatio;
+    /**
+     * 封面曝光数
+     */
+    @Excel(name = "封面曝光数", width = 15)
+    @ApiModelProperty(value = "封面曝光数")
+    private java.lang.Long photoShow;
+    /**
+     * eventMultiConversionRatio
+     */
+    @Excel(name = "eventMultiConversionRatio", width = 15)
+    @ApiModelProperty(value = "eventMultiConversionRatio")
+    private java.lang.String eventMultiConversionRatio;
+    /**
+     * 系统
+     */
+    @Excel(name = "系统", width = 15)
+    @ApiModelProperty(value = "系统")
+    private java.lang.String client;
+    /**
+     * 商品访问成本
+     */
+    @Excel(name = "商品访问成本", width = 15)
+    @ApiModelProperty(value = "商品访问成本")
+    private java.math.BigDecimal eventGoodsViewCost;
+    /**
+     * 应用下载数据-授信率
+     */
+    @Excel(name = "应用下载数据-授信率", width = 15)
+    @ApiModelProperty(value = "应用下载数据-授信率")
+    private java.math.BigDecimal eventCreditGrantAppRatio;
+    /**
+     * eventAdWatchTimes
+     */
+    @Excel(name = "eventAdWatchTimes", width = 15)
+    @ApiModelProperty(value = "eventAdWatchTimes")
+    private java.lang.String eventAdWatchTimes;
+    /**
+     * 评论数
+     */
+    @Excel(name = "评论数", width = 15)
+    @ApiModelProperty(value = "评论数")
+    private java.lang.Long comments;
+    /**
+     * 创建时间
+     */
+    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private java.util.Date createTime;
+    /**
+     * 修改时间
+     */
+    @Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "修改时间")
+    private java.util.Date updateTime;
+}

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

@@ -0,0 +1,22 @@
+package cn.com.ctop.kuaishou.modules.report.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 年龄人群分析报表
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-12-03
+ */
+@Data
+@TableName("ctop_kuaishou_audience_report_daily_age")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_audience_report_daily_age对象", description = "年龄人群分析报表")
+public class KuaishouAudienceReportDailyAge extends KuaishouAudienceReportDaily {
+}

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

@@ -0,0 +1,30 @@
+package cn.com.ctop.kuaishou.modules.report.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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 org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 商业兴趣人群分析报表
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-12-03
+ */
+@Data
+@TableName("ctop_kuaishou_audience_report_daily_business")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_audience_report_daily_business对象", description = "商业兴趣人群分析报表")
+public class KuaishouAudienceReportDailyBussiness extends KuaishouAudienceReportDaily {
+}

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

@@ -0,0 +1,30 @@
+package cn.com.ctop.kuaishou.modules.report.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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 org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 城市人群分析报表
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-12-03
+ */
+@Data
+@TableName("ctop_kuaishou_audience_report_daily_city")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_audience_report_daily_city对象", description = "城市人群分析报表")
+public class KuaishouAudienceReportDailyCity  extends KuaishouAudienceReportDaily {
+}

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

@@ -0,0 +1,31 @@
+package cn.com.ctop.kuaishou.modules.report.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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 org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 系统人群分析报表
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-12-03
+ */
+@Data
+@TableName("ctop_kuaishou_audience_report_daily_client")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_audience_report_daily_client对象", description = "系统人群分析报表")
+public class KuaishouAudienceReportDailyClient  extends KuaishouAudienceReportDaily {
+}
+

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

@@ -0,0 +1,30 @@
+package cn.com.ctop.kuaishou.modules.report.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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 org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 性别分析报表
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-12-03
+ */
+@Data
+@TableName("ctop_kuaishou_audience_report_daily_gender")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_audience_report_daily_gender对象", description = "人群分析报表")
+public class KuaishouAudienceReportDailyGender  extends KuaishouAudienceReportDaily {
+}

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

@@ -0,0 +1,749 @@
+package cn.com.ctop.kuaishou.modules.report.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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 org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 省级地域人群分析报表
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-12-03
+ */
+@Data
+@TableName("ctop_kuaishou_audience_report_daily_province")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_audience_report_daily_province对象", description = "人群分析报表")
+public class KuaishouAudienceReportDailyProvince  extends KuaishouAudienceReportDaily{
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.INPUT)
+    @ApiModelProperty(value = "id")
+    private Long id;
+    /**
+     * 账户ID
+     */
+    @Excel(name = "账户ID", width = 15)
+    @ApiModelProperty(value = "账户ID")
+    private Long accountId;
+    /**
+     * placementType
+     */
+    @Excel(name = "placementType", width = 15)
+    @ApiModelProperty(value = "placementType")
+    private String placementType;
+    /**
+     * 日期
+     */
+    @Excel(name = "日期", width = 15)
+    @ApiModelProperty(value = "日期")
+    private String statDate;
+    /**
+     * 素材曝光数
+     */
+    @Excel(name = "素材曝光数", width = 15)
+    @ApiModelProperty(value = "素材曝光数")
+    private Long aclick;
+    /**
+     * 行为数
+     */
+    @Excel(name = "行为数", width = 15)
+    @ApiModelProperty(value = "行为数")
+    private Long bclick;
+    /**
+     * 封面点成本
+     */
+    @Excel(name = "封面点成本", width = 15)
+    @ApiModelProperty(value = "封面点成本")
+    private Double photoClickCost;
+    /**
+     * 新增关注数
+     */
+    @Excel(name = "新增关注数", width = 15)
+    @ApiModelProperty(value = "新增关注数")
+    private Long follow;
+    /**
+     * 取消关注数
+     */
+    @Excel(name = "取消关注数", width = 15)
+    @ApiModelProperty(value = "取消关注数")
+    private Long cancelFollow;
+    /**
+     * 举报数
+     */
+    @Excel(name = "举报数", width = 15)
+    @ApiModelProperty(value = "举报数")
+    private Long report;
+    /**
+     * 拉黑数
+     */
+    @Excel(name = "拉黑数", width = 15)
+    @ApiModelProperty(value = "拉黑数")
+    private Long block;
+    /**
+     * 减少此类作品数
+     */
+    @Excel(name = "减少此类作品数", width = 15)
+    @ApiModelProperty(value = "减少此类作品数")
+    private Long negative;
+    /**
+     * 应用下载数据-安卓下载开始数
+     */
+    @Excel(name = "应用下载数据-安卓下载开始数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-安卓下载开始数")
+    private Long downloadStarted;
+    /**
+     * 应用下载数据-安卓下载完成数
+     */
+    @Excel(name = "应用下载数据-安卓下载完成数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-安卓下载完成数")
+    private Long downloadCompleted;
+    /**
+     * 应用下载数据-激活数
+     */
+    @Excel(name = "应用下载数据-激活数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-激活数")
+    private Long activation;
+    /**
+     * 提交按钮点击数
+     */
+    @Excel(name = "提交按钮点击数", width = 15)
+    @ApiModelProperty(value = "提交按钮点击数")
+    private Long submit;
+    /**
+     * 封面点击数
+     */
+    @Excel(name = "封面点击数", width = 15)
+    @ApiModelProperty(value = "封面点击数")
+    private Long photoClick;
+    /**
+     * 封面点击率
+     */
+    @Excel(name = "封面点击率", width = 15)
+    @ApiModelProperty(value = "封面点击率")
+    private Double photoClickRatio;
+    /**
+     * 花费
+     */
+    @Excel(name = "花费", width = 15)
+    @ApiModelProperty(value = "花费")
+    private Double charge;
+    /**
+     * 行为率
+     */
+    @Excel(name = "行为率", width = 15)
+    @ApiModelProperty(value = "行为率")
+    private Double actionRatio;
+    /**
+     * 平均千次曝光花费(元)
+     */
+    @Excel(name = "平均千次曝光花费(元)", width = 15)
+    @ApiModelProperty(value = "平均千次曝光花费(元)")
+    private java.math.BigDecimal impression_1kCost;
+    /**
+     * 平均行为单价(元)
+     */
+    @Excel(name = "平均行为单价(元)", width = 15)
+    @ApiModelProperty(value = "平均行为单价(元)")
+    private java.math.BigDecimal actionCost;
+    /**
+     * 应用下载数据-首日付费次数
+     */
+    @Excel(name = "应用下载数据-首日付费次数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-首日付费次数")
+    private Long eventPayFirstDay;
+    /**
+     * 应用下载数据-首日付费金额
+     */
+    @Excel(name = "应用下载数据-首日付费金额", width = 15)
+    @ApiModelProperty(value = "应用下载数据-首日付费金额")
+    private java.math.BigDecimal eventPayPurchaseAmountFirstDay;
+    /**
+     * 应用下载数据-首日ROI
+     */
+    @Excel(name = "应用下载数据-首日ROI", width = 15)
+    @ApiModelProperty(value = "应用下载数据-首日ROI")
+    private Double eventPayFirstDayRoi;
+    /**
+     * 应用下载数据-付费次数
+     */
+    @Excel(name = "应用下载数据-付费次数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-付费次数")
+    private Long eventPay;
+    /**
+     * 应用下载数据-付费金额
+     */
+    @Excel(name = "应用下载数据-付费金额", width = 15)
+    @ApiModelProperty(value = "应用下载数据-付费金额")
+    private java.math.BigDecimal eventPayPurchaseAmount;
+    /**
+     * 应用下载数据-ROI
+     */
+    @Excel(name = "应用下载数据-ROI", width = 15)
+    @ApiModelProperty(value = "应用下载数据-ROI")
+    private Double eventPayRoi;
+    /**
+     * 应用下载数据-注册数
+     */
+    @Excel(name = "应用下载数据-注册数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-注册数")
+    private Long eventRegister;
+    /**
+     * 应用下载数据-注册成本
+     */
+    @Excel(name = "应用下载数据-注册成本", width = 15)
+    @ApiModelProperty(value = "应用下载数据-注册成本")
+    private java.math.BigDecimal eventRegisterCost;
+    /**
+     * 应用下载数据-注册率
+     */
+    @Excel(name = "应用下载数据-注册率", width = 15)
+    @ApiModelProperty(value = "应用下载数据-注册率")
+    private Double eventRegisterRatio;
+    /**
+     * 应用下载数据-完件数
+     */
+    @Excel(name = "应用下载数据-完件数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-完件数")
+    private Long eventJinJianApp;
+    /**
+     * 应用下载数据-完件成本
+     */
+    @Excel(name = "应用下载数据-完件成本", width = 15)
+    @ApiModelProperty(value = "应用下载数据-完件成本")
+    private java.math.BigDecimal eventJinJianAppCost;
+    /**
+     * 应用下载数据-授信数
+     */
+    @Excel(name = "应用下载数据-授信数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-授信数")
+    private Long eventCreditGrantApp;
+    /**
+     * 应用下载数据-授信成本
+     */
+    @Excel(name = "应用下载数据-授信成本", width = 15)
+    @ApiModelProperty(value = "应用下载数据-授信成本")
+    private java.math.BigDecimal eventCreditGrantAppCost;
+    /**
+     * 应用下载数据-付款成功数
+     */
+    @Excel(name = "应用下载数据-付款成功数", width = 15)
+    @ApiModelProperty(value = "应用下载数据-付款成功数")
+    private Long eventOrderPaid;
+    /**
+     * 应用下载数据-付款成功金额
+     */
+    @Excel(name = "应用下载数据-付款成功金额", width = 15)
+    @ApiModelProperty(value = "应用下载数据-付款成功金额")
+    private java.math.BigDecimal eventOrderPaidPurchaseAmount;
+    /**
+     * 落地页数据-落地页完件数
+     */
+    @Excel(name = "落地页数据-落地页完件数", width = 15)
+    @ApiModelProperty(value = "落地页数据-落地页完件数")
+    private Long eventJinJianLandingPage;
+    /**
+     * 落地页数据-落地页完件成本
+     */
+    @Excel(name = "落地页数据-落地页完件成本", width = 15)
+    @ApiModelProperty(value = "落地页数据-落地页完件成本")
+    private java.math.BigDecimal eventJinJianLandingPageCost;
+    /**
+     * 落地页数据-落地页授信数
+     */
+    @Excel(name = "落地页数据-落地页授信数", width = 15)
+    @ApiModelProperty(value = "落地页数据-落地页授信数")
+    private Long eventCreditGrantLandingPage;
+    /**
+     * 落地页数据-落地页授信成本
+     */
+    @Excel(name = "落地页数据-落地页授信成本", width = 15)
+    @ApiModelProperty(value = "落地页数据-落地页授信成本")
+    private java.math.BigDecimal eventCreditGrantLandingPageCost;
+    /**
+     * 落地页数据-落地页授信率
+     */
+    @Excel(name = "落地页数据-落地页授信率", width = 15)
+    @ApiModelProperty(value = "落地页数据-落地页授信率")
+    private Double eventCreditGrantLandingRatio;
+    /**
+     * 应用下载数据-次留成本(仅支持分日查询)
+     */
+    @Excel(name = "应用下载数据-次留成本(仅支持分日查询)", width = 15)
+    @ApiModelProperty(value = "应用下载数据-次留成本(仅支持分日查询)")
+    private java.math.BigDecimal eventNextDayStayCost;
+    /**
+     * 应用下载数据-次留率(仅支持分日查询)
+     */
+    @Excel(name = "应用下载数据-次留率(仅支持分日查询)", width = 15)
+    @ApiModelProperty(value = "应用下载数据-次留率(仅支持分日查询)")
+    private java.math.BigDecimal eventNextDayStayRatio;
+    /**
+     * 落地页数据-表单提交点击率
+     */
+    @Excel(name = "落地页数据-表单提交点击率", width = 15)
+    @ApiModelProperty(value = "落地页数据-表单提交点击率")
+    private Double formActionRatio;
+    /**
+     * 应用下载数据-单次付款成本
+     */
+    @Excel(name = "应用下载数据-单次付款成本", width = 15)
+    @ApiModelProperty(value = "应用下载数据-单次付款成本")
+    private java.math.BigDecimal eventOrderPaidCost;
+    /**
+     * 应用下载数据-次留数(仅支持分日查询)
+     */
+    @Excel(name = "应用下载数据-次留数(仅支持分日查询)", width = 15)
+    @ApiModelProperty(value = "应用下载数据-次留数(仅支持分日查询)")
+    private Long eventNextDayStay;
+    /**
+     * 落地页数据-表单提交单价
+     */
+    @Excel(name = "落地页数据-表单提交单价", width = 15)
+    @ApiModelProperty(value = "落地页数据-表单提交单价")
+    private java.math.BigDecimal formCost;
+    /**
+     * 落地页数据-表单提交数
+     */
+    @Excel(name = "落地页数据-表单提交数", width = 15)
+    @ApiModelProperty(value = "落地页数据-表单提交数")
+    private Long formCount;
+    /**
+     * 3s播放率
+     */
+    @Excel(name = "3s播放率", width = 15)
+    @ApiModelProperty(value = "3s播放率")
+    private Double play_3sRatio;
+    /**
+     * 数据小时
+     */
+    @Excel(name = "数据小时", width = 15)
+    @ApiModelProperty(value = "数据小时")
+    private Long statHour;
+    /**
+     * click1kCost
+     */
+    @Excel(name = "click1kCost", width = 15)
+    @ApiModelProperty(value = "click1kCost")
+    private String click_1kCost;
+    /**
+     * 落地页数据-有效线索数
+     */
+    @Excel(name = "落地页数据-有效线索数", width = 15)
+    @ApiModelProperty(value = "落地页数据-有效线索数")
+    private Long eventValidClues;
+    /**
+     * 落地页数据-有效线索成本
+     */
+    @Excel(name = "落地页数据-有效线索成本", width = 15)
+    @ApiModelProperty(value = "落地页数据-有效线索成本")
+    private java.math.BigDecimal eventValidCluesCost;
+    /**
+     * 商品成交数
+     */
+    @Excel(name = "商品成交数", width = 15)
+    @ApiModelProperty(value = "商品成交数")
+    private Long adProductCnt;
+    /**
+     * 商品访问数
+     */
+    @Excel(name = "商品访问数", width = 15)
+    @ApiModelProperty(value = "商品访问数")
+    private Long eventGoodsView;
+    /**
+     * 涨粉量
+     */
+    @Excel(name = "涨粉量", width = 15)
+    @ApiModelProperty(value = "涨粉量")
+    private Long merchantRecoFans;
+    /**
+     * 涨粉量
+     */
+    @Excel(name = "涨粉量", width = 15)
+    @ApiModelProperty(value = "涨粉量")
+    private Long eventOrderAmountRoi;
+    /**
+     * 新增付费人数
+     */
+    @Excel(name = "新增付费人数", width = 15)
+    @ApiModelProperty(value = "新增付费人数")
+    private Long eventNewUserPay;
+    /**
+     * 新增付费人数成本:当日消耗 / 当日新增
+     */
+    @Excel(name = "新增付费人数成本:当日消耗 / 当日新增", width = 15)
+    @ApiModelProperty(value = "新增付费人数成本:当日消耗 / 当日新增")
+    private java.math.BigDecimal eventNewUserPayCost;
+    /**
+     * 新增付费人数率:当日新增付费人数 / 当日行为数
+     */
+    @Excel(name = "新增付费人数率:当日新增付费人数 / 当日行为数", width = 15)
+    @ApiModelProperty(value = "新增付费人数率:当日新增付费人数 / 当日行为数")
+    private java.math.BigDecimal eventNewUserPayRatio;
+    /**
+     * 按钮点击数
+     */
+    @Excel(name = "按钮点击数", width = 15)
+    @ApiModelProperty(value = "按钮点击数")
+    private Long eventButtonClick;
+    /**
+     * 按钮点击成本
+     */
+    @Excel(name = "按钮点击成本", width = 15)
+    @ApiModelProperty(value = "按钮点击成本")
+    private java.math.BigDecimal eventButtonClickCost;
+    /**
+     * 按钮点击成率
+     */
+    @Excel(name = "按钮点击成率", width = 15)
+    @ApiModelProperty(value = "按钮点击成率")
+    private java.math.BigDecimal eventButtonClickRatio;
+    /**
+     * 5s播放率
+     */
+    @Excel(name = "5s播放率", width = 15)
+    @ApiModelProperty(value = "5s播放率")
+    private java.math.BigDecimal play_5sRatio;
+    /**
+     * 完播率
+     */
+    @Excel(name = "完播率", width = 15)
+    @ApiModelProperty(value = "完播率")
+    private java.math.BigDecimal playEndRatio;
+    /**
+     * 订单支付率
+     */
+    @Excel(name = "订单支付率", width = 15)
+    @ApiModelProperty(value = "订单支付率")
+    private java.math.BigDecimal eventOrderPaidRoi;
+    /**
+     * 新增完件人数
+     */
+    @Excel(name = "新增完件人数", width = 15)
+    @ApiModelProperty(value = "新增完件人数")
+    private Long eventNewUserJinjianApp;
+    /**
+     * 新增完件人数成本
+     */
+    @Excel(name = "新增完件人数成本", width = 15)
+    @ApiModelProperty(value = "新增完件人数成本")
+    private java.math.BigDecimal eventNewUserJinjianAppCost;
+    /**
+     * 新增完件人数率
+     */
+    @Excel(name = "新增完件人数率", width = 15)
+    @ApiModelProperty(value = "新增完件人数率")
+    private java.math.BigDecimal eventNewUserJinjianAppRoi;
+    /**
+     * 新增授信人数
+     */
+    @Excel(name = "新增授信人数", width = 15)
+    @ApiModelProperty(value = "新增授信人数")
+    private Long eventNewUserCreditGrantApp;
+    /**
+     * 新增授信人数成本
+     */
+    @Excel(name = "新增授信人数成本", width = 15)
+    @ApiModelProperty(value = "新增授信人数成本")
+    private java.math.BigDecimal eventNewUserCreditGrantAppCost;
+    /**
+     * 新增授信人数率
+     */
+    @Excel(name = "新增授信人数率", width = 15)
+    @ApiModelProperty(value = "新增授信人数率")
+    private java.math.BigDecimal eventNewUserCreditGrantAppRoi;
+    /**
+     * 落地页新增完件人数
+     */
+    @Excel(name = "落地页新增完件人数", width = 15)
+    @ApiModelProperty(value = "落地页新增完件人数")
+    private Long eventNewUserJinjianPage;
+    /**
+     * 落地页新增完件人数成本
+     */
+    @Excel(name = "落地页新增完件人数成本", width = 15)
+    @ApiModelProperty(value = "落地页新增完件人数成本")
+    private java.math.BigDecimal eventNewUserJinjianPageCost;
+    /**
+     * 落地页新增完件人数率
+     */
+    @Excel(name = "落地页新增完件人数率", width = 15)
+    @ApiModelProperty(value = "落地页新增完件人数率")
+    private java.math.BigDecimal eventNewUserJinjianPageRoi;
+    /**
+     * 落地页新增授信人数
+     */
+    @Excel(name = "落地页新增授信人数", width = 15)
+    @ApiModelProperty(value = "落地页新增授信人数")
+    private Long eventNewUserCreditGrantPage;
+    /**
+     * 落地页新增授信人数成本
+     */
+    @Excel(name = "落地页新增授信人数成本", width = 15)
+    @ApiModelProperty(value = "落地页新增授信人数成本")
+    private java.math.BigDecimal eventNewUserCreditGrantPageCost;
+    /**
+     * 落地页新增授信人数率
+     */
+    @Excel(name = "落地页新增授信人数率", width = 15)
+    @ApiModelProperty(value = "落地页新增授信人数率")
+    private java.math.BigDecimal eventNewUserCreditGrantPageRoi;
+    /**
+     * eventAppointForm
+     */
+    @Excel(name = "eventAppointForm", width = 15)
+    @ApiModelProperty(value = "eventAppointForm")
+    private Long eventAppointForm;
+    /**
+     * eventAppointFormCost
+     */
+    @Excel(name = "eventAppointFormCost", width = 15)
+    @ApiModelProperty(value = "eventAppointFormCost")
+    private java.math.BigDecimal eventAppointFormCost;
+    /**
+     * eventAppointFormRatio
+     */
+    @Excel(name = "eventAppointFormRatio", width = 15)
+    @ApiModelProperty(value = "eventAppointFormRatio")
+    private java.math.BigDecimal eventAppointFormRatio;
+    /**
+     * eventAppointJumpClick
+     */
+    @Excel(name = "eventAppointJumpClick", width = 15)
+    @ApiModelProperty(value = "eventAppointJumpClick")
+    private Long eventAppointJumpClick;
+    /**
+     * eventAppointJumpClickCost
+     */
+    @Excel(name = "eventAppointJumpClickCost", width = 15)
+    @ApiModelProperty(value = "eventAppointJumpClickCost")
+    private java.math.BigDecimal eventAppointJumpClickCost;
+    /**
+     * eventAppointJumpClickRatio
+     */
+    @Excel(name = "eventAppointJumpClickRatio", width = 15)
+    @ApiModelProperty(value = "eventAppointJumpClickRatio")
+    private java.math.BigDecimal eventAppointJumpClickRatio;
+    /**
+     * unionEventPayPurchaseAmount7d
+     */
+    @Excel(name = "unionEventPayPurchaseAmount_7d", width = 15)
+    @ApiModelProperty(value = "unionEventPayPurchaseAmount_7d")
+    private String unionEventPayPurchaseAmount_7d;
+    /**
+     * 省份
+     */
+    @Excel(name = "省份", width = 15)
+    @ApiModelProperty(value = "省份")
+    private String province;
+    /**
+     * eventAppInvoked
+     */
+    @Excel(name = "eventAppInvoked", width = 15)
+    @ApiModelProperty(value = "eventAppInvoked")
+    private String eventAppInvoked;
+    /**
+     * unionEventPayPurchaseAmount7dRoi
+     */
+    @Excel(name = "unionEventPayPurchaseAmount_7dRoi", width = 15)
+    @ApiModelProperty(value = "unionEventPayPurchaseAmount_7dRoi")
+    private String unionEventPayPurchaseAmount_7dRoi;
+    /**
+     * eventAddShoppingCartCost
+     */
+    @Excel(name = "eventAddShoppingCartCost", width = 15)
+    @ApiModelProperty(value = "eventAddShoppingCartCost")
+    private String eventAddShoppingCartCost;
+    /**
+     * 性别
+     */
+    @Excel(name = "性别", width = 15)
+    @ApiModelProperty(value = "性别")
+    private String gender;
+    /**
+     * 城市
+     */
+    @Excel(name = "城市", width = 15)
+    @ApiModelProperty(value = "城市")
+    private String city;
+    /**
+     * eventAdWatchTimesRatio
+     */
+    @Excel(name = "eventAdWatchTimesRatio", width = 15)
+    @ApiModelProperty(value = "eventAdWatchTimesRatio")
+    private String eventAdWatchTimesRatio;
+    /**
+     * 分享数
+     */
+    @Excel(name = "分享数", width = 15)
+    @ApiModelProperty(value = "分享数")
+    private String shares;
+    /**
+     * 商业兴趣
+     */
+    @Excel(name = "商业兴趣", width = 15)
+    @ApiModelProperty(value = "商业兴趣")
+    private String businessInterestTags;
+    /**
+     * eventWatchAppAd
+     */
+    @Excel(name = "eventWatchAppAd", width = 15)
+    @ApiModelProperty(value = "eventWatchAppAd")
+    private String eventWatchAppAd;
+    /**
+     * eventMultiConversionCost
+     */
+    @Excel(name = "eventMultiConversionCost", width = 15)
+    @ApiModelProperty(value = "eventMultiConversionCost")
+    private String eventMultiConversionCost;
+    /**
+     * 涨粉成本
+     */
+    @Excel(name = "涨粉成本", width = 15)
+    @ApiModelProperty(value = "涨粉成本")
+    private java.math.BigDecimal merchantRecoFansCost;
+    /**
+     * 广告投放场景
+     */
+    @Excel(name = "广告投放场景", width = 15)
+    @ApiModelProperty(value = "广告投放场景")
+    private String adScene;
+    /**
+     * eventAdWatchTimesCost
+     */
+    @Excel(name = "eventAdWatchTimesCost", width = 15)
+    @ApiModelProperty(value = "eventAdWatchTimesCost")
+    private String eventAdWatchTimesCost;
+    /**
+     * eventAddShoppingCart
+     */
+    @Excel(name = "eventAddShoppingCart", width = 15)
+    @ApiModelProperty(value = "eventAddShoppingCart")
+    private String eventAddShoppingCart;
+    /**
+     * 年龄
+     */
+    @Excel(name = "年龄", width = 15)
+    @ApiModelProperty(value = "年龄")
+    private String ageSegment;
+    /**
+     * 点赞数
+     */
+    @Excel(name = "点赞数", width = 15)
+    @ApiModelProperty(value = "点赞数")
+    private Long photoLike;
+    /**
+     * 微信复制数
+     */
+    @Excel(name = "微信复制数", width = 15)
+    @ApiModelProperty(value = "微信复制数")
+    private Long eventAddWechat;
+    /**
+     * 微信复制成本
+     */
+    @Excel(name = "微信复制成本", width = 15)
+    @ApiModelProperty(value = "微信复制成本")
+    private java.math.BigDecimal eventAddWechatCost;
+    /**
+     * 微信复制率
+     */
+    @Excel(name = "微信复制率", width = 15)
+    @ApiModelProperty(value = "微信复制率")
+    private java.math.BigDecimal eventAddWechatRatio;
+    /**
+     * eventAppInvokedCost
+     */
+    @Excel(name = "eventAppInvokedCost", width = 15)
+    @ApiModelProperty(value = "eventAppInvokedCost")
+    private java.math.BigDecimal eventAppInvokedCost;
+    /**
+     * eventMultiConversion
+     */
+    @Excel(name = "eventMultiConversion", width = 15)
+    @ApiModelProperty(value = "eventMultiConversion")
+    private String eventMultiConversion;
+    /**
+     * eventDspGiftForm
+     */
+    @Excel(name = "eventDspGiftForm", width = 15)
+    @ApiModelProperty(value = "eventDspGiftForm")
+    private String eventDspGiftForm;
+    /**
+     * eventAppInvokedRatio
+     */
+    @Excel(name = "eventAppInvokedRatio", width = 15)
+    @ApiModelProperty(value = "eventAppInvokedRatio")
+    private String eventAppInvokedRatio;
+    /**
+     * 封面曝光数
+     */
+    @Excel(name = "封面曝光数", width = 15)
+    @ApiModelProperty(value = "封面曝光数")
+    private Long photoShow;
+    /**
+     * eventMultiConversionRatio
+     */
+    @Excel(name = "eventMultiConversionRatio", width = 15)
+    @ApiModelProperty(value = "eventMultiConversionRatio")
+    private String eventMultiConversionRatio;
+    /**
+     * 系统
+     */
+    @Excel(name = "系统", width = 15)
+    @ApiModelProperty(value = "系统")
+    private String client;
+    /**
+     * 商品访问成本
+     */
+    @Excel(name = "商品访问成本", width = 15)
+    @ApiModelProperty(value = "商品访问成本")
+    private java.math.BigDecimal eventGoodsViewCost;
+    /**
+     * 应用下载数据-授信率
+     */
+    @Excel(name = "应用下载数据-授信率", width = 15)
+    @ApiModelProperty(value = "应用下载数据-授信率")
+    private java.math.BigDecimal eventCreditGrantAppRatio;
+    /**
+     * eventAdWatchTimes
+     */
+    @Excel(name = "eventAdWatchTimes", width = 15)
+    @ApiModelProperty(value = "eventAdWatchTimes")
+    private String eventAdWatchTimes;
+    /**
+     * 评论数
+     */
+    @Excel(name = "评论数", width = 15)
+    @ApiModelProperty(value = "评论数")
+    private Long comments;
+    /**
+     * 创建时间
+     */
+    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+    /**
+     * 修改时间
+     */
+    @Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateTime;
+}

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

@@ -0,0 +1,15 @@
+package cn.com.ctop.kuaishou.modules.report.mapper;
+
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyAge;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 人群分析报表
+ *
+ * @author: jeecg-boot
+ * @date: 2020-12-03
+ * @cersion: V1.0
+ */
+public interface KuaishouAudienceReportDailyAgeMapper extends BaseMapper<KuaishouAudienceReportDailyAge> {
+
+}

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

@@ -0,0 +1,16 @@
+package cn.com.ctop.kuaishou.modules.report.mapper;
+
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyBussiness;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 人群分析报表
+ *
+ * @author: jeecg-boot
+ * @date: 2020-12-03
+ * @cersion: V1.0
+ */
+public interface KuaishouAudienceReportDailyBusinessMapper extends BaseMapper<KuaishouAudienceReportDailyBussiness> {
+
+}

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

@@ -0,0 +1,16 @@
+package cn.com.ctop.kuaishou.modules.report.mapper;
+
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyCity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 人群分析报表
+ *
+ * @author: jeecg-boot
+ * @date: 2020-12-03
+ * @cersion: V1.0
+ */
+public interface KuaishouAudienceReportDailyCityMapper extends BaseMapper<KuaishouAudienceReportDailyCity> {
+
+}

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

@@ -0,0 +1,16 @@
+package cn.com.ctop.kuaishou.modules.report.mapper;
+
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyClient;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 人群分析报表
+ *
+ * @author: jeecg-boot
+ * @date: 2020-12-03
+ * @cersion: V1.0
+ */
+public interface KuaishouAudienceReportDailyClientMapper extends BaseMapper<KuaishouAudienceReportDailyClient> {
+
+}

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

@@ -0,0 +1,16 @@
+package cn.com.ctop.kuaishou.modules.report.mapper;
+
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyGender;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 人群分析报表
+ *
+ * @author: jeecg-boot
+ * @date: 2020-12-03
+ * @cersion: V1.0
+ */
+public interface KuaishouAudienceReportDailyGenderMapper extends BaseMapper<KuaishouAudienceReportDailyGender> {
+
+}

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

@@ -0,0 +1,15 @@
+package cn.com.ctop.kuaishou.modules.report.mapper;
+
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 人群分析报表
+ *
+ * @author: jeecg-boot
+ * @date: 2020-12-03
+ * @cersion: V1.0
+ */
+public interface KuaishouAudienceReportDailyMapper extends BaseMapper<KuaishouAudienceReportDaily> {
+
+}

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

@@ -0,0 +1,15 @@
+package cn.com.ctop.kuaishou.modules.report.mapper;
+
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyProvince;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 人群分析报表
+ *
+ * @author: jeecg-boot
+ * @date: 2020-12-03
+ * @cersion: V1.0
+ */
+public interface KuaishouAudienceReportDailyProvinceMapper extends BaseMapper<KuaishouAudienceReportDailyProvince> {
+
+}

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

@@ -0,0 +1,5 @@
+<?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.KuaishouAudienceReportDailyMapper">
+
+</mapper>

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

@@ -0,0 +1,24 @@
+package cn.com.ctop.kuaishou.modules.report.service;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 人群分析报表
+ * @Author: jeecg-boot
+ * @Date: 2020-12-03
+ * @Version: V1.0
+ */
+public interface IKuaishouAudienceReportDailyService extends IService<KuaishouAudienceReportDaily> {
+    /**
+     * 人群分析报表
+     *
+     * @param
+     * @return java.lang.Long
+     * @throws
+     * @author ZHAOXA
+     */
+    void crowdAnalysisReport(CtopOauthToken token, String date, String type, Integer page, Integer pageSize);
+
+}

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

@@ -0,0 +1,155 @@
+package cn.com.ctop.kuaishou.modules.report.service.impl;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.service.ICtopOauthTokenService;
+import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.common.module.utils.HttpUtils;
+import cn.com.ctop.common.module.utils.KuaishouInterfaceConstant;
+import cn.com.ctop.common.module.utils.PropertiesUtils;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyAge;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyBussiness;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyCity;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyClient;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyGender;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyProvince;
+import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouAudienceReportDailyAgeMapper;
+import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouAudienceReportDailyBusinessMapper;
+import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouAudienceReportDailyCityMapper;
+import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouAudienceReportDailyClientMapper;
+import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouAudienceReportDailyGenderMapper;
+import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouAudienceReportDailyMapper;
+import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouAudienceReportDailyProvinceMapper;
+import cn.com.ctop.kuaishou.modules.report.service.IKuaishouAudienceReportDailyService;
+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.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 人群分析报表
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-12-03
+ */
+@Slf4j
+@Service
+public class KuaishouAudienceReportDailyServiceImpl extends ServiceImpl<KuaishouAudienceReportDailyMapper, KuaishouAudienceReportDaily> implements IKuaishouAudienceReportDailyService {
+
+    @Autowired
+    private KuaishouAudienceReportDailyProvinceMapper provinceMapper;
+    @Autowired
+    private KuaishouAudienceReportDailyAgeMapper ageMapper;
+    @Autowired
+    private KuaishouAudienceReportDailyCityMapper cityMapper;
+    @Autowired
+    private KuaishouAudienceReportDailyClientMapper clientMapper;
+    @Autowired
+    private KuaishouAudienceReportDailyBusinessMapper bussinessMapper;
+    @Autowired
+    private KuaishouAudienceReportDailyGenderMapper genderMapper;
+    @Autowired
+    private ICtopOauthTokenService tokenService;
+    private String urlPath = PropertiesUtils.getConfig("kuaishou_api_url");
+
+    /**
+     * 人群分析报表
+     *
+     * @param type      province: 省级地域分布, city: 地级地域分布,gender: 性别分布,ageSegment: 年龄分布clientId: 系统分布 businessInterestTags: 商业兴趣分布
+     * @param accountId 广告主ID
+     * @param file      请求的文件,最大支持500MB
+     * @return
+     */
+    @Override
+    public void crowdAnalysisReport(CtopOauthToken token, String date, String type, Integer page, Integer pageSize) {
+        long start = System.currentTimeMillis();
+        try {
+            String url = urlPath + KuaishouInterfaceConstant.AUDIENCE_REPORT;
+            JSONArray reportDims = new JSONArray();
+            reportDims.add(type);
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", token.getAccessToken());
+            headers.put("Content-Type", "application/json");
+            JSONObject requestJson = new JSONObject();
+            requestJson.put("advertiser_id", token.getAccountId());
+            requestJson.put("start_date", date);
+            requestJson.put("end_date", date);
+            requestJson.put("report_dims", reportDims);
+            requestJson.put("page", page);
+            requestJson.put("page_size", pageSize);
+            String result = HttpUtils.kuaiShouhttpPostRequest(url, requestJson.toJSONString(), headers);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            if (!Check.isNull(resultJson)) {
+                Integer code = resultJson.getInteger("code");
+                if (code == 0) {
+                    JSONObject datas = resultJson.getJSONObject("data");
+                    JSONArray details = datas.getJSONArray("details");
+                    if (!Check.isNull(details)) {
+                        System.out.println(type + ",size:" + details.size());
+                        for (int i = 0; i < details.size(); i++) {
+                            JSONObject obj = details.getJSONObject(i);
+                            if ("province".equals(type)) {
+                                KuaishouAudienceReportDailyProvince entity = JSONObject.toJavaObject(obj, KuaishouAudienceReportDailyProvince.class);
+                                entity.setPhotoLike(obj.getLong("like"));
+                                entity.setComments(obj.getLong("comment"));
+                                entity.setPhotoShow(obj.getLong("show"));
+                                entity.setShares(obj.getString("share"));
+                                entity.setAccountId(Long.valueOf(token.getAccountId()));
+                                provinceMapper.insert(entity);
+                            } else if ("city".equals(type)) {
+                                KuaishouAudienceReportDailyCity entity = JSONObject.toJavaObject(obj, KuaishouAudienceReportDailyCity.class);
+                                entity.setPhotoLike(obj.getLong("like"));
+                                entity.setComments(obj.getLong("comment"));
+                                entity.setPhotoShow(obj.getLong("show"));
+                                entity.setShares(obj.getString("share"));
+                                entity.setAccountId(Long.valueOf(token.getAccountId()));
+                                cityMapper.insert(entity);
+                            } else if ("gender".equals(type)) {
+                                KuaishouAudienceReportDailyGender entity = JSONObject.toJavaObject(obj, KuaishouAudienceReportDailyGender.class);
+                                entity.setPhotoLike(obj.getLong("like"));
+                                entity.setComments(obj.getLong("comment"));
+                                entity.setPhotoShow(obj.getLong("show"));
+                                entity.setShares(obj.getString("share"));
+                                entity.setAccountId(Long.valueOf(token.getAccountId()));
+                                genderMapper.insert(entity);
+                            } else if ("ageSegment".equals(type)) {
+                                KuaishouAudienceReportDailyAge entity = JSONObject.toJavaObject(obj, KuaishouAudienceReportDailyAge.class);
+                                entity.setPhotoLike(obj.getLong("like"));
+                                entity.setComments(obj.getLong("comment"));
+                                entity.setPhotoShow(obj.getLong("show"));
+                                entity.setShares(obj.getString("share"));
+                                entity.setAccountId(Long.valueOf(token.getAccountId()));
+                                ageMapper.insert(entity);
+                            } else if ("clientId".equals(type)) {
+                                KuaishouAudienceReportDailyClient entity = JSONObject.toJavaObject(obj, KuaishouAudienceReportDailyClient.class);
+                                entity.setPhotoLike(obj.getLong("like"));
+                                entity.setComments(obj.getLong("comment"));
+                                entity.setPhotoShow(obj.getLong("show"));
+                                entity.setShares(obj.getString("share"));
+                                entity.setAccountId(Long.valueOf(token.getAccountId()));
+                                clientMapper.insert(entity);
+                            } else if ("businessInterestTags".equals(type)) {
+                                KuaishouAudienceReportDailyBussiness entity = JSONObject.toJavaObject(obj, KuaishouAudienceReportDailyBussiness.class);
+                                entity.setPhotoLike(obj.getLong("like"));
+                                entity.setComments(obj.getLong("comment"));
+                                entity.setPhotoShow(obj.getLong("show"));
+                                entity.setShares(obj.getString("share"));
+                                entity.setAccountId(Long.valueOf(token.getAccountId()));
+                                bussinessMapper.insert(entity);
+                            }
+                        }
+                    }
+                }
+            }
+        } catch (Exception e) {
+            log.error("插入人群分析报表数据异常,数据维度:{}", type, e);
+        }
+        log.info("use time :{} ms", (System.currentTimeMillis() - start));
+    }
+}