Pārlūkot izejas kodu

素材池功能开发 初版

zhaoxian 4 gadi atpakaļ
vecāks
revīzija
c5317584ae

+ 40 - 0
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouProjectVideoGetJob.java

@@ -0,0 +1,40 @@
+package cn.com.ctop.job.kuaishou.handler;
+
+import cn.com.ctop.common.module.entity.Project;
+import cn.com.ctop.common.module.service.IProjectService;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouProjectVideoGetService;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+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;
+
+/**
+ * 清洗项目素材
+ *
+ * @param
+ * @author ZHAOXA
+ * @return
+ * @throws
+ */
+@Component
+public class KuaishouProjectVideoGetJob {
+    @Autowired
+    private IKuaishouProjectVideoGetService projectVideoGetService;
+    @Autowired
+    private IProjectService projectService;
+    static ExecutorService executorService = Executors.newFixedThreadPool(5);
+
+    @XxlJob("kuaishouProjectVideoGetJob")
+    public void kuaishouProjectVideoGetJob() {
+        //2快手,1开启的项目
+        List<Project> projects = projectService.listByMediaType(2, 1);
+        projects.forEach(project -> executorService.submit(() -> {
+            projectVideoGetService.clearProjectVideo(project.getId());
+        }));
+        XxlJobHelper.log("清洗项目素材完成");
+    }
+}

+ 1 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/KuaishouDirectionalPackageServiceImpl.java

@@ -642,7 +642,7 @@ public class KuaishouDirectionalPackageServiceImpl extends ServiceImpl<KuaishouD
     public Result<Object> queryPopulationById(Long templateId, Long accountId) {
         KuaishouTemplateTarget target = templateTargetMapper.queryTemplateTarget(templateId, accountId);
         if (Check.isNull(target)) {
-            return Result.error("查询到人群包");
+            return Result.error("查询到人群包");
         }
         JSONObject data = new JSONObject();
         String excludePopulation = target.getExcludePopulation();

+ 278 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaishouProjectVideoGetController.java

@@ -0,0 +1,278 @@
+package cn.com.ctop.kuaishou.modules.batch.controller;
+
+import cn.com.ctop.common.module.annotation.AutoLog;
+import cn.com.ctop.common.module.utils.QueryGenerator;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouProjectVideoGet;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouProjectVideoGetService;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.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 2021-05-21
+ */
+@Slf4j
+@Api(tags = "快手-项目下视频信息")
+@RestController
+@RequestMapping("/kuaishouProjectVideoGet")
+public class KuaishouProjectVideoGetController {
+    @Autowired
+    private IKuaishouProjectVideoGetService kuaishouProjectVideoGetService;
+
+    /**
+     * 分页列表查询
+     *
+     * @param kuaishouProjectVideoGet
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @GetMapping(value = "/list")
+    public Result<Object> queryPageList(KuaishouProjectVideoGet kuaishouProjectVideoGet,
+                                        @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+        try {
+            return kuaishouProjectVideoGetService.queryPageList(kuaishouProjectVideoGet, pageNo, pageSize);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Result.error("查询失败");
+    }
+    /**
+     * 素材数量统计
+     *
+     * @param kuaishouProjectVideoGet
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @GetMapping(value = "/getVideoTotalNumber")
+    public Result<Object> getVideoTotalNumber(Long projectId) {
+        try {
+            return kuaishouProjectVideoGetService.getVideoTotalNumber(projectId);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Result.error("查询失败");
+    }
+
+    /**
+     * 添加
+     *
+     * @param kuaishouProjectVideoGet
+     * @return
+     */
+    @AutoLog(value = "快手-项目下视频信息-添加")
+    @ApiOperation(value = "快手-项目下视频信息-添加", notes = "快手-项目下视频信息-添加")
+    @PostMapping(value = "/add")
+    public Result<KuaishouProjectVideoGet> add(@RequestBody KuaishouProjectVideoGet kuaishouProjectVideoGet) {
+        Result<KuaishouProjectVideoGet> result = new Result<>();
+        try {
+            kuaishouProjectVideoGetService.save(kuaishouProjectVideoGet);
+            result.success("添加成功!");
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            result.error500("操作失败");
+        }
+        return result;
+    }
+
+    @GetMapping(value = "/clearProjectVideo")
+    public Result<Object> clearProjectVideo(Long projectId) {
+        try {
+            kuaishouProjectVideoGetService.clearProjectVideo(projectId);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        }
+        return Result.ok("执行完成");
+    }
+
+    /**
+     * 编辑
+     *
+     * @param kuaishouProjectVideoGet
+     * @return
+     */
+    @AutoLog(value = "快手-项目下视频信息-编辑")
+    @ApiOperation(value = "快手-项目下视频信息-编辑", notes = "快手-项目下视频信息-编辑")
+    @PutMapping(value = "/edit")
+    public Result<KuaishouProjectVideoGet> edit(@RequestBody KuaishouProjectVideoGet kuaishouProjectVideoGet) {
+        Result<KuaishouProjectVideoGet> result = new Result<KuaishouProjectVideoGet>();
+        KuaishouProjectVideoGet kuaishouProjectVideoGetEntity = kuaishouProjectVideoGetService.getById(kuaishouProjectVideoGet.getId());
+        if (kuaishouProjectVideoGetEntity == null) {
+            result.error500("未找到对应实体");
+        } else {
+            boolean ok = kuaishouProjectVideoGetService.updateById(kuaishouProjectVideoGet);
+            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 {
+            kuaishouProjectVideoGetService.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<KuaishouProjectVideoGet> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+        Result<KuaishouProjectVideoGet> result = new Result<>();
+        if (ids == null || "".equals(ids.trim())) {
+            result.error500("参数不识别!");
+        } else {
+            this.kuaishouProjectVideoGetService.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<KuaishouProjectVideoGet> queryById(@RequestParam(name = "id", required = true) String id) {
+        Result<KuaishouProjectVideoGet> result = new Result<>();
+        KuaishouProjectVideoGet kuaishouProjectVideoGet = kuaishouProjectVideoGetService.getById(id);
+        if (kuaishouProjectVideoGet == null) {
+            result.error500("未找到对应实体");
+        } else {
+            result.setResult(kuaishouProjectVideoGet);
+            result.setSuccess(true);
+        }
+        return result;
+    }
+
+    /**
+     * 导出excel
+     *
+     * @param request
+     * @param response
+     */
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+        // Step.1 组装查询条件
+        QueryWrapper<KuaishouProjectVideoGet> queryWrapper = null;
+        try {
+            String paramsStr = request.getParameter("paramsStr");
+            if (oConvertUtils.isNotEmpty(paramsStr)) {
+                String deString = URLDecoder.decode(paramsStr, "UTF-8");
+                KuaishouProjectVideoGet kuaishouProjectVideoGet = JSON.parseObject(deString, KuaishouProjectVideoGet.class);
+                queryWrapper = QueryGenerator.initQueryWrapper(kuaishouProjectVideoGet, request.getParameterMap());
+            }
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+
+        //Step.2 AutoPoi 导出Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        List<KuaishouProjectVideoGet> pageList = kuaishouProjectVideoGetService.list(queryWrapper);
+        //导出文件名称
+        mv.addObject(NormalExcelConstants.FILE_NAME, "快手-项目下视频信息列表");
+        mv.addObject(NormalExcelConstants.CLASS, KuaishouProjectVideoGet.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<KuaishouProjectVideoGet> listKuaishouProjectVideoGets = ExcelImportUtil.importExcel(file.getInputStream(), KuaishouProjectVideoGet.class, params);
+                kuaishouProjectVideoGetService.saveBatch(listKuaishouProjectVideoGets);
+                return Result.ok("文件导入成功!数据行数:" + listKuaishouProjectVideoGets.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("文件导入失败!");
+    }
+
+}

+ 124 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaishouProjectVideoGet.java

@@ -0,0 +1,124 @@
+package cn.com.ctop.kuaishou.modules.batch.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 2021-05-21
+ */
+@Data
+@TableName("ctop_kuaishou_project_video_get")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_project_video_get对象", description = "快手-项目下视频信息")
+public class KuaishouProjectVideoGet {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+    private String id;
+    /**
+     * 账户ID
+     */
+    @Excel(name = "账户ID", width = 15)
+    @ApiModelProperty(value = "账户ID")
+    private Long projectId;
+    /**
+     * 0 可用 1 删除
+     */
+    @Excel(name = "0 可用 1 删除", width = 15)
+    @ApiModelProperty(value = "0 可用 1 删除")
+    private Integer status;
+    /**
+     * 视频id
+     */
+    @Excel(name = "视频id", width = 15)
+    @ApiModelProperty(value = "视频id")
+    private String photoId;
+    /**
+     * 宽
+     */
+    @Excel(name = "宽", width = 15)
+    @ApiModelProperty(value = "宽")
+    private Integer width;
+    /**
+     * 高
+     */
+    @Excel(name = "高", width = 15)
+    @ApiModelProperty(value = "高")
+    private Integer height;
+    /**
+     * 视频预览链接
+     */
+    @Excel(name = "视频预览链接", width = 15)
+    @ApiModelProperty(value = "视频预览链接")
+    private String url;
+    /**
+     * 视频首帧图片链接
+     */
+    @Excel(name = "视频首帧图片链接", width = 15)
+    @ApiModelProperty(value = "视频首帧图片链接")
+    private String coverUrl;
+    /**
+     * 1 竖版视频 2 横版视频
+     */
+    @Excel(name = "1 竖版视频 2 横版视频", width = 15)
+    @ApiModelProperty(value = "1 竖版视频 2 横版视频")
+    private Integer materialType;
+    /**
+     * 0:自产 1:素造
+     */
+    @Excel(name = "0:自产 1:素造", width = 15)
+    @ApiModelProperty(value = "0:自产 1:素造")
+    private Integer channelType;
+    /**
+     * statDate
+     */
+    @ApiModelProperty(value = "statDate")
+    private Date statDate;
+    /**
+     * MD5值
+     */
+    @Excel(name = "MD5值", width = 15)
+    @ApiModelProperty(value = "MD5值")
+    private String signature;
+    /**
+     * 素材名称
+     */
+    @Excel(name = "素材名称", width = 15)
+    @ApiModelProperty(value = "素材名称")
+    private String photoName;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -1,6 +1,7 @@
 package cn.com.ctop.kuaishou.modules.batch.mapper;
 
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouProjectVideoGet;
 import cn.com.ctop.kuaishou.modules.batch.entity.vo.KuaiShouVideoGetVo;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -44,4 +45,6 @@ public interface KuaiShouVideoGetMapper extends BaseMapper<KuaiShouVideoGet> {
     List<KuaiShouVideoGet> getZeroVideoByParams(@Param("accountId")Long accountId, @Param("startTime")String startTime, @Param("endTime")String endTime, @Param("videoCnt")Long videoCnt,@Param("appVersion")String appVersion,@Param("channelType")Integer channelType,@Param("relativeCnt")Integer relativeCnt);
 
     List<KuaiShouVideoGet> getHistoryTopVideoByParams(@Param("accountId")Long accountId, @Param("startTime")String startTime, @Param("endTime")String endTime, @Param("videoCnt")Long videoCnt,@Param("appVersion")String appVersion,@Param("channelType")Integer channelType);
+
+    List<KuaishouProjectVideoGet> selectProjectVideo(@Param("projectId") Long projectId,@Param("updateTime") String updateTime);
 }

+ 28 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaishouProjectVideoGetMapper.java

@@ -0,0 +1,28 @@
+package cn.com.ctop.kuaishou.modules.batch.mapper;
+
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouProjectVideoGet;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 快手-项目下视频信息
+ *
+ * @author: jeecg-boot
+ * @date: 2021-05-21
+ * @cersion: V1.0
+ */
+public interface KuaishouProjectVideoGetMapper extends BaseMapper<KuaishouProjectVideoGet> {
+
+    void replaceBatch(@Param("list") List<KuaishouProjectVideoGet> list);
+
+    String queryLatestUpdateTime(@Param("projectId") Long projectId);
+
+    Long queryPageListTotal(KuaishouProjectVideoGet kuaishouProjectVideoGet);
+
+    List<KuaishouProjectVideoGet> queryPageList(KuaishouProjectVideoGet kuaishouProjectVideoGet);
+
+    JSONObject getVideoTotalNumber(@Param("projectId") Long projectId);
+}

+ 26 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouVideoGetMapper.xml

@@ -291,4 +291,30 @@
             limit #{videoCnt}
         </if>
     </select>
+
+    <select id="selectProjectVideo" resultType="cn.com.ctop.kuaishou.modules.batch.entity.KuaishouProjectVideoGet">
+        SELECT
+            t1.id,
+            t2.project_id,
+            t1.status,
+            t1.photo_id,
+            t1.width,
+            t1.height,
+            t1.url,
+            t1.cover_url,
+            t1.material_type,
+            t1.channel_type,
+            t1.stat_date,
+            t1.signature,
+            t1.photo_name,
+            t1.update_time
+        FROM ctop_kuaishou_video_get t1
+                 INNER JOIN ctop_user_allocation t2 ON t1.account_id = t2.account_id
+        WHERE t1.`status` =0
+          AND t2.project_id=#{projectId}
+        <if test="updateTime!=null">
+          AND t1.update_time >=#{updateTime}
+        </if>
+
+    </select>
 </mapper>

+ 106 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaishouProjectVideoGetMapper.xml

@@ -0,0 +1,106 @@
+<?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.batch.mapper.KuaishouProjectVideoGetMapper">
+
+    <insert id="replaceBatch">
+        replace into ctop_kuaishou_project_video_get(
+        id,
+        project_id,
+        status,
+        photo_id,
+        width,
+        height,
+        url,
+        cover_url,
+        material_type,
+        channel_type,
+        stat_date,
+        signature,
+        photo_name,
+        update_time
+        )
+        values
+        <foreach collection="list" item="video" separator=",">
+            (
+            #{video.id},
+            #{video.projectId},
+            #{video.status},
+            #{video.photoId},
+            #{video.width},
+            #{video.height},
+            #{video.url},
+            #{video.coverUrl},
+            #{video.materialType},
+            #{video.channelType},
+            #{video.statDate},
+            #{video.signature},
+            #{video.photoName},
+            #{video.updateTime}
+            )
+        </foreach>
+    </insert>
+
+    <select id="queryLatestUpdateTime" resultType="java.lang.String">
+        SELECT update_time
+        FROM ctop_kuaishou_project_video_get
+        WHERE project_id = #{projectId}
+        ORDER BY update_time DESC LIMIT 1
+    </select>
+
+    <select id="queryPageListTotal" resultType="java.lang.Long">
+        SELECT IFNULL(COUNT(1),0)
+        FROM ctop_kuaishou_project_video_get
+        <where>
+            <if test="projectId != null">
+                and project_id = #{projectId}
+            </if>
+            <if test="signature != null">
+                and signature = #{signature}
+            </if>
+            <if test="status != null">
+                and `status` = #{status}
+            </if>
+            <if test="channelType != null">
+                and channel_type = #{channelType}
+            </if>
+        </where>
+    </select>
+    <select id="queryPageList" resultType="cn.com.ctop.kuaishou.modules.batch.entity.KuaishouProjectVideoGet">
+        SELECT
+        project_id,
+        status,
+        photo_id,
+        width,
+        height,
+        url,
+        cover_url,
+        material_type,
+        channel_type,
+        stat_date,
+        signature,
+        photo_name
+        FROM ctop_kuaishou_project_video_get
+        <where>
+            <if test="projectId != null">
+                and project_id = #{projectId}
+            </if>
+            <if test="signature != null">
+                and signature = #{signature}
+            </if>
+            <if test="status != null">
+                and `status` = #{status}
+            </if>
+            <if test="channelType != null">
+                and channel_type = #{channelType}
+            </if>
+        </where>
+        ORDER BY stat_date desc
+    </select>
+
+     <select id="getVideoTotalNumber" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT
+        FROM ctop_kuaishou_project_video_get
+        where project_id = #{projectId}
+    </select>
+
+</mapper>

+ 23 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaishouProjectVideoGetService.java

@@ -0,0 +1,23 @@
+package cn.com.ctop.kuaishou.modules.batch.service;
+
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouProjectVideoGet;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
+
+/**
+ * @Description: 快手-项目下视频信息
+ * @Author: jeecg-boot
+ * @Date: 2021-05-21
+ * @Version: V1.0
+ */
+public interface IKuaishouProjectVideoGetService extends IService<KuaishouProjectVideoGet> {
+
+    /**
+     * 清洗项目数据
+     */
+    void clearProjectVideo(Long projectId);
+
+    Result<Object> queryPageList(KuaishouProjectVideoGet kuaishouProjectVideoGet,Integer pageNo,Integer pageSize);
+
+    Result<Object> getVideoTotalNumber(Long projectId);
+}

+ 60 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouProjectVideoGetServiceImpl.java

@@ -0,0 +1,60 @@
+package cn.com.ctop.kuaishou.modules.batch.service.impl;
+
+import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouProjectVideoGet;
+import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouVideoGetMapper;
+import cn.com.ctop.kuaishou.modules.batch.mapper.KuaishouProjectVideoGetMapper;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouProjectVideoGetService;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.xxl.job.core.util.DateUtil;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 快手-项目下视频信息
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2021-05-21
+ */
+@Service
+public class KuaishouProjectVideoGetServiceImpl extends ServiceImpl<KuaishouProjectVideoGetMapper, KuaishouProjectVideoGet> implements IKuaishouProjectVideoGetService {
+
+    @Autowired
+    private KuaishouProjectVideoGetMapper projectVideoGetMapper;
+    @Autowired
+    private KuaiShouVideoGetMapper videoGetMapper;
+
+    @Override
+    public void clearProjectVideo(Long projectId) {
+        String updateTime = projectVideoGetMapper.queryLatestUpdateTime(projectId);
+        System.out.println(updateTime);
+        List<KuaishouProjectVideoGet> list = videoGetMapper.selectProjectVideo(projectId, updateTime);
+        if (!Check.isNull(list)) {
+            projectVideoGetMapper.replaceBatch(list);
+        }
+    }
+
+    @Override
+    public Result<Object> queryPageList(KuaishouProjectVideoGet kuaishouProjectVideoGet, Integer pageNo, Integer pageSize) {
+        Long total =projectVideoGetMapper.queryPageListTotal(kuaishouProjectVideoGet);
+        PageHelper.startPage(pageNo, pageSize, false);
+        PageInfo pageInfo = new PageInfo(projectVideoGetMapper.queryPageList(kuaishouProjectVideoGet));
+        pageInfo.setTotal(total);
+        return Result.ok(pageInfo);
+    }
+
+    @Override
+    public Result<Object> getVideoTotalNumber(Long projectId) {
+        JSONObject data = projectVideoGetMapper.getVideoTotalNumber(projectId);
+//        DateUtils.getLastDay()
+        return null;
+    }
+}