Browse Source

素材库调整

yumeng 3 years ago
parent
commit
9c01a9821c

+ 1 - 1
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/entity/MaterialInfo.java

@@ -197,7 +197,7 @@ public class MaterialInfo implements Serializable {
     private Integer offlineFlag;
 
     private Date confirmTime;
-    private Integer innovate;
+    private Integer materialInnovate;
     private Integer syncKuaishou;
     private Integer syncBytedance;
 }

File diff suppressed because it is too large
+ 1 - 1
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/mapper/MaterialInfoMapper.java


+ 6 - 1
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialInfoMapper.xml

@@ -88,7 +88,7 @@
 
     <select id="getListByParams" resultType="cn.com.ctop.common.module.entity.MaterialInfo">
         select
-        distinct matInfo.code,
+        matInfo.code,
         matInfo.project_id,
         matInfo.id,
         t.slogansCount,
@@ -153,12 +153,17 @@
         <if test="endDate != null and endDate != '' ">
             and matInfo.create_time &lt;= #{endDate}
         </if>
+        <if test="materialInnovate != null and materialInnovate != '' ">
+            and matInfo.material_innovate = #{materialInnovate}
+        </if>
         <if test="syncKuaishou != null and syncKuaishou != '' ">
             and matInfo.sync_Kuaishou = #{syncKuaishou}
         </if>
+
         <if test="syncBytedance != null and syncBytedance != '' ">
             and matInfo.sync_bytedance = #{syncBytedance}
         </if>
+
         <if test="offlineFlag!=null">
             and matInfo.offline_flag = #{offlineFlag}
         </if>

+ 1 - 1
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/service/IMaterialInfoService.java

@@ -81,7 +81,7 @@ public interface IMaterialInfoService extends IService<MaterialInfo> {
 
     JSONArray getIdListByProject(Long projectId);
 
-    Map<String, Object> getListByParams(String tagCode, String type, Integer status, String materialName, List<Long> projectIds, String code, String startDate, String endDate, String userId, String clipId, String shotId, String planId, String leaderName,Integer offlineFlag, Integer pageNo, Integer pageSize,Integer syncKuaishou,Integer syncBytedance);
+    Map<String, Object> getListByParams(String tagCode, String type, Integer status, String materialName, List<Long> projectIds, String code, String startDate, String endDate, String userId, String clipId, String shotId, String planId, String leaderName,Integer offlineFlag, Integer pageNo, Integer pageSize,Integer syncKuaishou,Integer syncBytedance,Integer materialInnovate);
 
     void correlationUploadV2(JSONObject json);
 

+ 4 - 4
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java

@@ -529,7 +529,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
             if (fileNameNoEx.contains("-")) {
                 fileNameNoEx = fileNameNoEx.substring(0, fileNameNoEx.lastIndexOf("-"));
             }
-            info.setInnovate(json.getInteger("innovate"));
+            info.setMaterialInnovate(json.getInteger("materialInnovate"));
             info.setMaterialName(fileNameNoEx);
             info.setWatermarkMaterialName(json.getString("watermarkMaterialName"));
             info.setMaterialDescribe(json.getString("materialDescribe"));
@@ -682,7 +682,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
             info.setMaterialDescribe(json.getString("materialDescribe"));
             info.setCreateTime(new Date());
             info.setUpdateTime(new Date());
-            info.setInnovate(json.getInteger("innovate"));
+            info.setMaterialInnovate(json.getInteger("materialInnovate"));
             info.setType(type);
 
             if (!Check.isNull(project.getSupplierCode())) {
@@ -945,7 +945,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
 
 
     @Override
-    public Map<String, Object> getListByParams(String tagCode, String type, Integer status, String materialName, List<Long> projectIds, String code, String startDate, String endDate, String userId, String clipId, String shotId, String planId, String leaderName, Integer offlineFlag, Integer pageNo, Integer pageSize, Integer syncKuaishou, Integer syncBytedance) {
+    public Map<String, Object> getListByParams(String tagCode, String type, Integer status, String materialName, List<Long> projectIds, String code, String startDate, String endDate, String userId, String clipId, String shotId, String planId, String leaderName, Integer offlineFlag, Integer pageNo, Integer pageSize, Integer syncKuaishou, Integer syncBytedance,Integer materialInnovate) {
         Map<String, Object> result = new HashMap<>();
         PageHelper.startPage(pageNo, pageSize);
         String ascription = null;
@@ -959,7 +959,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
         if (!Check.isNull(endDate)) {
             endDate = endDate + " 23:59:59";
         }
-        List<MaterialInfo> dailyList = materialInfoMapper.getListByParams(tagCode, type, status, materialName, code, startDate, endDate, userId, projectIds, ascription, clipId, shotId, planId, leaderName, offlineFlag, syncKuaishou, syncBytedance);
+        List<MaterialInfo> dailyList = materialInfoMapper.getListByParams(tagCode, type, status, materialName, code, startDate, endDate, userId, projectIds, ascription, clipId, shotId, planId, leaderName, offlineFlag, syncKuaishou, syncBytedance,materialInnovate);
         List<MaterialInfo> setList = new ArrayList<>();
         PageInfo<MaterialInfo> pageInfo = new PageInfo<>(dailyList);
         if (!dailyList.isEmpty()) {

+ 5 - 6
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialInfoController.java

@@ -324,9 +324,8 @@ public class MaterialInfoController {
     public Map<String, Object> queryPageList(String type, Integer status, Long productId, String materialName, String code,
                                              String startDate, String endDate, String tagCode,
                                              Long projectId, String clipId, String shotId, String planId, String leaderName,
-                                             Integer syncKuaishou, Integer syncBytedance,
+                                             Integer syncKuaishou, Integer syncBytedance, Integer materialInnovate,
                                              @RequestParam(name = "offlineFlag", required = false) Integer offlineFlag,
-
                                              @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                              @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -344,7 +343,7 @@ public class MaterialInfoController {
                 List<Long> projectIdsByProductId = projectService.getProjectIdsByProductId(productId);
                 projectIds.addAll(projectIdsByProductId);
             }
-            return materialInfoService.getListByParams(tagCode, type, status, materialName, projectIds, code, startDate, endDate, null, clipId, shotId, planId, leaderName, offlineFlag, pageNo, pageSize, syncKuaishou, syncBytedance);
+            return materialInfoService.getListByParams(tagCode, type, status, materialName, projectIds, code, startDate, endDate, null, clipId, shotId, planId, leaderName, offlineFlag, pageNo, pageSize, syncKuaishou, syncBytedance, materialInnovate);
             //运营经理、运营、运营助理
         } else if ("operator".equals(roleCode) || "kuaishouOperationManager".equals(roleCode) || "operationAssistant".equals(roleCode) || "touTiaoOperationManager".equals(roleCode)) {
             if (!Check.isNull(projectId)) {
@@ -360,7 +359,7 @@ public class MaterialInfoController {
                 projectIds.addAll(partakeProjectIds);
                 projectIds.addAll(productProjectIds);
             }
-            return materialInfoService.getListByParams(tagCode, type, status, materialName, projectIds, code, startDate, endDate, null, clipId, shotId, planId, leaderName, offlineFlag, pageNo, pageSize, syncKuaishou, syncBytedance);
+            return materialInfoService.getListByParams(tagCode, type, status, materialName, projectIds, code, startDate, endDate, null, clipId, shotId, planId, leaderName, offlineFlag, pageNo, pageSize, syncKuaishou, syncBytedance, materialInnovate);
 
         } else if ("designTeamLeader".equals(roleCode) || "planeLeader".equals(roleCode) || "plane".equals(roleCode) || "plan".equals(roleCode) || "shot".equals(roleCode) || "clip".equals(roleCode)) {
             //查询自己所在项目下的数据
@@ -371,7 +370,7 @@ public class MaterialInfoController {
             } else {
                 projectIds = projectMemberService.getProjectIdsByProductId(null, userId);
             }
-            return materialInfoService.getListByParams(tagCode, type, status, materialName, projectIds, code, startDate, endDate, null, clipId, shotId, planId, leaderName, offlineFlag, pageNo, pageSize, syncKuaishou, syncBytedance);
+            return materialInfoService.getListByParams(tagCode, type, status, materialName, projectIds, code, startDate, endDate, null, clipId, shotId, planId, leaderName, offlineFlag, pageNo, pageSize, syncKuaishou, syncBytedance, materialInnovate);
         } else {
             //查询自己上传的视频
             if (!Check.isNull(projectId)) {
@@ -379,7 +378,7 @@ public class MaterialInfoController {
             } else if (!Check.isNull(productId)) {
                 projectIds = projectMemberService.getProjectIdsByProductId(productId, userId);
             }
-            return materialInfoService.getListByParams(tagCode, type, status, materialName, projectIds, code, startDate, endDate, userId, clipId, shotId, planId, leaderName, offlineFlag, pageNo, pageSize, syncKuaishou, syncBytedance);
+            return materialInfoService.getListByParams(tagCode, type, status, materialName, projectIds, code, startDate, endDate, userId, clipId, shotId, planId, leaderName, offlineFlag, pageNo, pageSize, syncKuaishou, syncBytedance, materialInnovate);
         }
     }
 

+ 5 - 42
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialUploadController.java

@@ -1,20 +1,11 @@
 package org.jeecg.modules.ctop.controller;
 
-import cn.com.ctop.common.module.utils.Check;
-import cn.com.ctop.manage.modules.material.service.IMaterialUploadService;
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.modules.ctop.service.IMaterialUploadTaskService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.HashMap;
-import java.util.Map;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * 素材归属标
@@ -28,42 +19,14 @@ import java.util.Map;
 @RestController
 @RequestMapping("/ctop/materialUpload")
 public class MaterialUploadController {
-
-    @Autowired
-    private IMaterialUploadService materialUploadService;
     @Autowired
     private IMaterialUploadTaskService materialUploadTaskService;
 
-
+    @ResponseBody
     @PostMapping(value = "/uploadAccount")
-    public Map<String, Object> uploadAccount(@RequestBody JSONObject json) {
-        Map<String, Object> returnMap = new HashMap<>();
-        String mediaId = json.getString("mediaId");
-        Boolean shieldBackwardSwitch = json.getBoolean("shieldBackwardSwitch");
-        JSONArray materialArray = json.getJSONArray("materialArray");
-        JSONArray accountArray = json.getJSONArray("accountArray");
-        try {
-            if (Check.isNull(mediaId)) {
-                throw new Exception("请选择项目媒体类型");
-            }
-            if (Check.isNull(materialArray) || Check.isNull(accountArray)) {
-                throw new Exception("请选择账号或素材");
-            }
-
-            //     new Thread(() -> materialUploadService.uploadAccount(mediaId, materialArray, accountArray, sysUser.getId(), shieldBackwardSwitch)).start();
-
-            JSONArray returnArr = materialUploadTaskService.submitTask(json);
-
-            returnMap.put("success", true);
-            returnMap.put("message", "开始上传文件");
-            returnMap.put("code", 0);
-
-        } catch (Exception e) {
-            returnMap.put("success", false);
-            returnMap.put("message", e.getMessage());
-        }
-        return returnMap;
+    public JSONObject uploadAccount(@RequestBody JSONObject json) {
+        JSONObject returnJson = materialUploadTaskService.submitTask(json);
+        return returnJson;
     }
 
-
 }

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

@@ -56,6 +56,7 @@ public class MaterialUploadTask {
     @Excel(name = "快手账户id", width = 15)
     @ApiModelProperty(value = "快手账户id")
     private Long kuaishouUserId;
+    private Integer shieldBackwardSwitch;
     /**
      * 上传人id
      */

+ 8 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/MaterialUploadTaskMapper.java

@@ -1,9 +1,12 @@
 package org.jeecg.modules.ctop.mapper;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.ctop.entity.MaterialUploadTask;
 
+import java.util.List;
+
 /**
  * 同步素材任务
  *
@@ -15,5 +18,9 @@ public interface MaterialUploadTaskMapper extends BaseMapper<MaterialUploadTask>
 
     Integer getCountByUserIdAndMd5(@Param("userId") Long userId,@Param("signature") String signature);
 
-    String getMaterialNameBySignature(@Param("signature") String signature);
+    JSONObject getMaterialNameBySignature(@Param("id") String id);
+
+    Integer getCountByAccountIdAndMd5(@Param("accountId") Long accountId, @Param("signature") String signature);
+
+    void replaceBatch(@Param("addList") List<MaterialUploadTask> tasksList);
 }

+ 42 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/MaterialUploadTaskMapper.xml

@@ -3,14 +3,51 @@
 <mapper namespace="org.jeecg.modules.ctop.mapper.MaterialUploadTaskMapper">
 
     <select id="getCountByUserIdAndMd5" resultType="java.lang.Integer">
-        select  count(1)  from  ctop_video_merge_task
-        where user_id = #{userId}
+        select  count(1)  from  ctop_material_upload_task
+        where kuaishou_user_id = #{userId}
         and signature = #{signature}
         and task_status != 4
     </select>
-    <select id="getMaterialNameBySignature" resultType="java.lang.String">
-        select material_name  from ctop_material_info
-        where  `code` = #{signature}
+    <select id="getMaterialNameBySignature" resultType="com.alibaba.fastjson.JSONObject">
+        select material_name as 'materialName', url as 'materialUrl',`code` as 'signature'  from ctop_material_info
+        where  `id` = #{id}
         limit 1
     </select>
+    <select id="getCountByAccountIdAndMd5" resultType="java.lang.Integer">
+         select  count(1)  from  ctop_material_upload_task
+        where account_id = #{accountId}
+        and signature = #{signature}
+        and task_status != 4
+    </select>
+    <insert id="replaceBatch">
+        insert into ctop_material_upload_task(
+        media_id,
+        signature,
+        account_id,
+        kuaishou_user_id,
+        shield_backward_switch,
+        user_id,
+        user_name,
+        material_name,
+        material_url,
+        task_status,
+        remarks
+        )
+        values
+        <foreach collection="addList" item="add" separator=",">
+            (
+            #{add.mediaId},
+            #{add.signature},
+            #{add.accountId},
+            #{add.kuaishouUserId},
+            #{add.shieldBackwardSwitch},
+            #{add.userId},
+            #{add.userName},
+            #{add.materialName},
+            #{add.materialUrl},
+            #{add.taskStatus},
+            #{add.remarks}
+            )
+        </foreach>
+    </insert>
 </mapper>

+ 1 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/IMaterialUploadTaskService.java

@@ -1,6 +1,5 @@
 package org.jeecg.modules.ctop.service;
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.ctop.entity.MaterialUploadTask;
@@ -14,5 +13,5 @@ import org.jeecg.modules.ctop.entity.MaterialUploadTask;
  */
 public interface IMaterialUploadTaskService extends IService<MaterialUploadTask> {
 
-    JSONArray submitTask(JSONObject json);
+    JSONObject submitTask(JSONObject json);
 }

+ 98 - 24
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/MaterialUploadTaskServiceImpl.java

@@ -10,6 +10,11 @@ import org.jeecg.modules.ctop.service.IMaterialUploadTaskService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 同步素材任务
  *
@@ -31,7 +36,8 @@ public class MaterialUploadTaskServiceImpl extends ServiceImpl<MaterialUploadTas
      */
 
     @Override
-    public JSONArray submitTask(JSONObject json) {
+    public JSONObject submitTask(JSONObject json) {
+        JSONObject returnJson = new JSONObject();
         try {
             if (Check.isNull(json)) {
                 throw new Exception("入参不能为空");
@@ -44,44 +50,112 @@ public class MaterialUploadTaskServiceImpl extends ServiceImpl<MaterialUploadTas
             if (Check.isNull(materialArray)) {
                 throw new Exception("请传入素材信息");
             }
-
             JSONArray accountArray = json.getJSONArray("accountArray");
             if (Check.isNull(accountArray)) {
                 throw new Exception("请传入账户信息");
             }
-
-           // JSONArray
-            if ("2".equals(mediaId) || "4".equals(mediaId)) {
+            String loginId = json.getString("loginId");
+            if (Check.isNull(loginId)) {
+                throw new Exception("请传入登录人id");
+            }
+            String userName = json.getString("userName");
+            if (Check.isNull(userName)) {
+                throw new Exception("请传入登录人姓名");
+            }
+            Map<String, JSONObject> useMap = new HashMap<>();
+            List<MaterialUploadTask> tasksList = new ArrayList<>();
+            Integer shieldBackwardSwitch = null;
+            for (int j = 0; j < materialArray.size(); j++) {
+                String materialId = materialArray.getString(j);
+                JSONObject materialInfo = materialUploadTaskMapper.getMaterialNameBySignature(materialId);
+                if (Check.isNull(materialInfo)) {
+                    continue;
+                }
+                String materialName = materialInfo.getString("materialName");
+                String materialUrl = materialInfo.getString("materialUrl");
+                String signature = materialInfo.getString("signature");
                 for (int i = 0; i < accountArray.size(); i++) {
-                    JSONObject accountJson = accountArray.getJSONObject(i);
-                    if (Check.isNull(accountJson)) {
-                        continue;
-                    }
-                    Long userId = accountJson.getLong("userId");
-                    Long accountId = accountJson.getLong("accountId");
-                    for (int j = 0; j < materialArray.size(); j++) {
-                        String signature = materialArray.getString(j);
-                        String materialNameBySignature = materialUploadTaskMapper.getMaterialNameBySignature(signature);
+                    Long accountId = null;
+                    Long userId = null;
+                    if (mediaId == 2 || mediaId == 4) {
+                        JSONObject accountJson = accountArray.getJSONObject(i);
+                        if (Check.isNull(accountJson)) {
+                            continue;
+                        }
+                        userId = accountJson.getLong("userId");
+                        accountId = accountJson.getLong("accountId");
                         Integer count = materialUploadTaskMapper.getCountByUserIdAndMd5(userId, signature);
                         if (count > 0) {
+                            getUseMap(useMap, userId, materialName, signature);
+                            continue;
+                        }
+                        shieldBackwardSwitch = json.getInteger("shieldBackwardSwitch");
+                    } else if (mediaId == 1 || mediaId == 3) {
+                        accountId = accountArray.getLong(i);
+                        if (Check.isNull(accountId)) {
+                            continue;
+                        }
+                        Integer count = materialUploadTaskMapper.getCountByAccountIdAndMd5(accountId, signature);
+                        if (count > 0) {
+                            getUseMap(useMap, accountId, materialName, signature);
                             continue;
-
                         }
-
                     }
-
-
+                    MaterialUploadTask task = new MaterialUploadTask();
+                    task.setAccountId(accountId);
+                    if (!Check.isNull(userId)) {
+                        task.setKuaishouUserId(userId);
+                    }
+                    task.setShieldBackwardSwitch(shieldBackwardSwitch);
+                    task.setMediaId(mediaId);
+                    task.setSignature(signature);
+                    task.setUserId(loginId);
+                    task.setUserName(userName);
+                    task.setMaterialName(materialName);
+                    task.setMaterialUrl(materialUrl);
+                    task.setTaskStatus(0);
+                    task.setRemarks("素材待同步");
+                    tasksList.add(task);
                 }
-
-
             }
-
-
+            if (!Check.isNull(tasksList)) {
+                materialUploadTaskMapper.replaceBatch(tasksList);
+            }
+            returnJson.put("code", 0);
+            returnJson.put("message", "任务提交成功");
+            if (!Check.isNullMap(useMap)) {
+                JSONArray array = new JSONArray();
+                for (Map.Entry<String, JSONObject> entry : useMap.entrySet()) {
+                    JSONObject mapValue = entry.getValue();
+                    array.add(mapValue);
+                }
+                returnJson.put("data", array);
+            }
         } catch (Exception e) {
-
+            returnJson.put("code", -1);
+            returnJson.put("message", e.getMessage());
         }
 
+        return returnJson;
+    }
 
-        return null;
+
+    private Map<String, JSONObject> getUseMap(Map<String, JSONObject> userMap, Long userId, String materialName, String signature) {
+        JSONObject useJson = userMap.get(signature);
+        if (Check.isNull(useJson)) {
+            JSONObject addJson = new JSONObject();
+            addJson.put("materialName", materialName);
+            addJson.put("message", "此素材正在同步中或已同步");
+            JSONArray userIdArray = new JSONArray();
+            userIdArray.add(userId);
+            addJson.put("ids", userIdArray);
+            userMap.put(signature, addJson);
+
+        } else {
+            JSONArray userIdArray = useJson.getJSONArray("ids");
+            userIdArray.add(userId);
+        }
+        return userMap;
     }
+
 }