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

Merge branch 'test'

yumeng 5 éve
szülő
commit
31916fb406
18 módosított fájl, 647 hozzáadás és 34 törlés
  1. 248 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/KuaiShouCleanMaterialReportController.java
  2. 59 33
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestController.java
  3. 93 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/entity/KuaiShouCleanMaterialReport.java
  4. 50 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/job/CleanMaterialJob.java
  5. 12 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/CleanMaterialMapper.java
  6. 15 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/KuaiShouCleanMaterialReportMapper.java
  7. 26 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/CleanMaterialMapper.xml
  8. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/KuaiShouCleanMaterialReportMapper.xml
  9. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/ICleanMaterialService.java
  10. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/IKuaiShouCleanMaterialReportService.java
  11. 41 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/CleanMaterialServiceImpl.java
  12. 20 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/KuaiShouCleanMaterialReportServiceImpl.java
  13. 20 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/PerformanceController2.java
  14. 2 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IPerformanceService2.java
  15. 8 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/PerformanceServiceImpl2.java
  16. 1 1
      performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/entity/PerformanceTimeDTO.java
  17. 1 0
      performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/mapper/UserEfficientVideoMapMapper.java
  18. 18 0
      performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/mapper/xml/UserEfficientVideoMapMapper.xml

+ 248 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/KuaiShouCleanMaterialReportController.java

@@ -0,0 +1,248 @@
+package org.jeecg.modules.ctop.controller;
+
+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.aspect.annotation.AutoLog;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.ctop.entity.KuaiShouCleanMaterialReport;
+import org.jeecg.modules.ctop.service.IKuaiShouCleanMaterialReportService;
+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.*;
+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-02-24
+ */
+@Slf4j
+@Api(tags = "快手素材清洗数据")
+@RestController
+@RequestMapping("/ctop/kuaiShouCleanMaterialReport")
+public class KuaiShouCleanMaterialReportController {
+    @Autowired
+    private IKuaiShouCleanMaterialReportService kuaiShouCleanMaterialReportService;
+
+    /**
+     * 分页列表查询
+     *
+     * @param kuaiShouCleanMaterialReport
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @AutoLog(value = "快手素材清洗数据-分页列表查询")
+    @ApiOperation(value = "快手素材清洗数据-分页列表查询", notes = "快手素材清洗数据-分页列表查询")
+    @GetMapping(value = "/list")
+    public Result<IPage<KuaiShouCleanMaterialReport>> queryPageList(KuaiShouCleanMaterialReport kuaiShouCleanMaterialReport,
+                                                                    @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                                    HttpServletRequest req) {
+        Result<IPage<KuaiShouCleanMaterialReport>> result = new Result<IPage<KuaiShouCleanMaterialReport>>();
+        QueryWrapper<KuaiShouCleanMaterialReport> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouCleanMaterialReport, req.getParameterMap());
+        Page<KuaiShouCleanMaterialReport> page = new Page<KuaiShouCleanMaterialReport>(pageNo, pageSize);
+        IPage<KuaiShouCleanMaterialReport> pageList = kuaiShouCleanMaterialReportService.page(page, queryWrapper);
+        result.setSuccess(true);
+        result.setResult(pageList);
+        return result;
+    }
+
+    /**
+     * 添加
+     *
+     * @param kuaiShouCleanMaterialReport
+     * @return
+     */
+    @AutoLog(value = "快手素材清洗数据-添加")
+    @ApiOperation(value = "快手素材清洗数据-添加", notes = "快手素材清洗数据-添加")
+    @PostMapping(value = "/add")
+    public Result<KuaiShouCleanMaterialReport> add(@RequestBody KuaiShouCleanMaterialReport kuaiShouCleanMaterialReport) {
+        Result<KuaiShouCleanMaterialReport> result = new Result<KuaiShouCleanMaterialReport>();
+        try {
+            kuaiShouCleanMaterialReportService.save(kuaiShouCleanMaterialReport);
+            result.success("添加成功!");
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            result.error500("操作失败");
+        }
+        return result;
+    }
+
+    /**
+     * 编辑
+     *
+     * @param kuaiShouCleanMaterialReport
+     * @return
+     */
+    @AutoLog(value = "快手素材清洗数据-编辑")
+    @ApiOperation(value = "快手素材清洗数据-编辑", notes = "快手素材清洗数据-编辑")
+    @PutMapping(value = "/edit")
+    public Result<KuaiShouCleanMaterialReport> edit(@RequestBody KuaiShouCleanMaterialReport kuaiShouCleanMaterialReport) {
+        Result<KuaiShouCleanMaterialReport> result = new Result<KuaiShouCleanMaterialReport>();
+        KuaiShouCleanMaterialReport kuaiShouCleanMaterialReportEntity = kuaiShouCleanMaterialReportService.getById(kuaiShouCleanMaterialReport.getId());
+        if (kuaiShouCleanMaterialReportEntity == null) {
+            result.error500("未找到对应实体");
+        } else {
+            boolean ok = kuaiShouCleanMaterialReportService.updateById(kuaiShouCleanMaterialReport);
+            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 {
+            kuaiShouCleanMaterialReportService.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<KuaiShouCleanMaterialReport> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+        Result<KuaiShouCleanMaterialReport> result = new Result<KuaiShouCleanMaterialReport>();
+        if (ids == null || "".equals(ids.trim())) {
+            result.error500("参数不识别!");
+        } else {
+            this.kuaiShouCleanMaterialReportService.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<KuaiShouCleanMaterialReport> queryById(@RequestParam(name = "id", required = true) String id) {
+        Result<KuaiShouCleanMaterialReport> result = new Result<KuaiShouCleanMaterialReport>();
+        KuaiShouCleanMaterialReport kuaiShouCleanMaterialReport = kuaiShouCleanMaterialReportService.getById(id);
+        if (kuaiShouCleanMaterialReport == null) {
+            result.error500("未找到对应实体");
+        } else {
+            result.setResult(kuaiShouCleanMaterialReport);
+            result.setSuccess(true);
+        }
+        return result;
+    }
+
+    /**
+     * 导出excel
+     *
+     * @param request
+     * @param response
+     */
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+        // Step.1 组装查询条件
+        QueryWrapper<KuaiShouCleanMaterialReport> queryWrapper = null;
+        try {
+            String paramsStr = request.getParameter("paramsStr");
+            if (oConvertUtils.isNotEmpty(paramsStr)) {
+                String deString = URLDecoder.decode(paramsStr, "UTF-8");
+                KuaiShouCleanMaterialReport kuaiShouCleanMaterialReport = JSON.parseObject(deString, KuaiShouCleanMaterialReport.class);
+                queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouCleanMaterialReport, request.getParameterMap());
+            }
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+
+        //Step.2 AutoPoi 导出Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        List<KuaiShouCleanMaterialReport> pageList = kuaiShouCleanMaterialReportService.list(queryWrapper);
+        //导出文件名称
+        mv.addObject(NormalExcelConstants.FILE_NAME, "快手素材清洗数据列表");
+        mv.addObject(NormalExcelConstants.CLASS, KuaiShouCleanMaterialReport.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<KuaiShouCleanMaterialReport> listKuaiShouCleanMaterialReports = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouCleanMaterialReport.class, params);
+                kuaiShouCleanMaterialReportService.saveBatch(listKuaiShouCleanMaterialReports);
+                return Result.ok("文件导入成功!数据行数:" + listKuaiShouCleanMaterialReports.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("文件导入失败!");
+    }
+
+}

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

@@ -10,6 +10,7 @@ import cn.com.ctop.common.module.entity.UserAllocation;
 import cn.com.ctop.common.module.mapper.CtopOauthTokenMapper;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
 import cn.com.ctop.common.module.service.IUserAllocationService;
+import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.CtopAdConstant;
 import cn.com.ctop.common.module.utils.ResultMapUtils;
 import cn.com.ctop.common.module.utils.StatusCode;
@@ -22,6 +23,7 @@ import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.ctop.service.ICleanMaterialService;
 import org.jeecg.modules.ctop.service.ICreateInternalService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -139,8 +141,6 @@ public class TestController {
     }
 
 
-
-
     @GetMapping(value = "/gerCreative")
     public void gerCreative() {
         QueryWrapper<CtopOauthToken> oauthTokenQueryWrapper = new QueryWrapper<>();
@@ -205,28 +205,27 @@ public class TestController {
         oauthTokenQueryWrapper.eq("account_id", accountId);
         oauthTokenQueryWrapper.last("limit 1");
         CtopOauthToken token = oauthTokenMapper.selectOne(oauthTokenQueryWrapper);
-            executorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        System.err.println("获取创意,accountId:" + token.getAccountId());
-                        kuaishouInterfaceService.getCreativeList(token, null, null);
-                        //  kuaishouInterfaceService.getVideoList2(token, null, null,1);
-                        //3: 获取图片信息数据
-                        // kuaishouInterfaceService.getImageList2(token, null, null,1);
-                        Thread.sleep(1 * 200);
-                        //  kuaishouInterfaceService.getAppList(token.getAccountId(), token.getAccessToken());
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
+        executorService.submit(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    System.err.println("获取创意,accountId:" + token.getAccountId());
+                    kuaishouInterfaceService.getCreativeList(token, null, null);
+                    //  kuaishouInterfaceService.getVideoList2(token, null, null,1);
+                    //3: 获取图片信息数据
+                    // kuaishouInterfaceService.getImageList2(token, null, null,1);
+                    Thread.sleep(1 * 200);
+                    //  kuaishouInterfaceService.getAppList(token.getAccountId(), token.getAccessToken());
+                } catch (Exception e) {
+                    e.printStackTrace();
                 }
-            });
+            }
+        });
 
 
     }
 
 
-
     @GetMapping(value = "/gerCreativeReportByAccount")
     public void gerCreativeReportByAccount(Long accountId, String startDateStr, String endDateStr, QueryWrapper<CtopOauthToken> account_id) {
         Thread thread = new Thread() {
@@ -261,7 +260,7 @@ public class TestController {
 
     @GetMapping("loadBytedanceData")
     public Map<String, Object> formatZybData(String date) {
-        Map<String,Object>result = new HashMap<>();
+        Map<String, Object> result = new HashMap<>();
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         Date getDate = null;
         try {
@@ -283,20 +282,20 @@ public class TestController {
         //清洗关于作业帮数据
         //1:查询作业帮相关的用户数据
         QueryWrapper<UserAllocation> wrapper = new QueryWrapper<>();
-        wrapper.eq("project_id",215);
+        wrapper.eq("project_id", 215);
         List<UserAllocation> allocations = userAllocationService.list(wrapper);
-        if(null!=allocations&&allocations.size()>0){
-            allocations.forEach(allocation->{
+        if (null != allocations && allocations.size() > 0) {
+            allocations.forEach(allocation -> {
                 //根据accountId和时间,查询相关的日报表信息
                 QueryWrapper<BytedancePlanDailyReport> queryWrapper = new QueryWrapper<>();
                 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
-                String dateString = dateFormat.format(finalGetDate)+" 00:00:00";
-                queryWrapper.eq("advertiser_id",allocation.getAccountId())
-                        .eq("stat_datetime",dateString)
+                String dateString = dateFormat.format(finalGetDate) + " 00:00:00";
+                queryWrapper.eq("advertiser_id", allocation.getAccountId())
+                        .eq("stat_datetime", dateString)
                 ;
-                List<BytedancePlanDailyReport>bytedancePlanDailyReports = planDailyReportService.list(queryWrapper);
-                if(null!=bytedancePlanDailyReports&&bytedancePlanDailyReports.size()>0){
-                    bytedancePlanDailyReports.forEach(report->{
+                List<BytedancePlanDailyReport> bytedancePlanDailyReports = planDailyReportService.list(queryWrapper);
+                if (null != bytedancePlanDailyReports && bytedancePlanDailyReports.size() > 0) {
+                    bytedancePlanDailyReports.forEach(report -> {
                         String adName = report.getAdName();
                         String[] tags = adName.split("-");
                         report.setAdsense(tags[1]);
@@ -317,7 +316,7 @@ public class TestController {
                             report.setMaterialType("剧情");
                         } else if (materialName.contains("口播")) {
                             report.setMaterialType("口播");
-                        }else{
+                        } else {
                             report.setMaterialType("其他");
                         }
                         planDailyReportService.updateById(report);
@@ -325,15 +324,16 @@ public class TestController {
                 }
             });
         }
-        ResultMapUtils.setResultMap(result,StatusCode.COMMON_SUCCESS);
+        ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS);
         return result;
     }
 
     @Autowired
     private IByteDanceAdvertiserDataService advertiserDataService;
+
     @GetMapping("getBytedanceData")
     public Map<String, Object> getBytedanceData() {
-        Map<String,Object>result = new HashMap<>();
+        Map<String, Object> result = new HashMap<>();
         //1:查询当日数据
         List<CtopOauthToken> tokens = tokenService.getTokenListByType(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE);
         if (null == tokens || tokens.size() <= 0) {
@@ -343,7 +343,7 @@ public class TestController {
             //3:获取广告计划信息数据
             advertiserDataService.getMaterialList(token);
         });
-        ResultMapUtils.setResultMap(result,StatusCode.COMMON_SUCCESS);
+        ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS);
         return result;
     }
 
@@ -403,7 +403,7 @@ public class TestController {
     private IReportService reportService;
 
     @GetMapping("bytedanceHourReport")
-    public Map<String, Object> testReport() {
+    public Map<String, Object> bytedanceHourReport() {
         Map<String, Object> result = new HashMap<>();
         log.info("头条时报数据获取开始");
         Date getDate = new Date();
@@ -623,4 +623,30 @@ public class TestController {
         ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS);
         return result;
     }
+
+
+    @Autowired
+    private ICleanMaterialService cleanMaterialService;
+
+    @GetMapping("testReport")
+    public void testReport() {
+        List<String> signatureList = cleanMaterialService.getSignature();
+        if (Check.isNull(signatureList)) {
+            log.error("素材数据获取为空");
+            return;
+        }
+        executorService = Executors.newFixedThreadPool(5);
+        for (int i = 0; i < signatureList.size(); i++) {
+            String signature = signatureList.get(i);
+            executorService.submit(new Runnable() {
+                @Override
+                public void run() {
+                    System.err.println(signature);
+                    cleanMaterialService.calculationReport(signature);
+                }
+            });
+        }
+
+
+    }
 }

+ 93 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/entity/KuaiShouCleanMaterialReport.java

@@ -0,0 +1,93 @@
+package org.jeecg.modules.ctop.entity;
+
+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-02-24
+ */
+@Data
+@TableName("ctop_kuaishou_clean_material_report")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_clean_material_report对象", description = "快手素材清洗数据")
+public class KuaiShouCleanMaterialReport {
+
+    /**
+     * signature
+     */
+    @Excel(name = "id", width = 15)
+    @ApiModelProperty(value = "id")
+    private String id;
+    /**
+     * 花费(元)
+     */
+    @Excel(name = "花费(元)", width = 15)
+    @ApiModelProperty(value = "花费(元)")
+    private java.math.BigDecimal charge;
+    /**
+     * 曝光数
+     */
+    @Excel(name = "曝光数", width = 15)
+    @ApiModelProperty(value = "曝光数")
+    private Integer photoShow;
+    /**
+     * 封面点击数
+     */
+    @Excel(name = "封面点击数", width = 15)
+    @ApiModelProperty(value = "封面点击数")
+    private Integer photoClick;
+    /**
+     * 点击数
+     */
+    @Excel(name = "点击数", width = 15)
+    @ApiModelProperty(value = "点击数")
+    private Integer aclick;
+    /**
+     * 行为数
+     */
+    @Excel(name = "行为数", width = 15)
+    @ApiModelProperty(value = "行为数")
+    private Integer bclick;
+    /**
+     * 激活数
+     */
+    @Excel(name = "激活数", width = 15)
+    @ApiModelProperty(value = "激活数")
+    private Integer activation;
+    /**
+     * 表单提交数
+     */
+    @Excel(name = "表单提交数", width = 15)
+    @ApiModelProperty(value = "表单提交数")
+    private Integer formCount;
+    /**
+     * 创建时间
+     */
+    @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;
+}

+ 50 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/job/CleanMaterialJob.java

@@ -0,0 +1,50 @@
+package org.jeecg.modules.ctop.job;
+
+import cn.com.ctop.common.module.utils.Check;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.modules.ctop.service.ICleanMaterialService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * 清洗素材报表
+ */
+@Slf4j
+public class CleanMaterialJob implements Job {
+    @Autowired
+    private ICleanMaterialService cleanMaterialService;
+    static ExecutorService executorService = null;
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) {
+        Thread thread = new Thread() {
+            @Override
+            public void run() {
+                List<String> signatureList = cleanMaterialService.getSignature();
+                if (Check.isNull(signatureList)) {
+                    log.error("素材数据获取为空");
+                    return;
+                }
+                executorService = Executors.newFixedThreadPool(5);
+                for (int i = 0; i < signatureList.size(); i++) {
+                    String signature = signatureList.get(i);
+                    executorService.submit(new Runnable() {
+                        @Override
+                        public void run() {
+                            cleanMaterialService.calculationReport(signature);
+                        }
+                    });
+                }
+
+
+            }
+        };
+        thread.start();
+
+    }
+}

+ 12 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/CleanMaterialMapper.java

@@ -0,0 +1,12 @@
+package org.jeecg.modules.ctop.mapper;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.ctop.entity.KuaiShouCleanMaterialReport;
+
+import java.util.List;
+
+public interface CleanMaterialMapper {
+    List<String> getSignatureList();
+
+    KuaiShouCleanMaterialReport calculationMaterialReport(@Param("signature") String signature);
+}

+ 15 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/KuaiShouCleanMaterialReportMapper.java

@@ -0,0 +1,15 @@
+package org.jeecg.modules.ctop.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.ctop.entity.KuaiShouCleanMaterialReport;
+
+/**
+ * 快手素材清洗数据
+ *
+ * @author: jeecg-boot
+ * @date: 2020-02-24
+ * @cersion: V1.0
+ */
+public interface KuaiShouCleanMaterialReportMapper extends BaseMapper<KuaiShouCleanMaterialReport> {
+
+}

+ 26 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/CleanMaterialMapper.xml

@@ -0,0 +1,26 @@
+<?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="org.jeecg.modules.ctop.mapper.CleanMaterialMapper">
+    <select id="getSignatureList" resultType="java.lang.String">
+    SELECT
+      DISTINCT(signature)
+      from ctop_kuaishou_report_daily_creative
+      WHERE signature !=''
+    </select>
+
+    <select id="calculationMaterialReport" resultType="org.jeecg.modules.ctop.entity.KuaiShouCleanMaterialReport">
+        select
+        signature id,
+        sum(charge) charge,
+        sum(photo_show) photoShow,
+        sum(photo_click) photoClick,
+        sum(aclick) aclick,
+        sum(bclick) bclick,
+        sum(activation) activation,
+        sum(form_count) formCount
+        from ctop_kuaishou_report_daily_creative
+        where
+        signature = #{signature}
+    </select>
+
+</mapper>

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/KuaiShouCleanMaterialReportMapper.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="org.jeecg.modules.ctop.mapper.KuaiShouCleanMaterialReportMapper">
+
+</mapper>

+ 14 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/ICleanMaterialService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.ctop.service;
+
+import java.util.List;
+
+public interface ICleanMaterialService {
+    List<String> getSignature();
+
+    /**
+     * 计算素材报表
+     *
+     * @param signature
+     */
+    void calculationReport(String signature);
+}

+ 14 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/IKuaiShouCleanMaterialReportService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.ctop.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.ctop.entity.KuaiShouCleanMaterialReport;
+
+/**
+ * 快手素材清洗数据
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-02-24
+ */
+public interface IKuaiShouCleanMaterialReportService extends IService<KuaiShouCleanMaterialReport> {
+}

+ 41 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/CleanMaterialServiceImpl.java

@@ -0,0 +1,41 @@
+package org.jeecg.modules.ctop.service.impl;
+
+import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportDailyCreativeService;
+import org.jeecg.modules.ctop.entity.KuaiShouCleanMaterialReport;
+import org.jeecg.modules.ctop.mapper.CleanMaterialMapper;
+import org.jeecg.modules.ctop.service.ICleanMaterialService;
+import org.jeecg.modules.ctop.service.IKuaiShouCleanMaterialReportService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class CleanMaterialServiceImpl implements ICleanMaterialService {
+    @Autowired
+    private CleanMaterialMapper cleanMaterialMapper;
+    @Autowired
+    IKuaishouReportDailyCreativeService kuaishouReportDailyCreativeService;
+    @Autowired
+    private IKuaiShouCleanMaterialReportService cleanMaterialReportService;
+
+
+    @Override
+    public List<String> getSignature() {
+        return cleanMaterialMapper.getSignatureList();
+    }
+
+    /**
+     * 计算素材报表
+     *
+     * @param signature
+     */
+    @Override
+    public void calculationReport(String signature) {
+        KuaiShouCleanMaterialReport calculationMaterialReport = cleanMaterialMapper.calculationMaterialReport(signature);
+        if (!Check.isNull(calculationMaterialReport)) {
+            cleanMaterialReportService.saveOrUpdate(calculationMaterialReport);
+        }
+    }
+}

+ 20 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/KuaiShouCleanMaterialReportServiceImpl.java

@@ -0,0 +1,20 @@
+package org.jeecg.modules.ctop.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.ctop.entity.KuaiShouCleanMaterialReport;
+import org.jeecg.modules.ctop.mapper.KuaiShouCleanMaterialReportMapper;
+import org.jeecg.modules.ctop.service.IKuaiShouCleanMaterialReportService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 快手素材清洗数据
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-02-24
+ */
+@Service
+public class KuaiShouCleanMaterialReportServiceImpl extends ServiceImpl<KuaiShouCleanMaterialReportMapper, KuaiShouCleanMaterialReport> implements IKuaiShouCleanMaterialReportService {
+
+}

+ 20 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/PerformanceController2.java

@@ -535,6 +535,26 @@ public class PerformanceController2 {
         return result;
     }
 
+    @AutoLog(value = "获取本周相关有效视频列表")
+    @ApiOperation(value = "获取本周相关有效视频列表", notes = "获取本周相关有效视频列表")
+    @PostMapping(value = "/getWeekEffiVideoList")
+    public Result<List<MaterialInfo>> getWeekEffiVideoList(@RequestBody PerformanceTimeDTO dto,
+                                                       HttpServletRequest req) {
+        Result<List<MaterialInfo>> result = new Result<>();
+        String userId = dto.getUserId();
+        String startDate = dto.getStartDate();
+        String endDate = dto.getEndDate();
+        Integer appType = dto.getAppType();
+        if(userId==null || appType == null){
+            result.setSuccess(false);
+            result.setMessage("userId和appType不能为空");
+        }
+        List<MaterialInfo> materialInfoList = performanceService.getEffiWeekVideoList(appType, startDate, endDate, userId);
+        result.setSuccess(true);
+        result.setResult(materialInfoList);
+        return result;
+    }
+
     //快手优化季度绩效报表
     //List<UserDto2> kuaishouYouhuaQuarterReport(Integer year, Integer quarter);
     @AutoLog(value = "快手优化季度绩效报表")

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IPerformanceService2.java

@@ -90,6 +90,8 @@ public interface IPerformanceService2 extends IService<Performance> {
     //获取有效视频列表
     List<MaterialInfo> effiVideoList(Integer appType, Integer year, Integer quarter, String userId);
 
+    List<MaterialInfo> getEffiWeekVideoList(Integer appType, String startDate, String endDate, String userId);
+
     //获取快手优化师绩效实时数据
     List<UserDto2> kuaishouYouhuaPerformanceInfoNow();
 

+ 8 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/PerformanceServiceImpl2.java

@@ -1963,6 +1963,14 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         return materialInfoList;
     }
 
+    //根据userid,appType,年度,季度查询有效视频列表
+    public List<MaterialInfo> getEffiWeekVideoList(Integer appType, String startDate, String endDate, String userId){
+        List<MaterialInfo> materialInfoList = userEfficientVideoMapMapper.getEffiWeekVideoList(appType, startDate, endDate, userId);
+        return materialInfoList;
+    }
+
+
+
     //快手优化季度绩效报表
     //@Override
     public List<UserDto2> kuaishouYouhuaQuarterReport(Integer year, Integer quarter) {

+ 1 - 1
performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/entity/PerformanceTimeDTO.java

@@ -7,7 +7,7 @@ import java.io.Serializable;
 
 @Data
 public class PerformanceTimeDTO implements Serializable {
-    private String StartDate;
+    private String startDate;
     private String endDate;
     private Integer year;
     private Integer quarter;

+ 1 - 0
performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/mapper/UserEfficientVideoMapMapper.java

@@ -130,5 +130,6 @@ public interface UserEfficientVideoMapMapper extends BaseMapper<UserEfficientVid
 
 
 
+    List<MaterialInfo> getEffiWeekVideoList(@Param("appType")Integer appType, @Param("startDate")String startDate, @Param("endDate")String endDate, @Param("userId")String userId);
 }
 

+ 18 - 0
performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/mapper/xml/UserEfficientVideoMapMapper.xml

@@ -889,4 +889,22 @@
         m.quarter = #{quarter}
     </select>
 
+    <!-- 视频周有效素材 -->
+    <select id="getEffiWeekVideoList" resultType="cn.com.ctop.common.module.entity.MaterialInfo">
+            select
+            i.id as id,
+            i.code as code,
+            i.url as url,
+            i.material_name as materialName,
+            i.watermark_material_name as watermarkMaterialName
+        from
+        ctop_user_efficient_video_map m
+        left join ctop_material_info i on m.efficient_video_signature = i.code
+        where
+        m.user_id = #{userId} and
+        m.app_type =#{appType} and
+        m.calc_date &lt;= #{endDate} and
+        m.calc_date &gt;= #{startDate}
+    </select>
+
 </mapper>