yumeng 3 anni fa
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 Integer offlineFlag;
 
 
     private Date confirmTime;
     private Date confirmTime;
-    private Integer innovate;
+    private Integer materialInnovate;
     private Integer syncKuaishou;
     private Integer syncKuaishou;
     private Integer syncBytedance;
     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 id="getListByParams" resultType="cn.com.ctop.common.module.entity.MaterialInfo">
         select
         select
-        distinct matInfo.code,
+        matInfo.code,
         matInfo.project_id,
         matInfo.project_id,
         matInfo.id,
         matInfo.id,
         t.slogansCount,
         t.slogansCount,
@@ -153,12 +153,17 @@
         <if test="endDate != null and endDate != '' ">
         <if test="endDate != null and endDate != '' ">
             and matInfo.create_time &lt;= #{endDate}
             and matInfo.create_time &lt;= #{endDate}
         </if>
         </if>
+        <if test="materialInnovate != null and materialInnovate != '' ">
+            and matInfo.material_innovate = #{materialInnovate}
+        </if>
         <if test="syncKuaishou != null and syncKuaishou != '' ">
         <if test="syncKuaishou != null and syncKuaishou != '' ">
             and matInfo.sync_Kuaishou = #{syncKuaishou}
             and matInfo.sync_Kuaishou = #{syncKuaishou}
         </if>
         </if>
+
         <if test="syncBytedance != null and syncBytedance != '' ">
         <if test="syncBytedance != null and syncBytedance != '' ">
             and matInfo.sync_bytedance = #{syncBytedance}
             and matInfo.sync_bytedance = #{syncBytedance}
         </if>
         </if>
+
         <if test="offlineFlag!=null">
         <if test="offlineFlag!=null">
             and matInfo.offline_flag = #{offlineFlag}
             and matInfo.offline_flag = #{offlineFlag}
         </if>
         </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);
     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);
     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("-")) {
             if (fileNameNoEx.contains("-")) {
                 fileNameNoEx = fileNameNoEx.substring(0, fileNameNoEx.lastIndexOf("-"));
                 fileNameNoEx = fileNameNoEx.substring(0, fileNameNoEx.lastIndexOf("-"));
             }
             }
-            info.setInnovate(json.getInteger("innovate"));
+            info.setMaterialInnovate(json.getInteger("materialInnovate"));
             info.setMaterialName(fileNameNoEx);
             info.setMaterialName(fileNameNoEx);
             info.setWatermarkMaterialName(json.getString("watermarkMaterialName"));
             info.setWatermarkMaterialName(json.getString("watermarkMaterialName"));
             info.setMaterialDescribe(json.getString("materialDescribe"));
             info.setMaterialDescribe(json.getString("materialDescribe"));
@@ -682,7 +682,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
             info.setMaterialDescribe(json.getString("materialDescribe"));
             info.setMaterialDescribe(json.getString("materialDescribe"));
             info.setCreateTime(new Date());
             info.setCreateTime(new Date());
             info.setUpdateTime(new Date());
             info.setUpdateTime(new Date());
-            info.setInnovate(json.getInteger("innovate"));
+            info.setMaterialInnovate(json.getInteger("materialInnovate"));
             info.setType(type);
             info.setType(type);
 
 
             if (!Check.isNull(project.getSupplierCode())) {
             if (!Check.isNull(project.getSupplierCode())) {
@@ -945,7 +945,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
 
 
 
 
     @Override
     @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<>();
         Map<String, Object> result = new HashMap<>();
         PageHelper.startPage(pageNo, pageSize);
         PageHelper.startPage(pageNo, pageSize);
         String ascription = null;
         String ascription = null;
@@ -959,7 +959,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
         if (!Check.isNull(endDate)) {
         if (!Check.isNull(endDate)) {
             endDate = endDate + " 23:59:59";
             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<>();
         List<MaterialInfo> setList = new ArrayList<>();
         PageInfo<MaterialInfo> pageInfo = new PageInfo<>(dailyList);
         PageInfo<MaterialInfo> pageInfo = new PageInfo<>(dailyList);
         if (!dailyList.isEmpty()) {
         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,
     public Map<String, Object> queryPageList(String type, Integer status, Long productId, String materialName, String code,
                                              String startDate, String endDate, String tagCode,
                                              String startDate, String endDate, String tagCode,
                                              Long projectId, String clipId, String shotId, String planId, String leaderName,
                                              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 = "offlineFlag", required = false) Integer offlineFlag,
-
                                              @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                              @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                              @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
                                              @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -344,7 +343,7 @@ public class MaterialInfoController {
                 List<Long> projectIdsByProductId = projectService.getProjectIdsByProductId(productId);
                 List<Long> projectIdsByProductId = projectService.getProjectIdsByProductId(productId);
                 projectIds.addAll(projectIdsByProductId);
                 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)) {
         } else if ("operator".equals(roleCode) || "kuaishouOperationManager".equals(roleCode) || "operationAssistant".equals(roleCode) || "touTiaoOperationManager".equals(roleCode)) {
             if (!Check.isNull(projectId)) {
             if (!Check.isNull(projectId)) {
@@ -360,7 +359,7 @@ public class MaterialInfoController {
                 projectIds.addAll(partakeProjectIds);
                 projectIds.addAll(partakeProjectIds);
                 projectIds.addAll(productProjectIds);
                 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)) {
         } 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 {
             } else {
                 projectIds = projectMemberService.getProjectIdsByProductId(null, userId);
                 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 {
         } else {
             //查询自己上传的视频
             //查询自己上传的视频
             if (!Check.isNull(projectId)) {
             if (!Check.isNull(projectId)) {
@@ -379,7 +378,7 @@ public class MaterialInfoController {
             } else if (!Check.isNull(productId)) {
             } else if (!Check.isNull(productId)) {
                 projectIds = projectMemberService.getProjectIdsByProductId(productId, userId);
                 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;
 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 com.alibaba.fastjson.JSONObject;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.modules.ctop.service.IMaterialUploadTaskService;
 import org.jeecg.modules.ctop.service.IMaterialUploadTaskService;
 import org.springframework.beans.factory.annotation.Autowired;
 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
 @RestController
 @RequestMapping("/ctop/materialUpload")
 @RequestMapping("/ctop/materialUpload")
 public class MaterialUploadController {
 public class MaterialUploadController {
-
-    @Autowired
-    private IMaterialUploadService materialUploadService;
     @Autowired
     @Autowired
     private IMaterialUploadTaskService materialUploadTaskService;
     private IMaterialUploadTaskService materialUploadTaskService;
 
 
-
+    @ResponseBody
     @PostMapping(value = "/uploadAccount")
     @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)
     @Excel(name = "快手账户id", width = 15)
     @ApiModelProperty(value = "快手账户id")
     @ApiModelProperty(value = "快手账户id")
     private Long kuaishouUserId;
     private Long kuaishouUserId;
+    private Integer shieldBackwardSwitch;
     /**
     /**
      * 上传人id
      * 上传人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;
 package org.jeecg.modules.ctop.mapper;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.ctop.entity.MaterialUploadTask;
 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);
     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">
 <mapper namespace="org.jeecg.modules.ctop.mapper.MaterialUploadTaskMapper">
 
 
     <select id="getCountByUserIdAndMd5" resultType="java.lang.Integer">
     <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 signature = #{signature}
         and task_status != 4
         and task_status != 4
     </select>
     </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
         limit 1
     </select>
     </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>
 </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;
 package org.jeecg.modules.ctop.service;
 
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.ctop.entity.MaterialUploadTask;
 import org.jeecg.modules.ctop.entity.MaterialUploadTask;
@@ -14,5 +13,5 @@ import org.jeecg.modules.ctop.entity.MaterialUploadTask;
  */
  */
 public interface IMaterialUploadTaskService extends IService<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.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 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
     @Override
-    public JSONArray submitTask(JSONObject json) {
+    public JSONObject submitTask(JSONObject json) {
+        JSONObject returnJson = new JSONObject();
         try {
         try {
             if (Check.isNull(json)) {
             if (Check.isNull(json)) {
                 throw new Exception("入参不能为空");
                 throw new Exception("入参不能为空");
@@ -44,44 +50,112 @@ public class MaterialUploadTaskServiceImpl extends ServiceImpl<MaterialUploadTas
             if (Check.isNull(materialArray)) {
             if (Check.isNull(materialArray)) {
                 throw new Exception("请传入素材信息");
                 throw new Exception("请传入素材信息");
             }
             }
-
             JSONArray accountArray = json.getJSONArray("accountArray");
             JSONArray accountArray = json.getJSONArray("accountArray");
             if (Check.isNull(accountArray)) {
             if (Check.isNull(accountArray)) {
                 throw new Exception("请传入账户信息");
                 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++) {
                 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);
                         Integer count = materialUploadTaskMapper.getCountByUserIdAndMd5(userId, signature);
                         if (count > 0) {
                         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;
                             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) {
         } 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;
     }
     }
+
 }
 }