Pārlūkot izejas kodu

Merge branch 'test' of https://gitee.com/hcst/adsp-boot into test

yumeng 5 gadi atpakaļ
vecāks
revīzija
ae21f7fe1d
19 mainītis faili ar 464 papildinājumiem un 38 dzēšanām
  1. 2 2
      jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java
  2. 84 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialPartController.java
  3. 64 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/job/MergeVideoJob.java
  4. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/entity/VideoMerge.java
  5. 59 0
      module-common/src/main/java/cn/com/ctop/common/module/entity/VideoMergeTask.java
  6. 46 0
      module-common/src/main/java/cn/com/ctop/common/module/entity/VideoPart.java
  7. 17 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/VideoMergeTaskMapper.java
  8. 17 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/VideoPartMapper.java
  9. 5 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/VideoMergeTaskMapper.xml
  10. 5 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/VideoPartMapper.xml
  11. 14 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IVideoMergeTaskService.java
  12. 14 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IVideoPartService.java
  13. 19 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/VideoMergeTaskServiceImpl.java
  14. 19 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/VideoPartServiceImpl.java
  15. 5 1
      module-common/src/main/java/cn/com/ctop/common/module/utils/LoadFileUtil.java
  16. 49 12
      module-common/src/main/java/cn/com/ctop/common/module/utils/MpsUtils.java
  17. 6 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/controller/KuaishouReportDailyAgentController.java
  18. 1 19
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyAgentSum.java
  19. 27 3
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaishouReportDailyAgentServiceImpl.java

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java

@@ -121,13 +121,13 @@ public class ShiroConfig {
         //文件上传接口
 		filterChainDefinitionMap.put("/upload/**", "anon");
         filterChainDefinitionMap.put("/appium/appiumTask/run", "anon");
-
+		filterChainDefinitionMap.put("/ctop/materialpart/merge","anon");
 
         filterChainDefinitionMap.put("/system/userCompany/**", "anon");
         filterChainDefinitionMap.put("/qywexin", "anon");
         filterChainDefinitionMap.put("/test/getGroupData/**", "anon");
 
-
+		filterChainDefinitionMap.put("/report/kuaishouReportDailyAgent/get","anon");
 
 		filterChainDefinitionMap.put("/appium/appiumTask/run/login", "anon");
 		//爬虫接口

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

@@ -0,0 +1,84 @@
+package org.jeecg.modules.ctop.controller;
+
+import cn.com.ctop.common.module.entity.*;
+import cn.com.ctop.common.module.service.IMaterialInfoService;
+import cn.com.ctop.common.module.service.IVideoMergeTaskService;
+import cn.com.ctop.common.module.service.IVideoPartService;
+import cn.com.ctop.common.module.utils.MpsUtils;
+import com.aliyuncs.mts.model.v20140618.QueryJobListResponse;
+import com.google.gson.Gson;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.vo.LoginUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Api(tags = "视频片段")
+@RestController
+@RequestMapping("/ctop/materialpart")
+public class MaterialPartController {
+    @Autowired
+    private IVideoMergeTaskService videoMergeTaskService;
+    @Autowired
+    private IVideoPartService videoPartService;
+    @Autowired
+    private IMaterialInfoService materialInfoService;
+    @AutoLog(value = "片段合成")
+    @ApiOperation(value = "片段合成", notes = "片段合成")
+    @PostMapping(value = "/merge")
+    public Result<Object> add(@RequestBody List<VideoMerge> videoMergeList) {
+        Result<Object> result = new Result<Object>();
+        List<String> jobIdList = new ArrayList<>();
+        try {
+            MpsUtils mpsUtils = new MpsUtils();
+            for (VideoMerge videoMerge:videoMergeList){
+                MaterialInfo start = materialInfoService.getMaterialInfoByCode(videoMerge.getStartPart());
+                MaterialInfo end = materialInfoService.getMaterialInfoByCode(videoMerge.getEndPart());
+                List<String> partUrlList = new ArrayList<>();
+                List<String> parts = videoMerge.getParts();
+                for (String part :parts){
+                    MaterialInfo materialInfo = materialInfoService.getMaterialInfoByCode(part);
+                    String url = materialInfo.getUrl();
+                    int i = url.indexOf("/",10);
+                    System.out.println(url.substring(i+1,url.length()));
+                    partUrlList.add(url.substring(i+1,url.length()));
+                }
+                String startUrl = start.getUrl();
+                String startPath = startUrl.substring(startUrl.indexOf("/",10)+1,startUrl.length());
+                String endUrl = end.getUrl();
+                String endPath = endUrl.substring(endUrl.indexOf("/",10)+1,endUrl.length());
+                String jobId = mpsUtils.mergeOneVideo(startPath,partUrlList,endPath);
+                QueryJobListResponse.Job job = mpsUtils.getJobStatus(jobId);
+                VideoMergeTask videoMergeTask = new VideoMergeTask();
+                LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+                videoMergeTask.setUserId(sysUser.getId());
+//                videoMergeTask.setUserId("1");
+                videoMergeTask.setJobId(jobId);
+                videoMergeTask.setStatus(job.getState());
+                videoMergeTaskService.save(videoMergeTask);
+                parts.add(0,videoMerge.getStartPart());
+                parts.add(videoMerge.getStartPart());
+                for(String part :parts){
+                    VideoPart videoPart = new VideoPart();
+                    videoPart.setJobId(jobId);
+                    videoPart.setPartId(part);
+                    videoPartService.save(videoPart);
+                }
+                jobIdList.add(jobId);
+            }
+            result.success("合成中,可在任务列表中查询状态,任务ID:"+new Gson().toJson(jobIdList));
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            result.error500("操作失败");
+        }
+        return result;
+    }
+}

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

@@ -0,0 +1,64 @@
+package org.jeecg.modules.ctop.job;
+
+import cn.com.ctop.common.module.entity.MaterialInfo;
+import cn.com.ctop.common.module.entity.VideoMergeTask;
+import cn.com.ctop.common.module.service.IMaterialInfoService;
+import cn.com.ctop.common.module.service.IVideoMergeTaskService;
+import cn.com.ctop.common.module.utils.LoadFileUtil;
+import cn.com.ctop.common.module.utils.MpsUtils;
+import cn.com.ctop.common.module.utils.PropertiesUtils;
+import com.aliyuncs.mts.model.v20140618.QueryJobListResponse;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.jeecg.common.util.DateUtils;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.UUID;
+
+public class MergeVideoJob implements Job {
+    @Autowired
+    private IVideoMergeTaskService videoMergeTaskService;
+    @Autowired
+    private IMaterialInfoService materialInfoService;
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        QueryWrapper<VideoMergeTask> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("status","Submitted","Transcoding");
+        List<VideoMergeTask> list = videoMergeTaskService.list(queryWrapper);
+        if(list != null && list.size() > 0){
+            for (VideoMergeTask videoMergeTask : list){
+                MpsUtils mpsUtils = new MpsUtils();
+                QueryJobListResponse.Job job = mpsUtils.getJobStatus(videoMergeTask.getJobId());
+                if (job.getState().equals("TranscodeSuccess")){
+                    String url = "https://ctop-part.oss-cn-beijing.aliyuncs.com/"+job.getOutput().getOutputFile().getObject();
+
+                    try {
+                        String localPath = LoadFileUtil.downLoadFromUrl(url, PropertiesUtils.getValue("kuaishou_config", "video_sava_path"));
+//                        String localPath = LoadFileUtil.downLoadFromUrl(url,"D:/video/");
+                        String md5 = LoadFileUtil.getMD5(localPath);
+                        LoadFileUtil.delFile(localPath);
+                        MaterialInfo materialInfo = new MaterialInfo();
+                        materialInfo.setCode(md5);
+                        materialInfo.setId(md5);
+                        materialInfo.setUrl(url);
+                        materialInfo.setUserId(videoMergeTask.getUserId());
+                        materialInfo.setStatus(0);
+                        materialInfo.setType("VIDEO");
+                        materialInfo.setMaterialName("合成"+ DateUtils.getMillis());
+                        materialInfoService.saveOrUpdate(materialInfo);
+                        videoMergeTask.setVideoUrl(url);
+                        videoMergeTask.setStatus(job.getState());
+                        videoMergeTask.setVideoId(materialInfo.getId());
+                        videoMergeTaskService.updateById(videoMergeTask);
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }
+    }
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/entity/VideoMerge.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.entity;
+
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class VideoMerge {
+    private String startPart;
+    private String endPart;
+    private List<String> parts;
+}

+ 59 - 0
module-common/src/main/java/cn/com/ctop/common/module/entity/VideoMergeTask.java

@@ -0,0 +1,59 @@
+package cn.com.ctop.common.module.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
+ * @date   2019-12-16
+ * @version V1.0
+ */
+@Data
+@TableName("ctop_video_merge_task")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="ctop_video_merge_task对象", description="视频合成任务")
+public class VideoMergeTask {
+    
+	/**id*/
+	@TableId(type = IdType.UUID)
+    @ApiModelProperty(value = "id")
+	private String id;
+	/**jobId*/
+	@Excel(name = "jobId", width = 15)
+    @ApiModelProperty(value = "jobId")
+	private String jobId;
+	@Excel(name = "userId", width = 15)
+	@ApiModelProperty(value = "userId")
+	private String userId;
+	/**videoId*/
+	@Excel(name = "videoId", width = 15)
+    @ApiModelProperty(value = "videoId")
+	private String videoId;
+	@Excel(name = "videoUrl", width = 15)
+	@ApiModelProperty(value = "videoUrl")
+	private String videoUrl;
+	/**status*/
+	@Excel(name = "status", width = 15)
+    @ApiModelProperty(value = "status")
+	private String status;
+	/**createTime*/
+    @ApiModelProperty(value = "createTime")
+	private Date createTime;
+	/**updateTime*/
+    @ApiModelProperty(value = "updateTime")
+	private Date updateTime;
+}

+ 46 - 0
module-common/src/main/java/cn/com/ctop/common/module/entity/VideoPart.java

@@ -0,0 +1,46 @@
+package cn.com.ctop.common.module.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
+ * @date   2019-12-16
+ * @version V1.0
+ */
+@Data
+@TableName("ctop_video_part")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="ctop_video_part对象", description="视频片段")
+public class VideoPart {
+    
+	/**id*/
+	@TableId(type = IdType.UUID)
+    @ApiModelProperty(value = "id")
+	private String id;
+	/**videoId*/
+	@Excel(name = "jobId", width = 15)
+    @ApiModelProperty(value = "jobId")
+	private String jobId;
+	/**partId*/
+	@Excel(name = "partId", width = 15)
+    @ApiModelProperty(value = "partId")
+	private String partId;
+	/**createTime*/
+    @ApiModelProperty(value = "createTime")
+	private Date createTime;
+}

+ 17 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/VideoMergeTaskMapper.java

@@ -0,0 +1,17 @@
+package cn.com.ctop.common.module.mapper;
+
+import java.util.List;
+
+import cn.com.ctop.common.module.entity.VideoMergeTask;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 视频合成任务
+ * @author: jeecg-boot
+ * @date:   2019-12-16
+ * @cersion: V1.0
+ */
+public interface VideoMergeTaskMapper extends BaseMapper<VideoMergeTask> {
+
+}

+ 17 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/VideoPartMapper.java

@@ -0,0 +1,17 @@
+package cn.com.ctop.common.module.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import cn.com.ctop.common.module.entity.VideoPart;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 视频片段
+ * @author: jeecg-boot
+ * @date:   2019-12-16
+ * @cersion: V1.0
+ */
+public interface VideoPartMapper extends BaseMapper<VideoPart> {
+
+}

+ 5 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/VideoMergeTaskMapper.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.common.module.mapper.VideoMergeTaskMapper">
+
+</mapper>

+ 5 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/VideoPartMapper.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.common.module.mapper.VideoPartMapper">
+
+</mapper>

+ 14 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IVideoMergeTaskService.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.common.module.service;
+
+import cn.com.ctop.common.module.entity.VideoMergeTask;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 视频合成任务
+ * @author jeecg-boot
+ * @date   2019-12-16
+ * @version V1.0
+ */
+public interface IVideoMergeTaskService extends IService<VideoMergeTask> {
+
+}

+ 14 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IVideoPartService.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.common.module.service;
+
+import cn.com.ctop.common.module.entity.VideoPart;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 视频片段
+ * @author jeecg-boot
+ * @date   2019-12-16
+ * @version V1.0
+ */
+public interface IVideoPartService extends IService<VideoPart> {
+
+}

+ 19 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/VideoMergeTaskServiceImpl.java

@@ -0,0 +1,19 @@
+package cn.com.ctop.common.module.service.impl;
+
+import cn.com.ctop.common.module.entity.VideoMergeTask;
+import cn.com.ctop.common.module.mapper.VideoMergeTaskMapper;
+import cn.com.ctop.common.module.service.IVideoMergeTaskService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * 视频合成任务
+ * @author jeecg-boot
+ * @date   2019-12-16
+ * @version V1.0
+ */
+@Service
+public class VideoMergeTaskServiceImpl extends ServiceImpl<VideoMergeTaskMapper, VideoMergeTask> implements IVideoMergeTaskService {
+
+}

+ 19 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/VideoPartServiceImpl.java

@@ -0,0 +1,19 @@
+package cn.com.ctop.common.module.service.impl;
+
+import cn.com.ctop.common.module.entity.VideoPart;
+import cn.com.ctop.common.module.mapper.VideoPartMapper;
+import cn.com.ctop.common.module.service.IVideoPartService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * 视频片段
+ * @author jeecg-boot
+ * @date   2019-12-16
+ * @version V1.0
+ */
+@Service
+public class VideoPartServiceImpl extends ServiceImpl<VideoPartMapper, VideoPart> implements IVideoPartService {
+
+}

+ 5 - 1
module-common/src/main/java/cn/com/ctop/common/module/utils/LoadFileUtil.java

@@ -33,10 +33,14 @@ public class LoadFileUtil {
         //文件保存位置
         File saveDir = new File(savePath);
         if (!saveDir.exists()) {
-            saveDir.mkdir();
+//            saveDir.mkdir();
+            saveDir.mkdirs();
         }
         String localPath = saveDir + File.separator + fileName;
         File file = new File(localPath);
+        if (!file.exists()){
+            file.getParentFile().mkdirs();
+        }
         FileOutputStream fos = new FileOutputStream(file);
         fos.write(getData);
         if (fos != null) {

+ 49 - 12
module-common/src/main/java/cn/com/ctop/common/module/utils/MpsUtils.java

@@ -8,6 +8,7 @@ import com.aliyuncs.exceptions.ClientException;
 import com.aliyuncs.exceptions.ServerException;
 import com.aliyuncs.mts.model.v20140618.*;
 import com.aliyuncs.profile.DefaultProfile;
+import com.google.gson.Gson;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.PropertySource;
 
@@ -22,9 +23,43 @@ public class MpsUtils {
     public static final String ossLocation = "oss-cn-beijing";
     public static final String ossBucket = "ctop-part";
     public static void main(String[] args){
-        String[] a = {"1","2","3","4","5"};
-        combinationSelect(a,3);
-        arrangementSelect(a,3);
+//        String[] a = {"1","2","3","4","5"};
+//        combinationSelect(a,3);
+//        arrangementSelect(a,3);
+        String t = "https://ctop-part.oss-cn-beijing.aliyuncs.com/input/VIDEO_HEAD/2019-12-11/25-1576044510677.mp4";
+        int i = t.indexOf("/",10);
+        System.out.println(t.substring(i+1,t.length()-1));
+
+//        MpsUtils mpsUtils = new MpsUtils();
+//        List<String> list = new ArrayList<>();
+//        list.add("v1.mp4");
+//        String jobId = mpsUtils.mergeOneVideo("v1.mp4",list,"v1.mp4");
+//        try {
+//            while (true){
+//                QueryJobListResponse.Job job = mpsUtils.getJobStatus(jobId);
+//                job.getOutput().getOutputFile().getObject();
+//                System.out.println(new Gson().toJson(job));
+//                Thread.sleep(5000L);
+//            }
+//        } catch (InterruptedException e) {
+//            e.printStackTrace();
+//        }
+
+    }
+
+    public QueryJobListResponse.Job getJobStatus(String jobId){
+        QueryJobListResponse.Job job = null;
+        IAcsClient client = getClient();
+        QueryJobListRequest request = new QueryJobListRequest();
+        request.setJobIds(jobId);
+        try {
+            QueryJobListResponse response = client.getAcsResponse(request);
+            System.out.println(new Gson().toJson(response.getJobList().get(0)));
+            job = response.getJobList().get(0);
+        } catch (ClientException e) {
+            e.printStackTrace();
+        }
+        return job;
     }
     /**
      * 排列计算公式A<sup>m</sup><sub>n</sub> = n!/(n - m)!
@@ -155,8 +190,7 @@ public class MpsUtils {
         videos.add(startPart);
         videos.addAll(videoPart);
         videos.add(endPart);
-        mergeVideo(client,pipelineId,videos,outputFilename);
-        return outputFilename;
+        return mergeVideo(client,pipelineId,videos,outputFilename);
     }
 
     public String mergeVideo(IAcsClient client, String pipelineId, List<String> videos, String outputName){
@@ -193,14 +227,15 @@ public class MpsUtils {
                 }
             }
         }
-        String outputOssObject;
-        try {
-            outputOssObject = URLEncoder.encode(outputName, "utf-8");
-        } catch (UnsupportedEncodingException e) {
-            throw new RuntimeException("output URL encode failed");
-        }
+//        String outputOssObject;
+//        try {
+//            outputOssObject = URLEncoder.encode(outputName, "utf-8");
+//            outputOssObject = outputName;
+//        } catch (UnsupportedEncodingException e) {
+//            throw new RuntimeException("output URL encode failed");
+//        }
         JSONObject output = new JSONObject();
-        output.put("OutputObject", outputOssObject);
+        output.put("OutputObject", outputName);
         JSONObject video = new JSONObject();
         video.put("Width", "720");
         video.put("Height", "1280");
@@ -234,6 +269,8 @@ public class MpsUtils {
         return jobId;
     }
 
+
+
     public String getPipelineId(IAcsClient client){
         String pipelineId = null;
         // 创建API请求并设置参数

+ 6 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/controller/KuaishouReportDailyAgentController.java

@@ -50,7 +50,12 @@ import io.swagger.annotations.ApiOperation;
 public class KuaishouReportDailyAgentController {
     @Autowired
     private IKuaishouReportDailyAgentService kuaishouReportDailyAgentService;
-
+    @GetMapping(value = "/get")
+    @ResponseBody
+    public String getReport(@RequestParam(name="start")String start,@RequestParam(name="end")String end){
+        kuaishouReportDailyAgentService.getReport(start,end);
+        return "ok";
+    }
     /**
      * 分页列表查询
      * @param kuaishouReportDailyAgent

+ 1 - 19
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyAgentSum.java

@@ -22,7 +22,7 @@ import org.jeecgframework.poi.excel.annotation.Excel;
  * @version V1.0
  */
 @Data
-@TableName("ctop_kuaishou_report_daily_agent")
+@TableName("ctop_kuaishou_report_daily_agent_sum")
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
 @ApiModel(value="ctop_kuaishou_report_daily_agent对象", description="代理商日汇总表")
@@ -35,24 +35,6 @@ public class KuaishouReportDailyAgentSum {
     @ApiModelProperty(value = "日期")
 	@TableId(type = IdType.INPUT)
 	private Date date;
-	/**账户ID*/
-	@Excel(name = "账户ID", width = 15)
-    @ApiModelProperty(value = "账户ID")
-	private Integer accountId;
-	/**快手ID*/
-	@Excel(name = "快手ID", width = 15)
-    @ApiModelProperty(value = "快手ID")
-	private Integer kid;
-	/**广告主名称*/
-	@Excel(name = "广告主名称", width = 15)
-    @ApiModelProperty(value = "广告主名称")
-	private String advertiserName;
-	/**广告主创建时间*/
-	@Excel(name = "广告主创建时间", width = 15, format = "yyyy-MM-dd")
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-    @ApiModelProperty(value = "广告主创建时间")
-	private Date advertiserCreateTime;
 	/**有消费计划数*/
 	@Excel(name = "有消费计划数", width = 15)
     @ApiModelProperty(value = "有消费计划数")

+ 27 - 3
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaishouReportDailyAgentServiceImpl.java

@@ -2,8 +2,11 @@ package cn.com.ctop.kuaishou.modules.report.service.impl;
 
 import cn.com.ctop.common.module.utils.HttpUtils2;
 import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportDailyAgent;
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportDailyAgentSum;
 import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouReportDailyAgentMapper;
+import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouReportDailyAgentSumMapper;
 import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportDailyAgentService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.http.client.CookieStore;
@@ -35,6 +38,8 @@ import java.util.*;
 public class KuaishouReportDailyAgentServiceImpl extends ServiceImpl<KuaishouReportDailyAgentMapper, KuaishouReportDailyAgent> implements IKuaishouReportDailyAgentService {
     @Autowired
     private KuaishouReportDailyAgentMapper kuaishouReportDailyAgentMapper;
+    @Autowired
+    private KuaishouReportDailyAgentSumMapper kuaishouReportDailyAgentSumMapper;
     @Value("${jeecg.path.chrome-driver}")
     private String chromeDriver;
     @Override
@@ -102,7 +107,7 @@ public class KuaishouReportDailyAgentServiceImpl extends ServiceImpl<KuaishouRep
 
             while(DateUtils.compareDate(currentDate,endDate)<=0){
                 String listUrl = "https://agent.e.kuaishou.com/rest/dsp/agent/account/data/list";
-                String postData = "{\"agentId\":403756224,\"date\":\"2019-12-13\",\"sortKey\":\"totalCharge\",\"isAscending\":false,\"pageInfo\":{\"totalCount\":1616,\"currentPage\":1,\"pageSize\":999999}}";
+                String postData = "{\"agentId\":403756224,\"date\":\""+currentDate+"\",\"sortKey\":\"totalCharge\",\"isAscending\":false,\"pageInfo\":{\"totalCount\":1616,\"currentPage\":1,\"pageSize\":999999}}";
                 String result = HttpUtils2.httpPostRequestTest(listUrl,postData,headerMap);
                 ObjectMapper mapper = new ObjectMapper();
                 JsonNode resultNode = mapper.readTree(result);
@@ -113,10 +118,29 @@ public class KuaishouReportDailyAgentServiceImpl extends ServiceImpl<KuaishouRep
                     List<KuaishouReportDailyAgent> reportList = new ArrayList<>();
                     while (iterator1.hasNext()){
                         JsonNode dataNode = iterator1.next();
+                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                         if(i == 0){
-
+                            KuaishouReportDailyAgentSum kuaishouReportDailyAgentSum = new KuaishouReportDailyAgentSum();
+                            kuaishouReportDailyAgentSum.setBalance(dataNode.get("totalBalanceDouble").decimalValue());
+                            kuaishouReportDailyAgentSum.setConvertClickRate(dataNode.get("actionbarClickRatio").decimalValue());
+                            kuaishouReportDailyAgentSum.setConvertCount(dataNode.get("actionbarClick").asInt());
+                            kuaishouReportDailyAgentSum.setCost(dataNode.get("totalChargedInYuan").decimalValue());
+                            kuaishouReportDailyAgentSum.setCostCampaignCount(dataNode.get("chargedCampaignCount").asInt());
+                            kuaishouReportDailyAgentSum.setDate(sdf.parse(currentDate));
+                            kuaishouReportDailyAgentSum.setFengmianClickCount(dataNode.get("adPhotoClick").asInt());
+                            kuaishouReportDailyAgentSum.setFengmianClickRate(dataNode.get("clickRatio").decimalValue());
+                            kuaishouReportDailyAgentSum.setFengmianShowCount(dataNode.get("impression").asInt());
+                            kuaishouReportDailyAgentSum.setFandianCost(dataNode.get("rebateRealChargedInYuan").decimalValue());
+                            kuaishouReportDailyAgentSum.setJiliCost(dataNode.get("directRebateRealChargedInYuan").decimalValue());
+                            kuaishouReportDailyAgentSum.setKuangfanCost(dataNode.get("contractRebateRealChargedInYuan").decimalValue());
+                            kuaishouReportDailyAgentSum.setSucaiShowCount(dataNode.get("click").asInt());
+                            kuaishouReportDailyAgentSum.setXianjinCost(dataNode.get("realChargedInYuan").decimalValue());
+                            kuaishouReportDailyAgentSum.setXinyongCost(dataNode.get("creditRealChargedInYuan").decimalValue());
+                            QueryWrapper<KuaishouReportDailyAgentSum> queryWrapper = new QueryWrapper<>();
+                            queryWrapper.eq("date",currentDate);
+                            kuaishouReportDailyAgentSumMapper.delete(queryWrapper);
+                            kuaishouReportDailyAgentSumMapper.insert(kuaishouReportDailyAgentSum);
                         }else {
-                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                             KuaishouReportDailyAgent kuaishouReportDailyAgent = new KuaishouReportDailyAgent();
                             kuaishouReportDailyAgent.setAccountId(dataNode.get("accountId").asInt());
                             kuaishouReportDailyAgent.setAdvertiserCreateTime(new Date(dataNode.get("createTime").asLong()));