浏览代码

素材同步

yumeng 3 年之前
父节点
当前提交
bc2691b206

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

@@ -6,8 +6,7 @@ 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.apache.shiro.SecurityUtils;
-import org.jeecg.common.system.vo.LoginUser;
+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.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -32,11 +31,13 @@ public class MaterialUploadController {
 
 
     @Autowired
     @Autowired
     private IMaterialUploadService materialUploadService;
     private IMaterialUploadService materialUploadService;
+    @Autowired
+    private IMaterialUploadTaskService materialUploadTaskService;
+
 
 
     @PostMapping(value = "/uploadAccount")
     @PostMapping(value = "/uploadAccount")
     public Map<String, Object> uploadAccount(@RequestBody JSONObject json) {
     public Map<String, Object> uploadAccount(@RequestBody JSONObject json) {
         Map<String, Object> returnMap = new HashMap<>();
         Map<String, Object> returnMap = new HashMap<>();
-        log.info("头条视频素材推送信息=={}",json);
         String mediaId = json.getString("mediaId");
         String mediaId = json.getString("mediaId");
         Boolean shieldBackwardSwitch = json.getBoolean("shieldBackwardSwitch");
         Boolean shieldBackwardSwitch = json.getBoolean("shieldBackwardSwitch");
         JSONArray materialArray = json.getJSONArray("materialArray");
         JSONArray materialArray = json.getJSONArray("materialArray");
@@ -48,8 +49,11 @@ public class MaterialUploadController {
             if (Check.isNull(materialArray) || Check.isNull(accountArray)) {
             if (Check.isNull(materialArray) || Check.isNull(accountArray)) {
                 throw new Exception("请选择账号或素材");
                 throw new Exception("请选择账号或素材");
             }
             }
-            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-            new Thread(() -> materialUploadService.uploadAccount(mediaId, materialArray, accountArray, sysUser.getId(), shieldBackwardSwitch)).start();
+
+            //     new Thread(() -> materialUploadService.uploadAccount(mediaId, materialArray, accountArray, sysUser.getId(), shieldBackwardSwitch)).start();
+
+            JSONArray returnArr = materialUploadTaskService.submitTask(json);
+
             returnMap.put("success", true);
             returnMap.put("success", true);
             returnMap.put("message", "开始上传文件");
             returnMap.put("message", "开始上传文件");
             returnMap.put("code", 0);
             returnMap.put("code", 0);

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

@@ -0,0 +1,110 @@
+package org.jeecg.modules.ctop.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.util.Date;
+
+/**
+ * 同步素材任务
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2021-10-21
+ */
+@Data
+@TableName("ctop_material_upload_task")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_material_upload_task对象", description = "同步素材任务")
+public class MaterialUploadTask {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+    private Long id;
+    /**
+     * 媒体
+     */
+    @Excel(name = "媒体", width = 15)
+    @ApiModelProperty(value = "媒体")
+    private Integer mediaId;
+    /**
+     * 素材md5
+     */
+    @Excel(name = "素材md5", width = 15)
+    @ApiModelProperty(value = "素材md5")
+    private String signature;
+    /**
+     * 账户id
+     */
+    @Excel(name = "账户id", width = 15)
+    @ApiModelProperty(value = "账户id")
+    private Long accountId;
+    /**
+     * 快手账户id
+     */
+    @Excel(name = "快手账户id", width = 15)
+    @ApiModelProperty(value = "快手账户id")
+    private Long kuaishouUserId;
+    /**
+     * 上传人id
+     */
+    @Excel(name = "上传人id", width = 15)
+    @ApiModelProperty(value = "上传人id")
+    private String userId;
+    /**
+     * 上传人姓名
+     */
+    @Excel(name = " 上传人姓名", width = 15)
+    @ApiModelProperty(value = " 上传人姓名")
+    private String userName;
+    /**
+     * 素材名称
+     */
+    @Excel(name = "素材名称", width = 15)
+    @ApiModelProperty(value = "素材名称")
+    private String materialName;
+    /**
+     * 素材链接
+     */
+    @Excel(name = "素材链接", width = 15)
+    @ApiModelProperty(value = "素材链接")
+    private String materialUrl;
+    /**
+     * 上传状态
+     */
+    @Excel(name = "上传状态 ", width = 15)
+    @ApiModelProperty(value = "上传状态 ")
+    private Integer taskStatus;
+    /**
+     * remarks
+     */
+    @Excel(name = "remarks", width = 15)
+    @ApiModelProperty(value = "remarks")
+    private String remarks;
+    /**
+     * 上传成功时间
+     */
+    @ApiModelProperty(value = "上传成功时间")
+    private Date updateSuccessTime;
+    /**
+     * updateTime
+     */
+    @ApiModelProperty(value = "updateTime")
+    private Date updateTime;
+    /**
+     * createTime
+     */
+    @ApiModelProperty(value = "createTime")
+    private Date createTime;
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.ctop.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.ctop.entity.MaterialUploadTask;
+
+/**
+ * 同步素材任务
+ *
+ * @author jeecg-boot
+ * 2021-10-21
+ * @version V1.0
+ */
+public interface MaterialUploadTaskMapper extends BaseMapper<MaterialUploadTask> {
+
+    Integer getCountByUserIdAndMd5(@Param("userId") Long userId,@Param("signature") String signature);
+
+    String getMaterialNameBySignature(@Param("signature") String signature);
+}

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

@@ -0,0 +1,16 @@
+<?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.ctop.mapper.MaterialUploadTaskMapper">
+
+    <select id="getCountByUserIdAndMd5" resultType="java.lang.Integer">
+        select  count(1)  from  ctop_video_merge_task
+        where 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}
+        limit 1
+    </select>
+</mapper>

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

@@ -0,0 +1,18 @@
+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;
+
+/**
+ * 同步素材任务
+ *
+ * @author jeecg-boot
+ * 2021-10-21
+ * @version V1.0
+ */
+public interface IMaterialUploadTaskService extends IService<MaterialUploadTask> {
+
+    JSONArray submitTask(JSONObject json);
+}

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

@@ -0,0 +1,87 @@
+package org.jeecg.modules.ctop.service.impl;
+
+import cn.com.ctop.common.module.utils.Check;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.ctop.entity.MaterialUploadTask;
+import org.jeecg.modules.ctop.mapper.MaterialUploadTaskMapper;
+import org.jeecg.modules.ctop.service.IMaterialUploadTaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 同步素材任务
+ *
+ * @author jeecg-boot
+ * 2021-10-21
+ * @version V1.0
+ */
+@Service
+public class MaterialUploadTaskServiceImpl extends ServiceImpl<MaterialUploadTaskMapper, MaterialUploadTask> implements IMaterialUploadTaskService {
+
+    @Autowired
+    private MaterialUploadTaskMapper materialUploadTaskMapper;
+
+    /**
+     * 同步素材提交任务
+     *
+     * @param json
+     * @return
+     */
+
+    @Override
+    public JSONArray submitTask(JSONObject json) {
+        try {
+            if (Check.isNull(json)) {
+                throw new Exception("入参不能为空");
+            }
+            Integer mediaId = json.getInteger("mediaId");
+            if (Check.isNull(mediaId)) {
+                throw new Exception("媒体信息必传");
+            }
+            JSONArray materialArray = json.getJSONArray("materialArray");
+            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)) {
+                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);
+                        Integer count = materialUploadTaskMapper.getCountByUserIdAndMd5(userId, signature);
+                        if (count > 0) {
+                            continue;
+
+                        }
+
+                    }
+
+
+                }
+
+
+            }
+
+
+        } catch (Exception e) {
+
+        }
+
+
+        return null;
+    }
+}