Bläddra i källkod

merge下单制、素材库改版code

jiequan.bi 4 år sedan
förälder
incheckning
1bf1c223fc
70 ändrade filer med 2037 tillägg och 435 borttagningar
  1. 0 203
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialCutFrameController.java
  2. 64 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialVideoAuthorController.java
  3. 113 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialVideoCoverController.java
  4. 96 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialVideoFrameController.java
  5. 80 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialVideoInfoController.java
  6. 84 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialVideoProjectController.java
  7. 62 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialVideoWatermarkController.java
  8. 4 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/DesignerCommitProcessCtrl.java
  9. 4 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/OperatorApprovalProcessCtrl.java
  10. 40 6
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/PlatformFileCtrl.java
  11. 20 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/PlatformMaterialCtrl.java
  12. 124 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/PlatformScriptController.java
  13. 76 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/PlatformVideoController.java
  14. 30 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/声声慢
  15. 41 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/entity/PlatformScript.java
  16. 46 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/entity/PlatformVideo.java
  17. 6 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/mapper/PlatformMaterialMapper.java
  18. 11 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/mapper/PlatformScriptMapper.java
  19. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/mapper/PlatformVideoMapper.java
  20. 33 15
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/mapper/xml/PlatformMaterialMapper.xml
  21. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/mapper/xml/PlatformScriptMapper.xml
  22. 13 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/mapper/xml/PlatformVideoMapper.xml
  23. 14 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/service/IPlatformMaterialService.java
  24. 11 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/service/IPlatformScriptService.java
  25. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/service/IPlatformVideoService.java
  26. 160 13
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/service/impl/PlatformMaterialServiceImpl.java
  27. 15 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/service/impl/PlatformScriptServiceImpl.java
  28. 146 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/service/impl/PlatformVideoServiceImpl.java
  29. 95 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/util/ApprovalNodeNoticeHandler.java
  30. 6 6
      module-check/src/main/java/cn/com/ctop/notice/handler/SendWeChatHandle.java
  31. 2 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/ProjectMapper.java
  32. 4 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/ProjectMapper.xml
  33. 46 0
      module-common/src/main/java/cn/com/ctop/common/module/material/entity/MaterialVideoAuthor.java
  34. 40 0
      module-common/src/main/java/cn/com/ctop/common/module/material/entity/MaterialVideoCover.java
  35. 30 0
      module-common/src/main/java/cn/com/ctop/common/module/material/entity/MaterialVideoFrame.java
  36. 46 0
      module-common/src/main/java/cn/com/ctop/common/module/material/entity/MaterialVideoInfo.java
  37. 28 0
      module-common/src/main/java/cn/com/ctop/common/module/material/entity/MaterialVideoProject.java
  38. 32 0
      module-common/src/main/java/cn/com/ctop/common/module/material/entity/MaterialVideoWatermark.java
  39. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoAuthorMapper.java
  40. 14 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoCoverMapper.java
  41. 14 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoFrameMapper.java
  42. 14 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoInfoMapper.java
  43. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoProjectMapper.java
  44. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoWatermarkMapper.java
  45. 5 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/xml/MaterialVideoAuthorMapper.xml
  46. 13 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/xml/MaterialVideoCoverMapper.xml
  47. 8 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/xml/MaterialVideoFrameMapper.xml
  48. 8 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/xml/MaterialVideoInfoMapper.xml
  49. 5 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/xml/MaterialVideoProjectMapper.xml
  50. 5 0
      module-common/src/main/java/cn/com/ctop/common/module/material/mapper/xml/MaterialVideoWatermarkMapper.xml
  51. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoAuthorService.java
  52. 13 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoCoverService.java
  53. 15 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoFrameService.java
  54. 13 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoInfoService.java
  55. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoProjectService.java
  56. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoWatermarkService.java
  57. 15 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoAuthorServiceImpl.java
  58. 23 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoCoverServiceImpl.java
  59. 82 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoFrameServiceImpl.java
  60. 23 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoInfoServiceImpl.java
  61. 15 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoProjectServiceImpl.java
  62. 15 0
      module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoWatermarkServiceImpl.java
  63. 0 6
      module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialCutFrameService.java
  64. 2 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IProjectService.java
  65. 1 166
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialCutFrameServiceImpl.java
  66. 1 6
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java
  67. 6 3
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialTagInfoServiceImpl.java
  68. 5 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/ProjectServiceImpl.java
  69. 0 5
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/material/entity/ByteDanceAdvertisePlan.java
  70. 1 1
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/report/service/impl/ReportServiceImpl.java

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

@@ -47,12 +47,6 @@ public class MaterialCutFrameController {
 
     /**
      * 分页列表查询
-     *
-     * @param materialCutFrame
-     * @param pageNo
-     * @param pageSize
-     * @param req
-     * @return
      */
     @AutoLog(value = "截屏-分页列表查询")
     @ApiOperation(value = "截屏-分页列表查询", notes = "截屏-分页列表查询")
@@ -73,201 +67,4 @@ public class MaterialCutFrameController {
         result.setResult(pageList);
         return result;
     }
-
-
-    /**
-     * 添加
-     *
-     * @param materialCutFrame
-     * @return
-     */
-    @AutoLog(value = "截屏-添加")
-    @ApiOperation(value = "截屏-添加", notes = "截屏-添加")
-    @PostMapping(value = "/add")
-    public Result<MaterialCutFrame> add(@RequestBody MaterialCutFrame materialCutFrame) {
-        Result<MaterialCutFrame> result = new Result<MaterialCutFrame>();
-        try {
-            materialCutFrameService.save(materialCutFrame);
-            result.success("添加成功!");
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            result.error500("操作失败");
-        }
-        return result;
-    }
-
-    /**
-     * 编辑
-     *
-     * @param materialCutFrame
-     * @return
-     */
-    @AutoLog(value = "截屏-编辑")
-    @ApiOperation(value = "截屏-编辑", notes = "截屏-编辑")
-    @PutMapping(value = "/edit")
-    public Result<MaterialCutFrame> edit(@RequestBody MaterialCutFrame materialCutFrame) {
-        Result<MaterialCutFrame> result = new Result<MaterialCutFrame>();
-        MaterialCutFrame materialCutFrameEntity = materialCutFrameService.getById(materialCutFrame.getId());
-        if (materialCutFrameEntity == null) {
-            result.error500("未找到对应实体");
-        } else {
-            boolean ok = materialCutFrameService.updateById(materialCutFrame);
-            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 {
-            materialCutFrameService.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<MaterialCutFrame> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
-        Result<MaterialCutFrame> result = new Result<MaterialCutFrame>();
-        if (ids == null || "".equals(ids.trim())) {
-            result.error500("参数不识别!");
-        } else {
-            this.materialCutFrameService.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<MaterialCutFrame> queryById(@RequestParam(name = "id", required = true) String id) {
-        Result<MaterialCutFrame> result = new Result<MaterialCutFrame>();
-        MaterialCutFrame materialCutFrame = materialCutFrameService.getById(id);
-        if (materialCutFrame == null) {
-            result.error500("未找到对应实体");
-        } else {
-            result.setResult(materialCutFrame);
-            result.setSuccess(true);
-        }
-        return result;
-    }
-
-
-    @AutoLog(value = "腾讯云抽帧按照素材创建时间筛选素材进行抽帧操作")
-    @ApiOperation(value = "腾讯云抽帧", notes = "腾讯云抽帧")
-    @GetMapping(value = "/getCosCutFrameByTime")
-    public Result getCosCutFrameByTime(@RequestParam(name = "startDate", required = true) String startDate,
-                                 @RequestParam(name = "endDate", required = true) String endDate) {
-        Result result = new Result();
-        result.setSuccess(true);
-
-        try {
-            List<MaterialInfo> materialInfos = materialInfoService.getListByDate(startDate, endDate);
-            if (!Check.isNull(materialInfos)) {
-                for (MaterialInfo materialInfo : materialInfos) {
-                    if (!Check.isNull(materialInfo)) {
-                        String code = materialInfo.getCode();
-                        materialCutFrameService.getCosCutFrame(materialInfo.getUrl(), code);
-                    }
-                }
-            }
-        }catch (Exception e){
-            log.error(e.getMessage());
-            e.printStackTrace();
-            result.setSuccess(false);
-        }
-
-        return result;
-    }
-
-    @AutoLog(value = "腾讯云抽帧--根据md5抽帧")
-    @ApiOperation(value = "腾讯云抽帧", notes = "腾讯云抽帧")
-    @GetMapping(value = "/getCosCutFrame")
-    public Result getCosCutFrame(@RequestParam(name = "code", required = true) String code) {
-        Result result = new Result();
-        result.setSuccess(true);
-
-        try {
-            MaterialInfo materialInfo = materialInfoService.getMaterialInfoByCode(code);
-            if (!Check.isNull(materialInfo)) {
-                materialCutFrameService.getCosCutFrame(materialInfo.getUrl(), code);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage());
-            e.printStackTrace();
-            result.setSuccess(false);
-        }
-
-        return result;
-    }
-
-
-    @AutoLog(value = "腾讯云抽帧--获取任务状态并将图片入库")
-    @ApiOperation(value = "腾讯云抽帧", notes = "腾讯云抽帧")
-    @GetMapping(value = "/loadCosCutFrame")
-    public Result loadCosCutFrame() {
-        Result result = new Result();
-        result.setSuccess(true);
-
-        log.info("开始抽帧定时任务");
-        QueryWrapper<MaterialCutFrameTask> taskQueryWrapper = new QueryWrapper<>();
-        taskQueryWrapper.eq("job_status", 0);
-        taskQueryWrapper.eq("cloud_type",2);  //2为腾讯云 1为阿里云
-        List<MaterialCutFrameTask> list = materialCutFrameTaskServiceTask.list(taskQueryWrapper);
-
-        if (Check.isNull(list)) {
-            result.setCode(500);
-            result.setSuccess(false);
-            return result;
-        }
-
-        ExecutorService executorService = Executors.newFixedThreadPool(5);
-        list.forEach(cutFrameTask -> {
-            executorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                    //获取广告计划信息数据
-                    materialCutFrameService.loadCosCutFrame(cutFrameTask.getJobId(), cutFrameTask.getVideoSignature());
-                    }catch (Exception e){
-                        log.error(e.getMessage());
-                        e.printStackTrace();
-                    }
-                }
-            });
-        });
-
-        return result;
-    }
-
-
-
 }

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

@@ -0,0 +1,64 @@
+package org.jeecg.modules.ctop.controller;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoAuthor;
+import cn.com.ctop.common.module.material.service.IMaterialVideoAuthorService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+
+/**
+ * 视频素材作者信息
+ */
+@Slf4j
+@RestController
+@RequestMapping("/com.cn/materialVideoAuthor")
+public class MaterialVideoAuthorController {
+	@Autowired
+	private IMaterialVideoAuthorService materialVideoAuthorService;
+
+	/**
+     * 分页列表查询
+	 */
+	@GetMapping(value = "/list")
+	public Result<IPage<MaterialVideoAuthor>> queryPageList(MaterialVideoAuthor materialVideoAuthor,
+                                                            @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                                            @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                                                            HttpServletRequest req) {
+		Result<IPage<MaterialVideoAuthor>> result = new Result<>();
+		QueryWrapper<MaterialVideoAuthor> queryWrapper = QueryGenerator.initQueryWrapper(materialVideoAuthor, req.getParameterMap());
+		Page<MaterialVideoAuthor> page = new Page<>(pageNo, pageSize);
+		IPage<MaterialVideoAuthor> pageList = materialVideoAuthorService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+     *  编辑
+	 */
+	@PostMapping(value = "/edit")
+	public Result<MaterialVideoAuthor> edit(@RequestBody MaterialVideoAuthor materialVideoAuthor) {
+		Result<MaterialVideoAuthor> result = new Result<MaterialVideoAuthor>();
+		MaterialVideoAuthor materialVideoAuthorEntity = materialVideoAuthorService.getById(materialVideoAuthor.getId());
+		if(materialVideoAuthorEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = materialVideoAuthorService.updateById(materialVideoAuthor);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+
+		return result;
+	}
+
+}

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

@@ -0,0 +1,113 @@
+package org.jeecg.modules.ctop.controller;
+
+import java.util.Arrays;
+
+import javax.servlet.http.HttpServletRequest;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoCover;
+import cn.com.ctop.common.module.material.service.IMaterialVideoCoverService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+
+import lombok.extern.slf4j.Slf4j;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * 视频素材封面信息
+ */
+@Slf4j
+@RestController
+@RequestMapping("/com.cn/materialVideoCover")
+public class MaterialVideoCoverController {
+
+	@Autowired
+	private IMaterialVideoCoverService materialVideoCoverService;
+
+	/**
+	 * 分页列表查询
+	 */
+	@GetMapping(value = "/list")
+	public Result<IPage<MaterialVideoCover>> queryPageList(MaterialVideoCover materialVideoCover,
+														   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+														   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+														   HttpServletRequest req) {
+		Result<IPage<MaterialVideoCover>> result = new Result<>();
+		QueryWrapper<MaterialVideoCover> queryWrapper = QueryGenerator.initQueryWrapper(materialVideoCover, req.getParameterMap());
+		Page<MaterialVideoCover> page = new Page<>(pageNo, pageSize);
+		IPage<MaterialVideoCover> pageList = materialVideoCoverService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	 *  编辑
+	 */
+	@PostMapping(value = "/edit")
+	public Result<MaterialVideoCover> edit(@RequestBody MaterialVideoCover materialVideoCover) {
+		Result<MaterialVideoCover> result = new Result<MaterialVideoCover>();
+		MaterialVideoCover materialVideoCoverEntity = materialVideoCoverService.getById(materialVideoCover.getId());
+		if(materialVideoCoverEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = materialVideoCoverService.updateById(materialVideoCover);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+		return result;
+	}
+
+	/**
+	 *   通过id删除
+	 */
+	@PostMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		try {
+			materialVideoCoverService.removeById(id);
+		} catch (Exception e) {
+			log.error("删除失败",e.getMessage());
+			return Result.error("删除失败!");
+		}
+		return Result.ok("删除成功!");
+	}
+
+	/**
+	 *  批量删除
+	 */
+	@ApiOperation(value="视频素材封面信息-批量删除", notes="视频素材封面信息-批量删除")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<MaterialVideoCover> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<MaterialVideoCover> result = new Result<>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.materialVideoCoverService.removeByIds(Arrays.asList(ids.split(",")));
+			result.success("删除成功!");
+		}
+		return result;
+	}
+
+	/**
+	 * 通过id查询
+	 */
+	@GetMapping(value = "/queryById")
+	public Result<MaterialVideoCover> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<MaterialVideoCover> result = new Result<>();
+		MaterialVideoCover materialVideoCover = materialVideoCoverService.getById(id);
+		if(materialVideoCover==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(materialVideoCover);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+}

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

@@ -0,0 +1,96 @@
+package org.jeecg.modules.ctop.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoFrame;
+import cn.com.ctop.common.module.material.service.IMaterialVideoFrameService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+
+import lombok.extern.slf4j.Slf4j;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+ /**
+ * 视频素材截帧信息
+ */
+@Slf4j
+@RestController
+@RequestMapping("/com.cn/materialVideoFrame")
+public class MaterialVideoFrameController {
+	@Autowired
+	private IMaterialVideoFrameService materialVideoFrameService;
+
+	/**
+	  * 分页列表查询
+	 */
+	@GetMapping(value = "/list")
+	public Result<IPage<MaterialVideoFrame>> queryPageList(MaterialVideoFrame materialVideoFrame,
+														   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+														   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+														   HttpServletRequest req) {
+		Result<IPage<MaterialVideoFrame>> result = new Result<>();
+		QueryWrapper<MaterialVideoFrame> queryWrapper = QueryGenerator.initQueryWrapper(materialVideoFrame, req.getParameterMap());
+		Page<MaterialVideoFrame> page = new Page<>(pageNo, pageSize);
+		IPage<MaterialVideoFrame> pageList = materialVideoFrameService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	 *   添加
+	 */
+	@PostMapping(value = "/add")
+	public Result<MaterialVideoFrame> add(@RequestBody MaterialVideoFrame materialVideoFrame) {
+		Result<MaterialVideoFrame> result = new Result<>();
+		try {
+			materialVideoFrameService.save(materialVideoFrame);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+	/**
+	 *  编辑
+	 */
+	@PutMapping(value = "/edit")
+	public Result<MaterialVideoFrame> edit(@RequestBody MaterialVideoFrame materialVideoFrame) {
+		Result<MaterialVideoFrame> result = new Result<MaterialVideoFrame>();
+		MaterialVideoFrame materialVideoFrameEntity = materialVideoFrameService.getById(materialVideoFrame.getId());
+		if(materialVideoFrameEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = materialVideoFrameService.updateById(materialVideoFrame);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	 * 通过id查
+	 */
+	@GetMapping(value = "/queryById")
+	public Result<MaterialVideoFrame> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<MaterialVideoFrame> result = new Result<>();
+		MaterialVideoFrame materialVideoFrame = materialVideoFrameService.getById(id);
+		if(materialVideoFrame==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(materialVideoFrame);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+}

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

@@ -0,0 +1,80 @@
+package org.jeecg.modules.ctop.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoInfo;
+import cn.com.ctop.common.module.material.service.IMaterialVideoInfoService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+
+import lombok.extern.slf4j.Slf4j;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+ /**
+ * 视频素材基础信息
+ */
+@Slf4j
+@RestController
+@RequestMapping("/com.cn/materialVideoInfo")
+public class MaterialVideoInfoController {
+	@Autowired
+	private IMaterialVideoInfoService materialVideoInfoService;
+
+	/**
+	  * 分页列表查询
+	 */
+	@GetMapping(value = "/list")
+	public Result<IPage<MaterialVideoInfo>> queryPageList(MaterialVideoInfo materialVideoInfo,
+														  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+														  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+														  HttpServletRequest req) {
+		Result<IPage<MaterialVideoInfo>> result = new Result<>();
+		QueryWrapper<MaterialVideoInfo> queryWrapper = QueryGenerator.initQueryWrapper(materialVideoInfo, req.getParameterMap());
+		Page<MaterialVideoInfo> page = new Page(pageNo, pageSize);
+		IPage<MaterialVideoInfo> pageList = materialVideoInfoService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	 *   添加
+	 */
+	@PostMapping(value = "/add")
+	public Result<MaterialVideoInfo> add(@RequestBody MaterialVideoInfo materialVideoInfo) {
+		Result<MaterialVideoInfo> result = new Result<>();
+		try {
+			materialVideoInfoService.save(materialVideoInfo);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+	/**
+	  *  编辑
+	 */
+	@PutMapping(value = "/edit")
+	public Result<MaterialVideoInfo> edit(@RequestBody MaterialVideoInfo materialVideoInfo) {
+		Result<MaterialVideoInfo> result = new Result<MaterialVideoInfo>();
+		MaterialVideoInfo materialVideoInfoEntity = materialVideoInfoService.getById(materialVideoInfo.getId());
+		if(materialVideoInfoEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = materialVideoInfoService.updateById(materialVideoInfo);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+
+		return result;
+	}
+
+}

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

@@ -0,0 +1,84 @@
+package org.jeecg.modules.ctop.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import cn.com.ctop.common.module.annotation.AutoLog;
+import cn.com.ctop.common.module.material.entity.MaterialVideoProject;
+import cn.com.ctop.common.module.material.service.IMaterialVideoProjectService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+
+import lombok.extern.slf4j.Slf4j;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * 视频素材关联项目信息
+ */
+@Slf4j
+@RestController
+@RequestMapping("/com.cn/materialVideoProject")
+public class MaterialVideoProjectController {
+
+	@Autowired
+	private IMaterialVideoProjectService materialVideoProjectService;
+
+	/**
+	  * 分页列表查询
+	 */
+	@GetMapping(value = "/list")
+	public Result<IPage<MaterialVideoProject>> queryPageList(MaterialVideoProject materialVideoProject,
+															 @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+															 @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+															 HttpServletRequest req) {
+		Result<IPage<MaterialVideoProject>> result = new Result<>();
+		QueryWrapper<MaterialVideoProject> queryWrapper = QueryGenerator.initQueryWrapper(materialVideoProject, req.getParameterMap());
+		Page<MaterialVideoProject> page = new Page<>(pageNo, pageSize);
+		IPage<MaterialVideoProject> pageList = materialVideoProjectService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	 *   添加
+	 */
+	@AutoLog(value = "视频素材关联项目信息-添加")
+	@ApiOperation(value="视频素材关联项目信息-添加", notes="视频素材关联项目信息-添加")
+	@PostMapping(value = "/add")
+	public Result<MaterialVideoProject> add(@RequestBody MaterialVideoProject materialVideoProject) {
+		Result<MaterialVideoProject> result = new Result<>();
+		try {
+			materialVideoProjectService.save(materialVideoProject);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+	/**
+	  *  编辑
+	 */
+	@PutMapping(value = "/edit")
+	public Result<MaterialVideoProject> edit(@RequestBody MaterialVideoProject materialVideoProject) {
+		Result<MaterialVideoProject> result = new Result<MaterialVideoProject>();
+		MaterialVideoProject materialVideoProjectEntity = materialVideoProjectService.getById(materialVideoProject.getId());
+		if(materialVideoProjectEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = materialVideoProjectService.updateById(materialVideoProject);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+
+		return result;
+	}
+}

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

@@ -0,0 +1,62 @@
+package org.jeecg.modules.ctop.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoWatermark;
+import cn.com.ctop.common.module.material.service.IMaterialVideoWatermarkService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+
+import lombok.extern.slf4j.Slf4j;
+
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+ /**
+ * 视频素材水印信息
+ */
+@Slf4j
+@RestController
+@RequestMapping("/com.cn/materialVideoWatermark")
+public class MaterialVideoWatermarkController {
+	@Autowired
+	private IMaterialVideoWatermarkService materialVideoWatermarkService;
+
+	/**
+	  * 分页列表查询
+	 */
+	@GetMapping(value = "/list")
+	public Result<IPage<MaterialVideoWatermark>> queryPageList(MaterialVideoWatermark materialVideoWatermark,
+															   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+															   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+															   HttpServletRequest req) {
+		Result<IPage<MaterialVideoWatermark>> result = new Result<>();
+		QueryWrapper<MaterialVideoWatermark> queryWrapper = QueryGenerator.initQueryWrapper(materialVideoWatermark, req.getParameterMap());
+		Page<MaterialVideoWatermark> page = new Page<>(pageNo, pageSize);
+		IPage<MaterialVideoWatermark> pageList = materialVideoWatermarkService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	 *   添加
+	 */
+	@PostMapping(value = "/add")
+	public Result<MaterialVideoWatermark> add(@RequestBody MaterialVideoWatermark materialVideoWatermark) {
+		Result<MaterialVideoWatermark> result = new Result<>();
+		try {
+			materialVideoWatermarkService.save(materialVideoWatermark);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+}

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/DesignerCommitProcessCtrl.java

@@ -6,6 +6,7 @@ import org.jeecg.modules.orderplatform.entity.PlatformMaterial;
 import org.jeecg.modules.orderplatform.entity.PlatformOrder;
 import org.jeecg.modules.orderplatform.service.IPlatformMaterialService;
 import org.jeecg.modules.orderplatform.service.IPlatformOrderService;
+import org.jeecg.modules.orderplatform.util.ApprovalNodeNoticeHandler;
 import org.jeecg.modules.orderplatform.util.OperateRecordHandler;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -28,6 +29,9 @@ DesignerCommitProcessCtrl {
     @Autowired
     private OperateRecordHandler operateRecordHandler;
 
+    @Autowired
+    private ApprovalNodeNoticeHandler approvalNodeNoticeHandler;
+
     /**
      * 设计组长接单,根据订单中的物料数量按类型发起物料审批流程
      */

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/OperatorApprovalProcessCtrl.java

@@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.orderplatform.entity.PlatformOrder;
 import org.jeecg.modules.orderplatform.service.IPlatformOrderService;
+import org.jeecg.modules.orderplatform.util.ApprovalNodeNoticeHandler;
 import org.jeecg.modules.orderplatform.util.OperateRecordHandler;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -24,6 +25,9 @@ public class OperatorApprovalProcessCtrl {
     @Autowired
     private OperateRecordHandler operateRecordHandler;
 
+    @Autowired
+    private ApprovalNodeNoticeHandler approvalNodeNoticeHandler;
+
     /**
      * 运营下单
      */

+ 40 - 6
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/PlatformFileCtrl.java

@@ -1,8 +1,8 @@
 package org.jeecg.modules.orderplatform.controller;
 
-import cn.com.ctop.common.module.service.IMaterialInfoService;
 import cn.com.ctop.common.module.utils.CosUtils;
 import com.alibaba.fastjson.JSONObject;
+import com.xxl.job.core.biz.model.ReturnT;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
@@ -10,6 +10,7 @@ import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.DateUtils;
 import org.jeecg.modules.orderplatform.entity.PlatformMaterial;
 import org.jeecg.modules.orderplatform.service.IPlatformMaterialService;
+import org.jeecg.modules.orderplatform.service.IPlatformVideoService;
 import org.jeecg.modules.orderplatform.util.OperateRecordHandler;
 import org.jeecg.modules.wps.entity.WpsFile;
 import org.jeecg.modules.wps.service.IWpsFileService;
@@ -31,10 +32,10 @@ import java.util.Map;
 public class PlatformFileCtrl {
 
     @Autowired
-    private IWpsFileService wpsFileService;
+    private IPlatformVideoService platformVideoService;
 
     @Autowired
-    private IMaterialInfoService materialInfoService;
+    private IWpsFileService wpsFileService;
 
     @Autowired
     private IPlatformMaterialService platformMaterialService;
@@ -110,8 +111,8 @@ public class PlatformFileCtrl {
      * 剪辑上传视频
      * Todo 在下单制正式上线后,这个接口会改造
      */
-    @PostMapping("/uploadVideo")
-    public Result<Object> uploadVideo(@RequestBody JSONObject requestBody) {
+/*    @PostMapping("/uploadVideo")
+    public Result<Object> uploadVideoOld(@RequestBody JSONObject requestBody) {
         Result<Object> result = new Result<>();
         String videoId = materialInfoService.platformUploadVideo(requestBody);
         if (videoId.isEmpty()) {
@@ -130,6 +131,39 @@ public class PlatformFileCtrl {
             }
         }
         return result;
-    }
+    }*/
 
+    /*
+     * 改造上传视频接口,视频上传后会存在下单制视频列表,审核通过后会被写入汇创思拓素材库ctop_material_video_info
+     * 下单制视频列表不会有删除操作,被驳回后标记逻辑删除
+     *  审批通过后视频关联信息被写入ctop_material_video_project、ctop_material_video_author、ctop_material_video_frame
+     *  ctop_material_video_cover、ctop_material_video_tag、ctop_material_video_watermark
+     */
+    @PostMapping("/uploadVideo")
+    public Result<Object> uploadVideo(@RequestBody JSONObject requestBody){
+        Result<Object> result = new Result<>();
+        //同一个视频不能出现在不同的物料下
+        int repeat=platformMaterialService.queryCountByMaterialAndVideo(requestBody.getString("materialCode"),requestBody.getString("md5"));
+        if(repeat>0){
+            result.error500("视频已被其他物料上传,请重新选择视频");
+            return result;
+        }
+        String videoMd5 = platformVideoService.uploadVideo(requestBody);
+        if(videoMd5.isEmpty()){
+            result.error500("素材视频上传失败,参数为空");
+        }else {
+            //物料状态->视频已上传,待审核
+            PlatformMaterial platformMaterial = new PlatformMaterial();
+            platformMaterial.setId(requestBody.getLong("materialId"));
+            platformMaterial.setMaterialStatus(5);
+            platformMaterial.setVideoStatus(1);
+            platformMaterial.setVideoId(videoMd5);
+            boolean save = platformMaterialService.updateById(platformMaterial);
+            if (save) {
+                operateRecordHandler.Submit(platformMaterialService.getById(requestBody.getString("materialId")).getMaterialCode(), "VIDEO");
+                result.success("素材视频上传成功");
+            }
+        }
+        return result;
+    }
 }

+ 20 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/PlatformMaterialCtrl.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 物料审批流程
@@ -142,6 +143,12 @@ public class PlatformMaterialCtrl {
     @PostMapping(value = "/video/accept")
     public Result<Object> acceptVideo(@RequestBody PlatformMaterial platformMaterial) {
         Result<Object> result = new Result<>();
+        //视频通过同步到素材库
+        boolean sync = platformMaterialService.syncVideo2CTopMaterial(platformMaterial);
+        if(!sync){
+            result.error500("视频同步素材库失败");
+            return result;
+        }
         //物料状态->视频审核通过
         platformMaterial.setMaterialStatus(7);
         platformMaterial.setVideoStatus(3);
@@ -152,7 +159,7 @@ public class PlatformMaterialCtrl {
             if (order) {
                 operateRecordHandler.Approval(platformMaterial.getMaterialCode(),"ACCEPT_VIDEO");
                 //修改素材库审核状态
-                platformMaterialService.updateMaterialStatusById(platformMaterial.getVideoId());
+                //platformMaterialService.updateMaterialStatusById(platformMaterial.getVideoId());
                 result.success("视频审核通过!");
             }
         } else {
@@ -190,4 +197,16 @@ public class PlatformMaterialCtrl {
         return result;
     }
 
+    /**
+     *  视频修改回显
+     */
+    @GetMapping(value = "/videoEcho")
+    public Result<Map<String,Object>> videoEcho(String videoId) {
+        Result<Map<String,Object>> result = new Result<>();
+        Map<String,Object> scriptDetail = platformMaterialService.videoEcho(videoId);
+        result.setResult(scriptDetail);
+        result.setSuccess(true);
+        return result;
+    }
+
 }

+ 124 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/PlatformScriptController.java

@@ -0,0 +1,124 @@
+package org.jeecg.modules.orderplatform.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.orderplatform.entity.PlatformScript;
+import org.jeecg.modules.orderplatform.service.IPlatformScriptService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+
+/**
+ * 下单平台关联脚本
+ */
+@Slf4j
+@RestController
+@RequestMapping("/com.cn/platformScript")
+public class PlatformScriptController {
+	@Autowired
+	private IPlatformScriptService platformScriptService;
+
+	/**
+	 * 分页列表查询
+	 */
+	@GetMapping(value = "/list")
+	public Result<IPage<PlatformScript>> queryPageList(PlatformScript platformScript,
+													   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+													   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+													   HttpServletRequest req) {
+		Result<IPage<PlatformScript>> result = new Result<>();
+		QueryWrapper<PlatformScript> queryWrapper = QueryGenerator.initQueryWrapper(platformScript, req.getParameterMap());
+		Page<PlatformScript> page = new Page<>(pageNo, pageSize);
+		IPage<PlatformScript> pageList = platformScriptService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	 *   添加
+	 */
+	@PostMapping(value = "/add")
+	public Result<PlatformScript> add(@RequestBody PlatformScript platformScript) {
+		Result<PlatformScript> result = new Result<>();
+		try {
+			platformScriptService.save(platformScript);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+	/**
+	 *  编辑
+	 */
+	@PostMapping(value = "/edit")
+	public Result<PlatformScript> edit(@RequestBody PlatformScript platformScript) {
+		Result<PlatformScript> result = new Result<PlatformScript>();
+		PlatformScript platformScriptEntity = platformScriptService.getById(platformScript.getId());
+		if(platformScriptEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = platformScriptService.updateById(platformScript);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	 * 通过id删除
+	 */
+	@PostMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		try {
+			platformScriptService.removeById(id);
+		} catch (Exception e) {
+			log.error("删除失败",e.getMessage());
+			return Result.error("删除失败!");
+		}
+		return Result.ok("删除成功!");
+	}
+
+	/**
+	 *  批量删除
+	 */
+	@PostMapping(value = "/deleteBatch")
+	public Result<PlatformScript> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<PlatformScript> result = new Result<>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.platformScriptService.removeByIds(Arrays.asList(ids.split(",")));
+			result.success("删除成功!");
+		}
+		return result;
+	}
+
+	/**
+	 * 通过id查询
+	 */
+	@GetMapping(value = "/queryById")
+	public Result<PlatformScript> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<PlatformScript> result = new Result<>();
+		PlatformScript platformScript = platformScriptService.getById(id);
+		if(platformScript==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(platformScript);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+}

+ 76 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/PlatformVideoController.java

@@ -0,0 +1,76 @@
+package org.jeecg.modules.orderplatform.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.orderplatform.entity.PlatformVideo;
+import org.jeecg.modules.orderplatform.service.IPlatformVideoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+
+/**
+  * 下单平台关联视频
+  */
+@Slf4j
+@RestController
+@RequestMapping("/platformVideo")
+public class PlatformVideoController {
+
+	@Autowired
+	private IPlatformVideoService platformVideoService;
+
+	@PostMapping(value = "/updateVideo")
+	public Result<PlatformVideo> add(@RequestBody PlatformVideo platformVideo) {
+		Result<PlatformVideo> result = new Result<>();
+		try {
+			platformVideoService.save(platformVideo);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+
+	/**
+	 *  通过id删除
+	 */
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam Integer id) {
+		try {
+			PlatformVideo  platformVideo=new PlatformVideo();
+			platformVideo.setId(id);
+			platformVideo.setIsDelete(1);
+			boolean result = platformVideoService.updateById(platformVideo);
+		} catch (Exception e) {
+			log.error("删除失败",e.getMessage());
+			return Result.error("删除失败!");
+		}
+		return Result.ok("删除成功!");
+	}
+
+
+	/**
+	 * 通过id查询
+	 */
+	@GetMapping(value = "/queryById")
+	public Result<PlatformVideo> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<PlatformVideo> result = new Result<>();
+		PlatformVideo platformVideo = platformVideoService.getById(id);
+		if(platformVideo==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(platformVideo);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+}

+ 30 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/controller/声声慢

@@ -0,0 +1,30 @@
+青砖伴瓦漆
+白马踏新泥
+山花蕉叶暮色丛染红巾
+屋檐洒雨滴
+炊烟袅袅起
+蹉跎辗转宛然的你在哪里
+寻寻觅觅
+冷冷清清
+月落乌啼月牙落孤井
+零零碎碎
+点点滴滴
+梦里有花梦里青草地
+长发引涟漪
+白布展石矶
+河童撑杆摆长舟渡古稀
+屋檐洒雨滴
+炊烟袅袅起
+蹉跎辗转宛然的你在哪里
+寻寻觅觅
+冷冷清清
+月落乌啼月牙落孤井
+零零碎碎
+点点滴滴
+梦里有花梦里青草地
+青砖伴瓦漆
+白马踏新泥
+山花蕉叶暮色丛染红巾
+屋檐洒雨滴
+炊烟袅袅起
+蹉跎辗转宛然的你在哪里

+ 41 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/entity/PlatformScript.java

@@ -0,0 +1,41 @@
+package org.jeecg.modules.orderplatform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+
+/**
+ * 下单平台关联脚本
+ */
+@Data
+@TableName("ctop_platform_script")
+public class PlatformScript {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private String id;
+	/**name*/
+	private String name;
+	/**version*/
+	private Integer version;
+	/**size*/
+	private Integer size;
+	/**creator*/
+	private String creator;
+	/**createTime*/
+	private Integer createTime;
+	/**modifier*/
+	private String modifier;
+	/**modifyTime*/
+	private Integer modifyTime;
+	/**downloadUrl*/
+	private Object downloadUrl;
+	/**projectId*/
+	private Integer projectId;
+	/**deleted*/
+	private String deleted;
+	/**canDelete*/
+	private String canDelete;
+}

+ 46 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/entity/PlatformVideo.java

@@ -0,0 +1,46 @@
+package org.jeecg.modules.orderplatform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 下单平台关联视频
+ */
+@Data
+@TableName("ctop_platform_video")
+public class PlatformVideo {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Integer id;
+	/**物料code*/
+	private String materialCode;
+	/**物料code*/
+	private String name;
+	/**视频md5*/
+	private String md5;
+	/**视频url*/
+	private String url;
+	/**封面url*/
+	private String coverUrl;
+	/**视频描述*/
+	private String description;
+	/**格式*/
+	private String format;
+	/**时长(秒)*/
+	private Integer duration;
+	/**大小(kb)*/
+	private Integer size;
+	/**高*/
+	private Integer height;
+	/**宽*/
+	private Integer width;
+	/**是否已删除*/
+	private Integer isDelete;
+	/**createTime*/
+	private Date createTime;
+}

+ 6 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/mapper/PlatformMaterialMapper.java

@@ -18,13 +18,17 @@ public interface PlatformMaterialMapper extends BaseMapper<PlatformMaterial> {
 
     List<JSONObject> queryMaterialsByDesignUserId(@Param("materialStatus") JSONArray materialStatus, @Param("designUserId") String designUserId);
 
-    //指派的物料
+    //指派的物料
     List<JSONObject> queryMaterialsByDesignLeader(@Param("materialStatus") JSONArray materialStatus, @Param("designLeader") String designLeader);
 
     List<JSONObject> queryMaterialsByOperatorUserId(@Param("operatorUserId") String designUserId);
 
     JSONObject queryScriptDetailById(@Param("scriptId") String scriptId);
 
-    JSONObject queryVideoDetailById(@Param("videoId") String videoId);
+    JSONObject queryVideoDetailById(@Param("md5") String md5);
+
+    PlatformMaterial queryByCode(@Param("materialCode") String materialCode);
+
+    int queryCountByMaterialAndVideo(@Param("materialCode") String materialCode,@Param("videoMd5") String videoMd5);
 
 }

+ 11 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/mapper/PlatformScriptMapper.java

@@ -0,0 +1,11 @@
+package org.jeecg.modules.orderplatform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.orderplatform.entity.PlatformScript;
+
+/**
+ * 下单平台关联脚本
+ */
+public interface PlatformScriptMapper extends BaseMapper<PlatformScript> {
+
+}

+ 14 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/mapper/PlatformVideoMapper.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.orderplatform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.orderplatform.entity.PlatformVideo;
+
+/**
+ * 下单平台关联
+ */
+public interface PlatformVideoMapper extends BaseMapper<PlatformVideo> {
+
+    int deleteByMd5(@Param("md5") String  md5);
+
+}

+ 33 - 15
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/mapper/xml/PlatformMaterialMapper.xml

@@ -144,25 +144,43 @@
 
     <select id="queryVideoDetailById" resultType="com.alibaba.fastjson.JSONObject">
         SELECT
-            t.code,
+            t.md5,
             t.url,
             t1.video_id as videoId,
             t1.video_status as videoStatus,
             t1.video_advise as videoAdvise,
-            t2.second,
-            t2.width,
-            t2.height,
-            t2.size,
-            (SELECT realname from sys_user where id=t3.clip_id limit 1) as clipName,
-            (SELECT realname from sys_user where id=t3.shot_id limit 1) as shotName,
-            (SELECT realname from sys_user where id=t3.plan_id limit 1) as planName,
-            (SELECT GROUP_CONCAT(tag_name) from ctop_material_tag_info where code=t.code) as tag,
-            (SELECT GROUP_CONCAT(url) from ctop_material_image_info where video_id=t.code) as imageUrl
+            t.duration,
+            t.width,
+            t.height,
+            t.size,
+            t1.project_id as projectId,
+            t1.clip,
+            t1.shot,
+            t1.plan,
+            (SELECT realname from sys_user where id=t1.clip limit 1) as clipName,
+            (SELECT realname from sys_user where id=t1.shot limit 1) as shotName,
+            (SELECT realname from sys_user where id=t1.plan limit 1) as planName,
+            (SELECT GROUP_CONCAT(tag_name) from ctop_material_tag_info where code=t.md5 and status=1) as tag,
+            (SELECT GROUP_CONCAT(url) from ctop_material_video_cover where video_md5=t.md5) as imageUrl
         FROM
-            ctop_material_info t
-                LEFT JOIN  ctop_platform_material t1 on t.id=t1.video_id
-                LEFT JOIN  ctop_material_parameter t2 ON t. CODE = t2.material_id
-                left join  ctop_material_ascription t3 on t.code=t3. material_id
-        where t.id=#{videoId}
+            ctop_platform_video t
+                LEFT JOIN  ctop_platform_material t1 on t.md5=t1.video_id
+        where t.md5=#{md5}
+          and t.is_delete=0
+        limit 1
+    </select>
+
+    <select id="queryByCode" resultType="org.jeecg.modules.orderplatform.entity.PlatformMaterial">
+        select * from ctop_platform_material where material_code=#{materialCode}
+    </select>
+
+    <select id="queryCountByMaterialAndVideo" resultType="java.lang.Integer">
+        SELECT
+            count(id)
+        FROM
+            ctop_platform_material
+        WHERE
+            material_code != #{materialCode}
+          AND video_id = #{videoMd5}
     </select>
 </mapper>

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

+ 13 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/mapper/xml/PlatformVideoMapper.xml

@@ -0,0 +1,13 @@
+<?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.orderplatform.mapper.PlatformVideoMapper">
+
+    <update id="deleteByMd5" >
+        UPDATE
+            ctop_platform_video
+        SET is_delete = 1
+        WHERE
+            md5 = #{md5}
+    </update>
+
+</mapper>

+ 14 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/service/IPlatformMaterialService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.orderplatform.entity.PlatformMaterial;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 物料审批流程
@@ -36,8 +37,19 @@ public interface IPlatformMaterialService extends IService<PlatformMaterial> {
     JSONObject queryVideoDetailById(String videoId);
 
     /**
-     *  视频审核通过后修改素材库审核状态
+     *  查询上传视频是否出现在其他物料中
      */
-    void updateMaterialStatusById(String id);
+    int queryCountByMaterialAndVideo(String  materialCode, String videoMd5);
+    /**
+     *  同步视频到汇创素材库(包括关联的项目)
+     */
+    boolean syncVideo2CTopMaterial(PlatformMaterial platformMaterial);
+
+    /**
+     *  视频驳回编辑回显
+     */
+    Map<String,Object> videoEcho(String videoId);
+
+
 
 }

+ 11 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/service/IPlatformScriptService.java

@@ -0,0 +1,11 @@
+package org.jeecg.modules.orderplatform.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.orderplatform.entity.PlatformScript;
+
+/**
+ *  下单平台关联脚本
+ */
+public interface IPlatformScriptService extends IService<PlatformScript> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.orderplatform.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.orderplatform.entity.PlatformVideo;
+
+/**
+ *  下单平台关联视频
+ */
+public interface IPlatformVideoService extends IService<PlatformVideo> {
+
+    String uploadVideo (JSONObject params);
+
+}

+ 160 - 13
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/service/impl/PlatformMaterialServiceImpl.java

@@ -1,19 +1,32 @@
 package org.jeecg.modules.orderplatform.service.impl;
 
-import cn.com.ctop.common.module.entity.MaterialInfo;
-import cn.com.ctop.common.module.service.IMaterialInfoService;
+import cn.com.ctop.common.module.entity.MaterialTagInfo;
+import cn.com.ctop.common.module.material.entity.MaterialVideoAuthor;
+import cn.com.ctop.common.module.material.entity.MaterialVideoCover;
+import cn.com.ctop.common.module.material.entity.MaterialVideoInfo;
+import cn.com.ctop.common.module.material.entity.MaterialVideoProject;
+import cn.com.ctop.common.module.material.service.*;
+import cn.com.ctop.common.module.service.IMaterialCutFrameService;
+import cn.com.ctop.common.module.service.IMaterialTagInfoService;
+import cn.com.ctop.common.module.service.IProjectService;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.modules.orderplatform.entity.PlatformMaterial;
+import org.jeecg.modules.orderplatform.entity.PlatformVideo;
 import org.jeecg.modules.orderplatform.mapper.PlatformMaterialMapper;
 import org.jeecg.modules.orderplatform.service.IPlatformMaterialService;
+import org.jeecg.modules.orderplatform.service.IPlatformVideoService;
 import org.jeecg.modules.orderplatform.util.JsonArrayUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.net.URLDecoder;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 物料审批流程
@@ -25,16 +38,40 @@ public class PlatformMaterialServiceImpl extends ServiceImpl<PlatformMaterialMap
     PlatformMaterialMapper platformMaterialMapper;
 
     @Autowired
-    IMaterialInfoService materialInfoService;
+    IPlatformVideoService platformVideoService;
+
+    @Autowired
+    IMaterialVideoInfoService materialVideoInfoService;
+
+    @Autowired
+    IMaterialVideoCoverService materialVideoCoverService;
+
+    @Autowired
+    IMaterialTagInfoService materialTagInfoService;
+
+    @Autowired
+    IMaterialVideoAuthorService materialVideoAuthorService;
+
+    @Autowired
+    IMaterialVideoProjectService materialVideoProjectService;
+
+    @Autowired
+    IMaterialVideoFrameService materialVideoFrameService;
+
+    @Autowired
+    IMaterialCutFrameService materialCutFrameService;
+
+    @Autowired
+    IProjectService projectService;
 
     @Override
     public List<JSONObject> queryMaterialsByDesignUserId(String materialStatus, String designUserId) {
         JSONArray materialStatusJsonArray = JsonArrayUtil.Varchar2JSONArray(materialStatus);
-        List<JSONObject> result=new ArrayList<>();
-        if(materialStatus.equals("0")){
-            result=platformMaterialMapper.queryMaterialsByDesignLeader(materialStatusJsonArray,designUserId);
-        }else {
-            result=platformMaterialMapper.queryMaterialsByDesignUserId(materialStatusJsonArray, designUserId);
+        List<JSONObject> result = new ArrayList<>();
+        if (materialStatus.equals("0")) {
+            result = platformMaterialMapper.queryMaterialsByDesignLeader(materialStatusJsonArray, designUserId);
+        } else {
+            result = platformMaterialMapper.queryMaterialsByDesignUserId(materialStatusJsonArray, designUserId);
         }
         return result;
     }
@@ -55,10 +92,120 @@ public class PlatformMaterialServiceImpl extends ServiceImpl<PlatformMaterialMap
     }
 
     @Override
-    public void updateMaterialStatusById(String id) {
-        MaterialInfo materialInfo = new MaterialInfo();
-        materialInfo.setId(id);
-        materialInfo.setStatus(1);
-        materialInfoService.updateById(materialInfo);
+    public int queryCountByMaterialAndVideo(String materialCode, String videoMd5) {
+
+        return platformMaterialMapper.queryCountByMaterialAndVideo(materialCode, videoMd5);
+    }
+
+    @Override
+    public boolean syncVideo2CTopMaterial(PlatformMaterial platformMaterial) {
+        boolean result=false;
+        //step1: 查询下单制物料、视频信息
+        QueryWrapper<PlatformVideo> wrapperPV = new QueryWrapper<>();
+        wrapperPV.eq("md5", platformMaterial.getVideoId());
+        wrapperPV.eq("is_delete", 0);
+        PlatformVideo video = platformVideoService.getOne(wrapperPV);
+        //查询物料信息
+        QueryWrapper<PlatformMaterial> wrapper = new QueryWrapper<>();
+        wrapper.eq("material_code", platformMaterial.getMaterialCode());
+        platformMaterial= this.getOne(wrapper);
+        boolean mv = materialVideoInfoHandle(video, platformMaterial.getMaterialType(), projectService.getSupplierCodeById(platformMaterial.getProjectId()));
+        if(mv){
+            result = materialVideoCorrelateHandle(video.getMd5());
+            if(result){
+                //启动截帧
+                materialCutFrameHandle(video);
+            }
+        }else {
+            materialVideoInfoService.deleteByMd5(video.getMd5());
+        }
+        return result;
+    }
+
+    @Override
+    public Map<String, Object> videoEcho(String videoId) {
+        Map<String, Object> result = new HashMap<>();
+        QueryWrapper<PlatformVideo> wrapperPV = new QueryWrapper<>();
+        wrapperPV.eq("md5", videoId);
+        wrapperPV.eq("is_delete", 0);
+        result.put("video", platformVideoService.getOne(wrapperPV));
+        QueryWrapper<MaterialVideoCover> wrapperMVC = new QueryWrapper<>();
+        wrapperMVC.eq("video_md5", videoId);
+        result.put("covers", materialVideoCoverService.list(wrapperMVC));
+        MaterialTagInfo materialTagInfo = new MaterialTagInfo();
+        materialTagInfo.setCode(videoId);
+        materialTagInfo.setStatus(1);
+        result.put("tags", materialTagInfoService.getTagDetail(materialTagInfo));
+        return result;
+    }
+
+    /**
+     * 同步素材视频
+     */
+    private boolean materialVideoInfoHandle(PlatformVideo platformVideo, int materialType, String supplierCode) {
+
+        MaterialVideoInfo materialVideoInfo = new MaterialVideoInfo();
+        materialVideoInfo.setName(platformVideo.getName());
+        materialVideoInfo.setMd5(platformVideo.getMd5());
+        materialVideoInfo.setUrl(platformVideo.getUrl());
+        materialVideoInfo.setCoverUrl(platformVideo.getCoverUrl());
+        materialVideoInfo.setMaterialType(materialType);
+        materialVideoInfo.setSupplierCode(supplierCode);
+        materialVideoInfo.setDescription(platformVideo.getDescription());
+        materialVideoInfo.setFormat(platformVideo.getFormat());
+        materialVideoInfo.setDuration(platformVideo.getDuration());
+        materialVideoInfo.setSize(platformVideo.getSize());
+        materialVideoInfo.setHeight(platformVideo.getHeight());
+        materialVideoInfo.setWidth(platformVideo.getWidth());
+        //先验证是否有重复
+        materialVideoInfoService.deleteByMd5(platformVideo.getMd5());
+        //再同步视频
+        return materialVideoInfoService.save(materialVideoInfo);
+    }
+
+    /**
+     * 保存视频素材关联项目、作者信息
+     */
+    private boolean materialVideoCorrelateHandle(String videoMd5) {
+
+        JSONObject videoDetail = platformMaterialMapper.queryVideoDetailById(videoMd5);
+        //项目绑定
+        MaterialVideoProject materialVideoProject = new MaterialVideoProject();
+        materialVideoProject.setProjectId(videoDetail.getLong("projectId"));
+        materialVideoProject.setVideoMd5(videoMd5);
+        //作者信息绑定
+        MaterialVideoAuthor materialVideoAuthor = new MaterialVideoAuthor();
+        materialVideoAuthor.setVideoMd5(videoMd5);
+        materialVideoAuthor.setClipId(videoDetail.getString("clip"));
+        materialVideoAuthor.setClipName(videoDetail.getString("clipName"));
+        materialVideoAuthor.setShotId(videoDetail.getString("shot"));
+        materialVideoAuthor.setShotName(videoDetail.getString("shotName"));
+        materialVideoAuthor.setPlanId(videoDetail.getString("plan"));
+        materialVideoAuthor.setPlanName(videoDetail.getString("planName"));
+        materialVideoAuthor.setPlaneId(videoDetail.getString("plane"));
+        materialVideoAuthor.setPlaneName(videoDetail.getString("plane_name"));
+
+        return materialVideoProjectService.save(materialVideoProject) && materialVideoAuthorService.save(materialVideoAuthor);
+    }
+
+    /**
+     * 开启截帧任务
+     */
+    private void materialCutFrameHandle(PlatformVideo platformVideo) {
+        int cutFrame = materialVideoFrameService.getFrameCountByCode(platformVideo.getMd5());
+        if (cutFrame == 0) {
+            String videoUrl = URLDecoder.decode(platformVideo.getUrl()).replace("https://media-1301855440.cos.ap-chongqing.myqcloud.com/", "");
+            Thread thread = new Thread() {
+                @Override
+                public void run() {
+                    try {
+                        materialVideoFrameService.getTencentCutFrame(videoUrl, platformVideo.getMd5(), platformVideo.getCoverUrl());
+                    } catch (Exception e) {
+                        log.error("智能抽帧任务失败,视频md5:" + platformVideo.getMd5());
+                    }
+                }
+            };
+            thread.start();
+        }
     }
 }

+ 15 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/service/impl/PlatformScriptServiceImpl.java

@@ -0,0 +1,15 @@
+package org.jeecg.modules.orderplatform.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.orderplatform.entity.PlatformScript;
+import org.jeecg.modules.orderplatform.mapper.PlatformScriptMapper;
+import org.jeecg.modules.orderplatform.service.IPlatformScriptService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 下单平台关联脚本
+ */
+@Service
+public class PlatformScriptServiceImpl extends ServiceImpl<PlatformScriptMapper, PlatformScript> implements IPlatformScriptService {
+
+}

+ 146 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/service/impl/PlatformVideoServiceImpl.java

@@ -0,0 +1,146 @@
+package org.jeecg.modules.orderplatform.service.impl;
+
+import cn.com.ctop.common.module.entity.*;
+import cn.com.ctop.common.module.material.entity.MaterialVideoCover;
+import cn.com.ctop.common.module.material.service.IMaterialVideoCoverService;
+import cn.com.ctop.common.module.service.IMaterialTagInfoService;
+import cn.com.ctop.common.module.service.ITagInfoService;
+import cn.com.ctop.common.module.utils.CloudVideoProcessUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import org.jeecg.modules.orderplatform.entity.PlatformVideo;
+import org.jeecg.modules.orderplatform.mapper.PlatformMaterialMapper;
+import org.jeecg.modules.orderplatform.mapper.PlatformVideoMapper;
+import org.jeecg.modules.orderplatform.service.IPlatformVideoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.net.URLDecoder;
+import java.util.Map;
+
+
+/**
+ * 下单平台关联视频
+ */
+@Service
+public class PlatformVideoServiceImpl extends ServiceImpl<PlatformVideoMapper, PlatformVideo> implements IPlatformVideoService {
+
+    @Autowired
+    IMaterialVideoCoverService materialVideoCoverService;
+
+    @Autowired
+    IMaterialTagInfoService materialTagInfoService;
+
+    @Autowired
+    private ITagInfoService tagInfoService;
+
+    @Autowired
+    PlatformMaterialMapper platformMaterialMapper;
+
+    @Autowired
+    PlatformVideoMapper platformVideoMapper;
+
+    @Override
+    public String uploadVideo(JSONObject params) {
+        String md5 = params.getString("md5");
+        if (null == md5 || md5.isEmpty()) {
+            return "";
+        }
+        //入库下单制视频库
+        boolean result = videoHandle(params);
+        if (result) {
+            //封面入库
+            coverHandler(params);
+            //标签相关入库
+            tagHandler(params);
+            return md5;
+        }
+        return "";
+    }
+
+    /**
+     * 视频入库
+     */
+    private boolean videoHandle(JSONObject params) {
+
+        PlatformVideo platformVideo = new PlatformVideo();
+        //查询视频关联的物料信息
+        platformVideo.setMaterialCode(params.getString("materialCode"));
+        platformVideo.setName(params.getString("name"));
+        platformVideo.setMd5(params.getString("md5"));
+        platformVideo.setUrl(params.getString("url") == null ? "" : "https:" + params.getString("url"));
+        platformVideo.setCoverUrl(getFirstFrame(platformVideo.getUrl(), params.getString("md5")));
+        platformVideo.setDescription(params.getString("description"));
+        platformVideo.setFormat(params.getString("format"));
+        platformVideo.setDuration(params.getInteger("duration"));
+        platformVideo.setSize(params.getInteger("size"));
+        platformVideo.setHeight(params.getInteger("height"));
+        platformVideo.setWidth(params.getInteger("width"));
+
+        //查看是否已有
+        platformVideoMapper.deleteByMd5(params.getString("md5"));
+
+        return this.save(platformVideo);
+    }
+
+    /**
+     * 封面处理
+     */
+    private void coverHandler(JSONObject params) {
+        //删除以重复
+        materialVideoCoverService.deleteByVideoMd5(params.getString("md5"));
+        JSONArray covers = params.getJSONArray("covers");
+        String videoMd5 = params.getString("md5");
+        covers.forEach(cover -> {
+            insertCover((Map)cover, videoMd5);
+        });
+    }
+
+    private void insertCover(Map<String,Object> cover, String videoMd5) {
+        MaterialVideoCover materialVideoCover = new MaterialVideoCover();
+        materialVideoCover.setVideoMd5(videoMd5);
+        materialVideoCover.setName(cover.get("name").toString());
+        materialVideoCover.setMd5(cover.get("md5").toString());
+        materialVideoCover.setUrl(cover.get("url").toString());
+        materialVideoCover.setFormat(cover.get("format").toString());
+        materialVideoCover.setSize((int) cover.get("size"));
+        materialVideoCover.setHeight((int) cover.get("height"));
+        materialVideoCover.setWidth((int)cover.get("width"));
+        materialVideoCoverService.save(materialVideoCover);
+    }
+
+    /**
+     * 标签处理
+     */
+    private void tagHandler(JSONObject params) {
+        //处理标签。延续之前的逻辑,每次上传视频先删后加
+        materialTagInfoService.deleteByCode(params.getString("md5"));
+        insertTagList(params.getString("md5"), params.getString("userId"), params.getJSONArray("modalityTagList"));
+        insertTagList(params.getString("md5"), params.getString("userId"), params.getJSONArray("contentTagList"));
+        insertTagList(params.getString("md5"), params.getString("userId"), params.getJSONArray("senceTagList"));
+        insertTagList(params.getString("md5"), params.getString("userId"), params.getJSONArray("modTagList"));
+    }
+
+    private void insertTagList(String code, String userId, JSONArray tagList) {
+        if (null != tagList && !tagList.isEmpty()) {
+            for (int m = 0; m < tagList.size(); m++) {
+                Long tagId = tagList.getLong(m);
+                TagInfo tagInfo = tagInfoService.getById(tagId);
+                MaterialTagInfo setTag = new MaterialTagInfo(code, tagInfo, userId);
+                setTag.setCategoryId(tagInfo.getTagCategoryId());
+                materialTagInfoService.save(setTag);
+            }
+        }
+    }
+
+    /**
+     * 获取视频首帧封面
+     */
+    private String getFirstFrame(String initialUrl, String videoMd5) {
+        String decoderUrl = URLDecoder.decode(initialUrl).replace("https://media-1301855440.cos.ap-chongqing.myqcloud.com/", "");
+        String loadImage = "cutFrame/" + videoMd5 + "/zero.jpg";
+        return CloudVideoProcessUtil.videoCutPictureHandle(decoderUrl, loadImage);
+    }
+}

+ 95 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/orderplatform/util/ApprovalNodeNoticeHandler.java

@@ -0,0 +1,95 @@
+package org.jeecg.modules.orderplatform.util;
+
+import cn.com.ctop.common.module.mapper.MailLogMapper;
+import cn.com.ctop.common.module.utils.CorpWexinUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.modules.orderplatform.entity.PlatformMaterial;
+import org.jeecg.modules.orderplatform.service.IPlatformMaterialService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+@Slf4j
+@Service
+public class ApprovalNodeNoticeHandler {
+
+    @Autowired
+    MailLogMapper mailLogMapper;
+
+    @Autowired
+    IPlatformMaterialService platformMaterialService;
+
+    /**
+     * 审批节点发送
+     */
+    public void notice(String operate, Set<String> acceptor) {
+        switch (operate) {
+            //设计组长接单,暂时不通知
+            case "ACCEPT_ORDER":
+                sendWeChat(acceptor, "您发起的订单接单成功");
+                break;
+            //设计组长驳回订单,通知下单运营订单已被驳回
+            case "REJECT_ORDER":
+                sendWeChat(acceptor, "您有订单被驳回,请前往汇创平台处理");
+                break;
+            //脚本审批通过,通知剪辑上传视频
+            case "ACCEPT_SCRIPT":
+                sendWeChat(acceptor, "有物料需要您上传视频,请前往汇创平台处理");
+                break;
+            //脚本被驳回,通知编导重新上传脚本
+            case "REJECT_SCRIPT":
+                sendWeChat(acceptor, "您上传的脚本被驳回,请前往汇创平台处理");
+                break;
+            //视频通过暂不通知
+            case "ACCEPT_VIDEO":
+                sendWeChat(acceptor, "审批通过了视频,请前往汇创平台处理");
+                break;
+            //视频被驳回,通知剪辑重新上传视频
+            case "REJECT_VIDEO":
+                sendWeChat(acceptor, "您上传的视频被驳回,请前往汇创平台处理");
+                break;
+            //运营下单,通知设计组长接单派单
+            case "PAYOUT":
+                sendWeChat(acceptor, "有一个订单需要您审批,请前往汇创平台处理");
+                break;
+            //设计上传脚本,通知运营审核
+            case "SCRIPT":
+                sendWeChat(acceptor, "有一个脚本需要您审批,请前往汇创平台处理");
+                break;
+            //设计上传视频,通知运营审核
+            case "VIDEO":
+                sendWeChat(acceptor, "有一个视频需要您审批,请前往汇创平台处理");
+                break;
+        }
+    }
+
+    /**
+     *  查询消息接收者
+     */
+    private Map<String, Map<String,String>> relatePerson(String orderCode,String materialCode){
+        Map<String,Map<String,String>> result= new HashMap<>();
+        if(materialCode.isEmpty()){
+
+        }else {
+
+        }
+        return result;
+    }
+    /**
+     *  发送通知消息到企业微信
+     */
+    private void sendWeChat(Set<String> users, String message) {
+        users.forEach(userId->{
+            String weChatId = mailLogMapper.getWChatIdByUserId(userId);
+            if (weChatId.isEmpty()) {
+                log.error(String.format("User WeChat not found. userId =%s", userId));
+                //TODO 通知管理员添加邮箱
+            } else {
+                CorpWexinUtils.sendMessageByWeChatId(weChatId, message);
+            }
+        });
+    }
+}

+ 6 - 6
module-check/src/main/java/cn/com/ctop/notice/handler/SendWeChatHandle.java

@@ -20,13 +20,13 @@ public class SendWeChatHandle {
     public void sendWeChatByMail(String mail,String message){
         String weChatId=mailLogMapper.getWeChatByMail(mail);
         if(weChatId.isEmpty()){
-            log.error(String.format("mail's WeChat not found. mail =%s", mail));
-            //TODO 通知管理员添加邮箱
-        }else{
-            List<String> messageList= splitMessage(message);
-            messageList.forEach(it->CorpWexinUtils.sendMessageByWeChatId(weChatId,it));
-        }
+        log.error(String.format("mail's WeChat not found. mail =%s", mail));
+        //TODO 通知管理员添加邮箱
+    }else{
+        List<String> messageList= splitMessage(message);
+        messageList.forEach(it->CorpWexinUtils.sendMessageByWeChatId(weChatId,it));
     }
+}
 
     /**
      * 发送多人,邮箱逗号隔开

+ 2 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/ProjectMapper.java

@@ -17,4 +17,6 @@ public interface ProjectMapper extends BaseMapper<Project> {
     String getNameByAccountId(@Param("accountId") Long accountId);
 
     JSONObject getWarningInfoByProjectId(@Param("projectId") Long projectId);
+
+    String querySupplierCodeById(@Param("projectId") Long projectId);
 }

+ 4 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/ProjectMapper.xml

@@ -21,4 +21,8 @@
      where id = #{projectId}
     </select>
 
+    <select id="querySupplierCodeById" resultType="java.lang.String">
+        select supplier_code from ctop_project where id=#{projectId}
+    </select>
+
 </mapper>

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

@@ -0,0 +1,46 @@
+package cn.com.ctop.common.module.material.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 视频素材作者信息
+ */
+@Data
+@TableName("ctop_material_video_author")
+public class MaterialVideoAuthor {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Integer id;
+	/**视频md5*/
+	private String videoMd5;
+	/**运营id*/
+	private String operatorId;
+	/**运营姓名*/
+	private String operatorName;
+	/**剪辑id*/
+	private String clipId;
+	/**剪辑姓名*/
+	private String clipName;
+	/**拍摄id*/
+	private String shotId;
+	/**拍摄姓名*/
+	private String shotName;
+	/**编导id*/
+	private String planId;
+	/**编导姓名*/
+	private String planName;
+	/**平面id*/
+	private String planeId;
+	/**平面姓名*/
+	private String planeName;
+	/**createTime*/
+	private Date createTime;
+	/**updateTime*/
+	private Date updateTime;
+}

+ 40 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/entity/MaterialVideoCover.java

@@ -0,0 +1,40 @@
+package cn.com.ctop.common.module.material.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 视频素材封面信息
+ */
+@Data
+@TableName("ctop_material_video_cover")
+public class MaterialVideoCover {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Integer id;
+	/**视频md5*/
+	private String videoMd5;
+	/**封面名称*/
+	private String name;
+	/**封面唯一标识*/
+	private String md5;
+	/**封面url地址*/
+	private String url;
+	/**封面描述*/
+	private String description;
+	/**格式*/
+	private String format;
+	/**大小(kb)*/
+	private Integer size;
+	/**高*/
+	private Integer height;
+	/**宽*/
+	private Integer width;
+	/**createTime*/
+	private Date createTime;
+}

+ 30 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/entity/MaterialVideoFrame.java

@@ -0,0 +1,30 @@
+package cn.com.ctop.common.module.material.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 视频素材截帧信息
+ */
+@Data
+@TableName("ctop_material_video_frame")
+public class MaterialVideoFrame {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Integer id;
+	/**视频md5*/
+	private String videoMd5;
+	/**图片唯一标识*/
+	private String md5;
+	/**图片url地址*/
+	private String url;
+	/**图片截帧顺序*/
+	private Integer frameIndex;
+	/**createTime*/
+	private Date createTime;
+}

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

@@ -0,0 +1,46 @@
+package cn.com.ctop.common.module.material.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 视频素材基础信息
+ */
+@Data
+@TableName("ctop_material_video_info")
+public class MaterialVideoInfo {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Integer id;
+	/**视频名称*/
+	private String name;
+	/**视频md5*/
+	private String md5;
+	/**视频url*/
+	private String url;
+	/**封面url*/
+	private String coverUrl;
+	/**素材类型*/
+	private Integer materialType;
+	/**代理商信息*/
+	private String supplierCode;
+	/**视频描述*/
+	private String description;
+	/**格式*/
+	private String format;
+	/**时长(秒)*/
+	private Integer duration;
+	/**大小(kb)*/
+	private Integer size;
+	/**高*/
+	private Integer height;
+	/**宽*/
+	private Integer width;
+	/**createTime*/
+	private Date createTime;
+}

+ 28 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/entity/MaterialVideoProject.java

@@ -0,0 +1,28 @@
+package cn.com.ctop.common.module.material.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 视频素材关联项目信息
+ */
+@Data
+@TableName("ctop_material_video_project")
+public class MaterialVideoProject {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Integer id;
+	/**视频md5*/
+	private String videoMd5;
+	/**关联项目id*/
+	private Long projectId;
+	/**createTime*/
+	private Date createTime;
+	/**updateTime*/
+	private Date updateTime;
+}

+ 32 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/entity/MaterialVideoWatermark.java

@@ -0,0 +1,32 @@
+package cn.com.ctop.common.module.material.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 视频素材水印信息
+ */
+@Data
+@TableName("ctop_material_video_watermark")
+public class MaterialVideoWatermark {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Integer id;
+	/**视频md5*/
+	private String videoMd5;
+	/**水印视频名称*/
+	private String name;
+	/**水印视频唯一标识*/
+	private String md5;
+	/**水印视频url*/
+	private String url;
+	/**水印创建人*/
+	private String createBy;
+	/**createTime*/
+	private Date createTime;
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoAuthorMapper.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.material.mapper;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoAuthor;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 视频素材作者信息
+ */
+public interface MaterialVideoAuthorMapper extends BaseMapper<MaterialVideoAuthor> {
+
+}

+ 14 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoCoverMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.common.module.material.mapper;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoCover;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 视频素材封面信息
+ */
+public interface MaterialVideoCoverMapper extends BaseMapper<MaterialVideoCover> {
+
+    void deleteByVideoMd5(@Param("videoMd5") String videoMd5);
+
+}

+ 14 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoFrameMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.common.module.material.mapper;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoFrame;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 视频素材截帧信息
+ */
+public interface MaterialVideoFrameMapper extends BaseMapper<MaterialVideoFrame> {
+
+    int queryFrameCountByCode(@Param("videoMd5") String videoMd5);
+
+}

+ 14 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoInfoMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.common.module.material.mapper;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 视频素材基础信息
+ */
+public interface MaterialVideoInfoMapper extends BaseMapper<MaterialVideoInfo> {
+
+    void deleteByMd5(@Param("md5") String md5);
+
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoProjectMapper.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.material.mapper;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoProject;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 视频素材关联项目信息
+ */
+public interface MaterialVideoProjectMapper extends BaseMapper<MaterialVideoProject> {
+
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/mapper/MaterialVideoWatermarkMapper.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.material.mapper;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoWatermark;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 视频素材水印信息
+ */
+public interface MaterialVideoWatermarkMapper extends BaseMapper<MaterialVideoWatermark> {
+
+}

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

+ 13 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/mapper/xml/MaterialVideoCoverMapper.xml

@@ -0,0 +1,13 @@
+<?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.material.mapper.MaterialVideoCoverMapper">
+
+    <delete id="deleteByVideoMd5">
+        DELETE
+        FROM
+            ctop_material_video_cover
+        WHERE
+            video_md5 = #{videoMd5}
+    </delete>
+
+</mapper>

+ 8 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/mapper/xml/MaterialVideoFrameMapper.xml

@@ -0,0 +1,8 @@
+<?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.material.mapper.MaterialVideoFrameMapper">
+
+    <select id="queryFrameCountByCode" resultType="java.lang.Integer">
+        select count(id) from ctop_material_video_frame where video_md5=#{videoMd5}
+    </select>
+</mapper>

+ 8 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/mapper/xml/MaterialVideoInfoMapper.xml

@@ -0,0 +1,8 @@
+<?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.material.mapper.MaterialVideoInfoMapper">
+
+    <delete id="deleteByMd5" >
+        delete from ctop_material_video_info where md5=#{md5}
+    </delete>
+</mapper>

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

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

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoAuthorService.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.material.service;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoAuthor;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *  视频素材作者信息
+ */
+public interface IMaterialVideoAuthorService extends IService<MaterialVideoAuthor> {
+
+}

+ 13 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoCoverService.java

@@ -0,0 +1,13 @@
+package cn.com.ctop.common.module.material.service;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoCover;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *  视频素材封面信息
+ */
+public interface IMaterialVideoCoverService extends IService<MaterialVideoCover> {
+
+    void deleteByVideoMd5(String videoMd5);
+
+}

+ 15 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoFrameService.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.common.module.material.service;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoFrame;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *  视频素材截帧信息
+ */
+public interface IMaterialVideoFrameService extends IService<MaterialVideoFrame> {
+
+    int getFrameCountByCode(String videoMd5);
+
+    void getTencentCutFrame(String videoUrl, String videoMd5, String coverUrl);
+
+}

+ 13 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoInfoService.java

@@ -0,0 +1,13 @@
+package cn.com.ctop.common.module.material.service;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 视频素材基础信息
+ */
+public interface IMaterialVideoInfoService extends IService<MaterialVideoInfo> {
+
+    void deleteByMd5(String md5);
+
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoProjectService.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.material.service;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoProject;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *  视频素材关联项目信息
+ */
+public interface IMaterialVideoProjectService extends IService<MaterialVideoProject> {
+
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/IMaterialVideoWatermarkService.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.material.service;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoWatermark;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *  视频素材水印信息
+ */
+public interface IMaterialVideoWatermarkService extends IService<MaterialVideoWatermark> {
+
+}

+ 15 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoAuthorServiceImpl.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.common.module.material.service.impl;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoAuthor;
+import cn.com.ctop.common.module.material.mapper.MaterialVideoAuthorMapper;
+import cn.com.ctop.common.module.material.service.IMaterialVideoAuthorService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 视频素材作者信息
+ */
+@Service
+public class MaterialVideoAuthorServiceImpl extends ServiceImpl<MaterialVideoAuthorMapper, MaterialVideoAuthor> implements IMaterialVideoAuthorService {
+
+}

+ 23 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoCoverServiceImpl.java

@@ -0,0 +1,23 @@
+package cn.com.ctop.common.module.material.service.impl;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoCover;
+import cn.com.ctop.common.module.material.mapper.MaterialVideoCoverMapper;
+import cn.com.ctop.common.module.material.service.IMaterialVideoCoverService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 视频素材封面信息
+ */
+@Service
+public class MaterialVideoCoverServiceImpl extends ServiceImpl<MaterialVideoCoverMapper, MaterialVideoCover> implements IMaterialVideoCoverService {
+
+    @Autowired
+    MaterialVideoCoverMapper materialVideoCoverMapper;
+
+    @Override
+    public void deleteByVideoMd5(String videoMd5) {
+        materialVideoCoverMapper.deleteByVideoMd5(videoMd5);
+    }
+}

+ 82 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoFrameServiceImpl.java

@@ -0,0 +1,82 @@
+package cn.com.ctop.common.module.material.service.impl;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoFrame;
+import cn.com.ctop.common.module.material.mapper.MaterialVideoFrameMapper;
+import cn.com.ctop.common.module.material.service.IMaterialVideoFrameService;
+import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.common.module.utils.CloudVideoProcessUtil;
+import cn.com.ctop.common.module.utils.LoadFileUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 视频素材截帧信息
+ */
+@Slf4j
+@Service
+public class MaterialVideoFrameServiceImpl extends ServiceImpl<MaterialVideoFrameMapper, MaterialVideoFrame> implements IMaterialVideoFrameService {
+
+    @Autowired
+    MaterialVideoFrameMapper  materialVideoFrameMapper;
+
+    @Value("${jeecg.path.image-upload}")
+    private String imageUpLoadPath;
+
+    @Override
+    public int getFrameCountByCode(String videoMd5) {
+        return materialVideoFrameMapper.queryFrameCountByCode(videoMd5);
+    }
+
+    @Override
+    public void getTencentCutFrame(String videoUrl, String videoMd5, String coverUrl) {
+        try {
+            String loadImage = "cutFrame/" + videoMd5 + "/${Number}.jpg";
+            Map<String, Object> coverMap = CloudVideoProcessUtil.videoCutFrameHandle(videoUrl, loadImage);
+            List<MaterialVideoFrame> batch = new ArrayList<>();
+            for (int i = 0; i <= 13; i++) {
+                String url = (String) coverMap.get(String.valueOf(i));
+                if (!Check.isNull(url)) {
+                    String cutFramePath = LoadFileUtil.downLoadFromUrl(url, imageUpLoadPath);
+                    String cutFrameMd5 = LoadFileUtil.getMD5(cutFramePath);
+                    MaterialVideoFrame materialVideoFrame = new MaterialVideoFrame();
+                    materialVideoFrame.setMd5(cutFrameMd5);
+                    materialVideoFrame.setUrl(url);
+                    materialVideoFrame.setVideoMd5(videoMd5);
+                    materialVideoFrame.setFrameIndex(i+1);
+                    batch.add(materialVideoFrame);
+                    this.save(materialVideoFrame);
+                    LoadFileUtil.delFile(cutFramePath);
+                }
+            }
+            insertFrames(batch,videoMd5,coverUrl);
+        } catch (Exception e) {
+            log.info("抽帧异常,code:{}", videoMd5);
+            log.error("获取截帧图片MD5错误");
+        }
+    }
+
+    private void insertFrames(List<MaterialVideoFrame> batch,  String videoMd5, String coverUrl){
+        String cutFramePath = LoadFileUtil.downLoadFromUrl(coverUrl, imageUpLoadPath);
+        String cutFrameMd5 = null;
+        try {
+            cutFrameMd5 = LoadFileUtil.getMD5(cutFramePath);
+        } catch (IOException e) {
+            log.error("获取截帧图片MD5错误");
+        }
+        MaterialVideoFrame materialVideoFrame = new MaterialVideoFrame();
+        materialVideoFrame.setMd5(cutFrameMd5);
+        materialVideoFrame.setUrl(coverUrl);
+        materialVideoFrame.setVideoMd5(videoMd5);
+        materialVideoFrame.setFrameIndex(0);
+        batch.add(materialVideoFrame);
+        this.saveBatch(batch);
+    }
+}

+ 23 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoInfoServiceImpl.java

@@ -0,0 +1,23 @@
+package cn.com.ctop.common.module.material.service.impl;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoInfo;
+import cn.com.ctop.common.module.material.mapper.MaterialVideoInfoMapper;
+import cn.com.ctop.common.module.material.service.IMaterialVideoInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 视频素材基础信息
+ */
+@Service
+public class MaterialVideoInfoServiceImpl extends ServiceImpl<MaterialVideoInfoMapper, MaterialVideoInfo> implements IMaterialVideoInfoService {
+
+    @Autowired
+    MaterialVideoInfoMapper materialVideoInfoMapper;
+
+    @Override
+    public void deleteByMd5(String md5) {
+        materialVideoInfoMapper.deleteByMd5(md5);
+    }
+}

+ 15 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoProjectServiceImpl.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.common.module.material.service.impl;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoProject;
+import cn.com.ctop.common.module.material.mapper.MaterialVideoProjectMapper;
+import cn.com.ctop.common.module.material.service.IMaterialVideoProjectService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 视频素材关联项目信息
+ */
+@Service
+public class MaterialVideoProjectServiceImpl extends ServiceImpl<MaterialVideoProjectMapper, MaterialVideoProject> implements IMaterialVideoProjectService {
+
+}

+ 15 - 0
module-common/src/main/java/cn/com/ctop/common/module/material/service/impl/MaterialVideoWatermarkServiceImpl.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.common.module.material.service.impl;
+
+import cn.com.ctop.common.module.material.entity.MaterialVideoWatermark;
+import cn.com.ctop.common.module.material.mapper.MaterialVideoWatermarkMapper;
+import cn.com.ctop.common.module.material.service.IMaterialVideoWatermarkService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 视频素材水印信息
+ */
+@Service
+public class MaterialVideoWatermarkServiceImpl extends ServiceImpl<MaterialVideoWatermarkMapper, MaterialVideoWatermark> implements IMaterialVideoWatermarkService {
+
+}

+ 0 - 6
module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialCutFrameService.java

@@ -18,14 +18,8 @@ import java.util.List;
 public interface IMaterialCutFrameService extends IService<MaterialCutFrame> {
     void getCutFrame(String url, String materialId, Long secondDuration, String height, String width) throws IOException;
 
-    void loadCutFrame(String jobId, String videoSignature);
-
     List<MaterialCutFrame> getListByVideoSignature(String signature);
 
-    void getCosCutFrame(String url, String materialId) throws IOException;  //腾讯云抽帧
-
-    void loadCosCutFrame(String jobId, String videoSignature);  //腾讯云抽帧任务状态查询以及数据入库
-
     void getTencentCutFrame(String videoUrl, String materialId, String coveUrl);
 
     boolean updateTencentCutFrame(String videoMD5);

+ 2 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IProjectService.java

@@ -17,4 +17,6 @@ public interface IProjectService extends IService<Project> {
     List<Project> listByMediaType(int projectType, int checkLink);
 
     String getNameByAccountId(Long accountId);
+
+    String getSupplierCodeById(Long projectId);
 }

+ 1 - 166
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialCutFrameServiceImpl.java

@@ -45,7 +45,6 @@ public class MaterialCutFrameServiceImpl extends ServiceImpl<MaterialCutFrameMap
 
     private static String ossLocation = "oss-cn-beijing";
     private static String ossBucket = "ctop-media";
-    private static String ossOutputObject = "output_{Count}.jpg";
 
     @Value("${jeecg.path.image-upload}")
     private String imageUpLoadPath;
@@ -117,6 +116,7 @@ public class MaterialCutFrameServiceImpl extends ServiceImpl<MaterialCutFrameMap
             output.put("Bucket", ossBucket);
 
 
+            String ossOutputObject = "output_{Count}.jpg";
             output.put("Object", URLEncoder.encode(ossOutputObject1 + ossOutputObject, "utf-8"));
 
             snapshotConfig.put("OutputFile", output.toJSONString());
@@ -152,172 +152,11 @@ public class MaterialCutFrameServiceImpl extends ServiceImpl<MaterialCutFrameMap
 
     }
 
-
-    @Override
-    public void loadCutFrame(String jobId, String videoSignature) {
-        try {
-            DefaultProfile profile = DefaultProfile.getProfile(
-                    "cn-beijing",
-                    "LTAIbNbqWzSOklQV",
-                    "1rkPz7JNoXk8sJevPaeYHWqfkQXBGh");
-            IAcsClient client = new DefaultAcsClient(profile);
-
-            QuerySnapshotJobListRequest request = new QuerySnapshotJobListRequest();
-            request.setSnapshotJobIds(jobId);
-            QuerySnapshotJobListResponse response = client.getAcsResponse(request);
-            JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(response));
-            if (jsonObject == null) {
-                return;
-            }
-            JSONObject json = (JSONObject) jsonObject.getJSONArray("snapshotJobList").get(0);
-            String state = json.getString("state");
-            if (null == state || !"Success".equals(state)) {
-                return;
-            }
-            String loadImage = "cutFrame/" + videoSignature + "/";
-
-            Integer count = json.getInteger("count");
-            for (int j = 1; j <= count; j++) {
-                String urlStr = null;
-                if (j < 10) {
-                    urlStr = String.format(
-                            OssConstant.formatUrl + loadImage + "output_0000" + j + ".jpg",
-                            ossBucket,
-                            ossLocation);
-                } else if (j < 100) {
-                    urlStr = String.format(
-                            OssConstant.formatUrl + loadImage + "output_000" + j + ".jpg",
-                            ossBucket,
-                            ossLocation);
-                } else if (j > 100) {
-                    urlStr = String.format(
-                            OssConstant.formatUrl + loadImage + "output_00" + j + ".jpg",
-                            ossBucket,
-                            ossLocation);
-                }
-                String cutFramePath = LoadFileUtil.downLoadFromUrl(urlStr, imageUpLoadPath);
-                String cutFrameMd5 = LoadFileUtil.getMD5(cutFramePath);
-
-                MaterialCutFrame cutFrame = new MaterialCutFrame();
-                cutFrame.setSignature(cutFrameMd5);
-                cutFrame.setUrl(urlStr);
-                cutFrame.setVideoSignature(videoSignature);
-                cutFrame.setImageIndex(j);
-                this.save(cutFrame);
-                LoadFileUtil.delFile(cutFramePath);
-
-            }
-
-            QueryWrapper<MaterialCutFrameTask> updateQueryWrapper = new QueryWrapper<>();
-            updateQueryWrapper.eq("job_id", jobId);
-            updateQueryWrapper.eq("video_signature", videoSignature);
-            MaterialCutFrameTask updateTask = new MaterialCutFrameTask();
-            updateTask.setJobStatus(1);
-            cutFrameTaskService.update(updateTask, updateQueryWrapper);
-        } catch (Exception e) {
-            log.error(e.getMessage());
-        }
-
-    }
-
     @Override
     public List<MaterialCutFrame> getListByVideoSignature(String videoSignature) {
         return materialCutFrameMapper.getListByVideoSignature(videoSignature);
     }
 
-
-    //腾讯云抽帧
-    @Override
-    public void getCosCutFrame(String url, String materialId) throws IOException {
-        try {
-
-            QueryWrapper<MaterialCutFrameTask> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("video_signature", materialId);
-            queryWrapper.last("limit 1");
-            MaterialCutFrameTask checkCutFrame = cutFrameTaskService.getOne(queryWrapper);
-            if (!Check.isNull(checkCutFrame)) {
-                log.info("已存推荐封面");
-                return;
-            }
-
-            //抽帧ossOutputObject1
-            String ossOutputObject1 = "/cutFrame/" + materialId + "/_";
-            String replaceUrl = url.replace("https://" + CosUtil.bucket + ".cos.ap-chongqing.myqcloud.com", "");  //地址
-            String resp = CosUtil.processMedia(replaceUrl, ossOutputObject1);
-            JSONObject respJson = JSONObject.parseObject(resp);
-            String jobId = respJson.getString("TaskId"); //{"Response": {"TaskId": "2600000655-WorkflowTask-c0b385f27c4993437029b5da175542aet0","RequestId": "4c23ce23-087f-4d4b-b73b-907d77d6d78d" } }
-            MaterialCutFrameTask cutFrameTask = new MaterialCutFrameTask();
-            cutFrameTask.setJobStatus(0);
-            cutFrameTask.setJobId(jobId);
-            cutFrameTask.setCloud_type(2);
-            cutFrameTask.setVideoSignature(materialId);
-            cutFrameTaskService.save(cutFrameTask);
-        } catch (Exception e) {
-            log.error(e.getMessage());
-        }
-    }
-
-
-    //抽帧任务状态查询,如果完成则把抽帧入库
-    @Override
-    public void loadCosCutFrame(String jobId, String videoSignature) {
-        try {
-            String resp = CosUtil.describeTaskDetail(jobId);
-            if (StringUtils.isBlank(resp)) {
-                return;
-            }
-
-            JSONObject respJson = JSONObject.parseObject(resp);
-            String status = respJson.getString("Status");
-
-            if (!"FINISH".equals(status)) {
-                return;
-            }
-
-
-            JSONArray resultSetArray = respJson.getJSONObject("WorkflowTask").getJSONArray("MediaProcessResultSet");
-            if (Check.isNull(resultSetArray)) {
-                return;
-            }
-            JSONObject resultSetObject = resultSetArray.getJSONObject(0);
-            if (Check.isNull(resultSetObject)) {
-                return;
-            }
-            JSONArray snapshotArray = resultSetObject.getJSONObject("SampleSnapshotTask").getJSONObject("Output").getJSONArray("ImagePathSet");
-
-            if (Check.isNull(snapshotArray)) {
-                return;
-            }
-
-            for (int i = 0; i < snapshotArray.size(); i++) {
-                String imagePath = snapshotArray.getString(i);
-                String urlStr = "https://" + CosUtil.bucket + ".cos.ap-chongqing.myqcloud.com" + imagePath;
-
-                //下载到本地获取图片md5
-                String cutFramePath = LoadFileUtil.downLoadFromUrl(urlStr, imageUpLoadPath);
-                String cutFrameMd5 = LoadFileUtil.getMD5(cutFramePath);
-
-                MaterialCutFrame cutFrame = new MaterialCutFrame();
-                cutFrame.setSignature(cutFrameMd5);
-                cutFrame.setUrl(urlStr);
-                cutFrame.setVideoSignature(videoSignature);
-                cutFrame.setImageIndex(i);
-                this.save(cutFrame);
-            }
-
-            QueryWrapper<MaterialCutFrameTask> updateQueryWrapper = new QueryWrapper<>();
-            updateQueryWrapper.eq("job_id", jobId);
-            updateQueryWrapper.eq("video_signature", videoSignature);
-            MaterialCutFrameTask updateTask = new MaterialCutFrameTask();
-            updateTask.setJobStatus(1);
-            cutFrameTaskService.update(updateTask, updateQueryWrapper);
-        } catch (Exception e) {
-            log.error(e.getMessage());
-        }
-
-    }
-
-
     @Override
     public void getTencentCutFrame(String videoUrl, String materialId, String coveUrl) {
         try {
@@ -349,11 +188,8 @@ public class MaterialCutFrameServiceImpl extends ServiceImpl<MaterialCutFrameMap
         } catch (Exception e) {
             e.printStackTrace();
         }
-
-
     }
 
-
     private void getCut(String materialId, String videoUrl, String loadImage, Integer count) {
         try {
             Map<String, Object> coverMap = CloudVideoProcessUtil.videoCutFrameHandle(videoUrl, loadImage);
@@ -383,7 +219,6 @@ public class MaterialCutFrameServiceImpl extends ServiceImpl<MaterialCutFrameMap
                 return;
             }
             getCut(materialId, videoUrl, loadImage, count + 1);
-
         }
 
     }

+ 1 - 6
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java

@@ -110,7 +110,6 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
     @Override
     public String watermarkVideoBySupplierCode(String videoSignature, String videoUrl, Long templateId) {
         try {
-
             QueryWrapper<SupplierWatermark> supplierWatermarkQueryWrapper = new QueryWrapper<>();
             supplierWatermarkQueryWrapper.eq("video_signature", videoSignature);
             supplierWatermarkQueryWrapper.last("limit 1");
@@ -146,16 +145,11 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
                 }
                 return watermarkUrl;
             }
-
-
         } catch (Exception e) {
             log.info("供应商水印生成异常,videoCode:{}", videoSignature);
             e.printStackTrace();
-
-
         }
         return null;
-
     }
 
 
@@ -606,6 +600,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
         String url = "";
         if (!Check.isNull(json.getString("url"))) {
             url = "https:" + json.getString("url");
+
         }
         Long projectId = json.getLong("projectId");
         String code = json.getString("code");

+ 6 - 3
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialTagInfoServiceImpl.java

@@ -11,6 +11,7 @@ import cn.com.ctop.common.module.utils.ResultMapUtils;
 import cn.com.ctop.common.module.utils.StatusCode;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -35,6 +36,8 @@ public class MaterialTagInfoServiceImpl extends ServiceImpl<MaterialTagInfoMappe
     private IMaterialInfoService materialInfoService;
     @Autowired
     private ITagInfoService tagInfoService;
+    @Autowired
+    private MaterialTagInfoMapper materialTagInfoMapper;
     @Override
     public Map<String, Object> mark(JSONObject data, LoginUser user) {
         Map<String,Object>result = new HashMap<>();
@@ -98,8 +101,8 @@ public class MaterialTagInfoServiceImpl extends ServiceImpl<MaterialTagInfoMappe
 
     @Override
     public void deleteByCode(String code) {
-        UpdateWrapper<MaterialTagInfo>updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("code",code).set("status",0).set("update_time",new Date());
-        this.update(updateWrapper);
+        QueryWrapper<MaterialTagInfo> wrapper = new QueryWrapper<>();
+        wrapper.eq("code",code);
+        materialTagInfoMapper.delete(wrapper);
     }
 }

+ 5 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/ProjectServiceImpl.java

@@ -35,4 +35,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     public String getNameByAccountId(Long accountId) {
         return projectMapper.getNameByAccountId(accountId);
     }
+
+    @Override
+    public String getSupplierCodeById(Long projectId) {
+        return projectMapper.querySupplierCodeById(projectId);
+    }
 }

+ 0 - 5
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/material/entity/ByteDanceAdvertisePlan.java

@@ -140,7 +140,6 @@ public class ByteDanceAdvertisePlan {
 
     private String convertedTimeDuration;
 
-    private String inventoryType;
 
     // audience
     private String audience;
@@ -392,10 +391,6 @@ public class ByteDanceAdvertisePlan {
         if (null != externalUrl && !"".equals(externalUrl.trim())) {
             this.externalUrl = externalUrl;
         }
-        String inventoryType = dataObject.getString("inventory_type");
-        if(null!=inventoryType&&!"".equals(inventoryType.trim())){
-            this.inventoryType  =inventoryType;
-        }
     }
 
     public ByteDanceAdvertisePlan(String advertiserId, Long adId, JSONObject params) {

+ 1 - 1
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/report/service/impl/ReportServiceImpl.java

@@ -236,7 +236,7 @@ public class ReportServiceImpl implements IReportService {
                 target.setHideIfConverted(plan.getHideIfConverted());
                 target.setHideIfExists(plan.getHideIfExists());
 
-                target.setInventoryType(plan.getInventoryType());
+                //target.setInventoryType(plan.getInventoryType());
                 if(null!=audienceObject.getString("city")){
                     target.setDistrict(audienceObject.getString("city"));
                 }