Browse Source

fix of '新老数据库同步逻辑' on 2021.1.27

jiequan.bi 4 years ago
parent
commit
0828087ab5

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

@@ -12,6 +12,7 @@ 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.DictHandler;
+import org.jeecg.modules.orderplatform.util.NewAndOldInteract;
 import org.jeecg.modules.orderplatform.util.OperateRecordHandler;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -43,6 +44,9 @@ public class PlatformMaterialCtrl {
     @Autowired
     private DictHandler dictHandler;
 
+    @Autowired
+    private NewAndOldInteract  newAndOldInteract;
+
     /**
      * 根据orderCode查询关联物料
      */
@@ -199,6 +203,8 @@ public class PlatformMaterialCtrl {
             if (order) {
                 operateRecordHandler.Approval(platformMaterial.getMaterialCode(), "ACCEPT_VIDEO");
                 approvalNodeNoticeHandler.NOTICE_WE_CHAT_MATERIAL("ACCEPT_VIDEO",platformMaterial.getMaterialCode());
+                //todo new->old
+                newAndOldInteract.NEW_2_OLD(platformMaterial.getVideoId());
                 result.success("视频审核通过!");
             }
         } else {

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

@@ -93,7 +93,7 @@ public class ApprovalNodeNoticeHandler {
             //订单完结
             case "ORDER_END":
                 sendWeChat(orderRelatePerson.getString("design"),
-                        String.format("您的订单“%s”物料已全部制作完成,订单已被系统自动完结\n 订单ID:%s\n操作人:%s",
+                        String.format("您的订单“%s”物料已全部制作完成,订单已被系统自动完结\n 订单ID:%s\n审核人:%s",
                                 orderRelatePerson.getString("orderTitle"),
                                 orderRelatePerson.getLong("orderId"),
                                 orderRelatePerson.getString("operatorName")));
@@ -102,7 +102,7 @@ public class ApprovalNodeNoticeHandler {
             //脚本上传成功,通知运营审核
             case "SCRIPT":
                 sendWeChat(materialRelatePerson.getString("operator"),
-                        String.format("您的订单“%s”收到一条新的脚本,请及时审核!\n 订单ID:%s\n操作人:%s",
+                        String.format("您的订单“%s”收到一条新的脚本,请及时审核!\n 订单ID:%s\n上传人:%s",
                                 materialRelatePerson.getString("orderTitle"),
                                 materialRelatePerson.getLong("orderId"),
                                 materialRelatePerson.getString("planName")));
@@ -111,7 +111,7 @@ public class ApprovalNodeNoticeHandler {
             //视频上传成功,通知运营审核
             case "VIDEO":
                 sendWeChat(materialRelatePerson.getString("operator"),
-                        String.format("您的订单“%s”收到一条新的视频,请及时审核!\n 订单ID:%s\n操作人:%s",
+                        String.format("您的订单“%s”收到一条新的视频,请及时审核!\n 订单ID:%s\n上传人:%s",
                                 materialRelatePerson.getString("orderTitle"),
                                 materialRelatePerson.getLong("orderId"),
                                 materialRelatePerson.getString("clipName")));

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

@@ -0,0 +1,78 @@
+package org.jeecg.modules.orderplatform.util;
+
+import cn.com.ctop.common.module.entity.MaterialAscription;
+import cn.com.ctop.common.module.entity.MaterialCutFrame;
+import cn.com.ctop.common.module.entity.MaterialInfo;
+import cn.com.ctop.common.module.entity.MaterialParameter;
+import cn.com.ctop.common.module.material.mapper.MaterialVideoInfoMapper;
+import cn.com.ctop.common.module.service.IMaterialAscriptionService;
+import cn.com.ctop.common.module.service.IMaterialCutFrameService;
+import cn.com.ctop.common.module.service.IMaterialInfoService;
+import cn.com.ctop.common.module.service.IMaterialParameterService;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Slf4j
+@Component
+public class NewAndOldInteract {
+
+    @Autowired
+    private MaterialVideoInfoMapper materialVideoInfoMapper;
+
+    @Autowired
+    private IMaterialInfoService materialInfoService;
+
+    @Autowired
+    private IMaterialAscriptionService materialAscriptionService;
+
+    @Autowired
+    private IMaterialCutFrameService materialCutFrameService;
+
+    @Autowired
+    private IMaterialParameterService materialParameterService;
+
+    /**
+     *  根据视频Md5从新版素材库中查询老版需要的数据做insert
+     */
+    public boolean NEW_2_OLD(String md5){
+
+        try{
+            JSONObject materialInfoNew = materialVideoInfoMapper.joinMaterialInfo(md5);
+
+            if(null!=materialInfoNew&&!materialInfoNew.isEmpty()){
+                MaterialInfo materialInfoOld = JSONObject.toJavaObject(materialInfoNew,MaterialInfo.class);
+                materialInfoService.save(materialInfoOld);
+            }
+            JSONObject materialAscriptionNew = materialVideoInfoMapper.joinMaterialAscription(md5);
+
+            if(null!=materialAscriptionNew&&!materialAscriptionNew.isEmpty()){
+                MaterialAscription materialAscriptionOld = JSONObject.toJavaObject(materialAscriptionNew,MaterialAscription.class);
+                materialAscriptionService.save(materialAscriptionOld);
+            }
+
+            JSONObject materialParameterNew = materialVideoInfoMapper.joinMaterialParameter(md5);
+
+            if(null!=materialParameterNew&&!materialParameterNew.isEmpty()){
+                MaterialParameter materialParameterOld = JSONObject.toJavaObject(materialParameterNew,MaterialParameter.class);
+                materialParameterService.save(materialParameterOld);
+            }
+
+            List<JSONObject> materialCutFrameNew = materialVideoInfoMapper.joinMaterialCutFrame(md5);
+
+            if(null!=materialCutFrameNew&&!materialCutFrameNew.isEmpty()){
+                materialCutFrameNew.forEach(it->{
+                    MaterialCutFrame materialCutFrameOld = JSONObject.toJavaObject(it,MaterialCutFrame.class);
+                    materialCutFrameService.save(materialCutFrameOld);
+                });
+            }
+        }catch (Exception e){
+            log.error(e.getMessage());
+            return false;
+        }
+        return true;
+    }
+}

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

@@ -1,9 +1,12 @@
 package cn.com.ctop.common.module.material.mapper;
 
 import cn.com.ctop.common.module.material.entity.MaterialVideoInfo;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 视频素材基础信息
  */
@@ -11,4 +14,12 @@ public interface MaterialVideoInfoMapper extends BaseMapper<MaterialVideoInfo> {
 
     void deleteByMd5(@Param("md5") String md5);
 
+    JSONObject joinMaterialInfo(@Param("md5") String md5);
+
+    JSONObject joinMaterialAscription(@Param("md5") String md5);
+
+    List<JSONObject> joinMaterialCutFrame(@Param("md5") String md5);
+
+    JSONObject joinMaterialParameter(@Param("md5") String md5);
+
 }

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

@@ -5,4 +5,67 @@
     <delete id="deleteByMd5" >
         delete from ctop_material_video_info where md5=#{md5}
     </delete>
+
+    <select id="joinMaterialInfo" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT
+            CONCAT(t1.md5, t2.project_id) AS id,
+            t1.md5,
+            t1.url,
+            t1.cover_url AS coverUrl,
+            t3.clip AS userId,
+            t1.description AS materialDescribe,
+            t2.project_id AS projectId,
+            t1.material_type AS type
+        FROM
+            ctop_material_video_info t1
+                LEFT JOIN ctop_material_video_project t2 ON t1.md5 = t2.video_md5
+                LEFT JOIN ctop_platform_material t3 ON t1.md5 = t3.video_id
+        WHERE
+            t1.md5 = #{md5}
+        limit 1
+    </select>
+
+    <select id="joinMaterialAscription" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT
+            video_md5 as materialId,
+            clip_id as clipId,
+            clip_id as clipId,
+            clip_id as clipId,
+            video_md5 as code
+        FROM
+            ctop_material_video_author
+        WHERE
+            video_md5 = #{md5}
+        limit 1
+    </select>
+
+    <select id="joinMaterialCutFrame" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT
+            video_md5 as videoSignature,
+            md5 as signature,
+            url,
+            frame_index as imageIndex,
+            create_time as createTime
+        FROM
+            ctop_material_video_frame
+        WHERE
+            video_md5 = #{md5}
+    </select>
+
+    <select id="joinMaterialParameter" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT
+            md5 as materialId,
+            duration as 'second',
+            format,
+            width,
+            height,
+            ROUND(size/1000000,2) as size,
+            create_time as createTime
+        FROM
+            ctop_material_video_info
+        WHERE
+            md5 = #{md5}
+        limit 1
+    </select>
+
 </mapper>

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

@@ -1,6 +1,7 @@
 package cn.com.ctop.common.module.material.service;
 
 import cn.com.ctop.common.module.material.entity.MaterialVideoInfo;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
@@ -9,5 +10,4 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface IMaterialVideoInfoService extends IService<MaterialVideoInfo> {
 
     void deleteByMd5(String md5);
-
 }

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

@@ -3,6 +3,7 @@ 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.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -20,4 +21,5 @@ public class MaterialVideoInfoServiceImpl extends ServiceImpl<MaterialVideoInfoM
     public void deleteByMd5(String md5) {
         materialVideoInfoMapper.deleteByMd5(md5);
     }
+
 }