Browse Source

批量工具 素材库调整

yumeng 5 years ago
parent
commit
1fe134641a
23 changed files with 478 additions and 126 deletions
  1. 18 16
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialImageInfoController.java
  2. 5 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialInfoController.java
  3. 76 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestController.java
  4. 2 9
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/fileupload/controller/FileController.java
  5. 0 6
      module-common/src/main/java/cn/com/ctop/common/module/entity/MaterialImageInfo.java
  6. 3 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/MaterialImageInfoMapper.java
  7. 3 1
      module-common/src/main/java/cn/com/ctop/common/module/mapper/MaterialInfoMapper.java
  8. 44 43
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialImageInfoMapper.xml
  9. 10 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialInfoMapper.xml
  10. 3 1
      module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialImageInfoService.java
  11. 8 4
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialImageInfoServiceImpl.java
  12. 10 12
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java
  13. 2 2
      module-common/src/main/java/cn/com/ctop/common/module/utils/RandomUtil.java
  14. 2 0
      module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/IMaterialUploadService.java
  15. 72 1
      module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/impl/MaterialUploadServiceImpl.java
  16. 14 6
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/BatchController.java
  17. 2 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaiShouImageGetMapper.java
  18. 7 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouImageGetMapper.xml
  19. 2 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaiShouImageGetService.java
  20. 176 13
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/BatchServiceImpl.java
  21. 5 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouImageGetServiceImpl.java
  22. 7 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouInterfaceServiceImpl.java
  23. 7 4
      module-report/src/main/java/cn/com/ctop/bytedance/service/impl/ByteDanceHourlyAccountWarningServiceImpl.java

+ 18 - 16
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialImageInfoController.java

@@ -80,24 +80,10 @@ public class MaterialImageInfoController {
         materialImageInfo.setCreateTime(null);
         if (!Check.isNull(materialImageInfo.getUserId())) {
             String roleCode = materialInfoService.getRoleCodeByUserId(materialImageInfo.getUserId());
-            if ("admin".equals(roleCode) || "operator".equals(roleCode) || "kuaishouOperationManager".equals(roleCode) || "operationAssistant".equals(roleCode) || "touTiaoOperationManager".equals(roleCode) || "sale".equals(roleCode) || "saleDirector".equals(roleCode)) {
+            if ("designTeamLeader".equals(roleCode) || "planeLeader".equals(roleCode) || "admin".equals(roleCode) || "operator".equals(roleCode) || "kuaishouOperationManager".equals(roleCode) || "operationAssistant".equals(roleCode) || "touTiaoOperationManager".equals(roleCode) || "sale".equals(roleCode) || "saleDirector".equals(roleCode)) {
                 materialImageInfo.setUserId(null);
                 queryWrapper = QueryGenerator.initQueryWrapper(materialImageInfo, req.getParameterMap());
-            } else if ("designTeamLeader".equals(roleCode) || "planeLeader".equals(roleCode) || "plane".equals(roleCode) || "plan".equals(roleCode) || "shot".equals(roleCode)) {
-                String userId = materialImageInfo.getUserId();
-                materialImageInfo.setUserId(null);
-                queryWrapper = QueryGenerator.initQueryWrapper(materialImageInfo, req.getParameterMap());
-                if (Check.isNull(materialImageInfo.getProjectId())) {
-                    List<Long> projects = memberService.selectProjectsByUserId(userId);
-                    if (!Check.isNull(projects)) {
-                        queryWrapper.in("project_id", projects);
-                    } else {
-                        result.setSuccess(true);
-                        result.setResult(null);
-                        return result;
-                    }
-                }
-            } else {
+            } else if ("plane".equals(roleCode) || "plan".equals(roleCode) || "shot".equals(roleCode)) {
                 queryWrapper = QueryGenerator.initQueryWrapper(materialImageInfo, req.getParameterMap());
             }
             if (!Check.isNull(createTime)) {
@@ -143,6 +129,22 @@ public class MaterialImageInfoController {
     }
 
 
+
+
+
+    @GetMapping(value = "/getImageList")
+    public Result<List<MaterialImageInfo>> getImageList(MaterialImageInfo MaterialImageInfo,
+                                                         HttpServletRequest req) {
+        Result<List<MaterialImageInfo>> result = new Result<>();
+        QueryWrapper<MaterialImageInfo> queryWrapper = QueryGenerator.initQueryWrapper(MaterialImageInfo, req.getParameterMap());
+        List<MaterialImageInfo> list = MaterialImageInfoService.list(queryWrapper);
+        result.setSuccess(true);
+        result.setResult(list);
+        return result;
+    }
+
+
+
     @GetMapping(value = "/getDetail")
     public Result<MaterialImageInfo> getDetail(String id) {
         Result<MaterialImageInfo> result = new Result<>();

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

@@ -45,7 +45,10 @@ import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.text.ParseException;
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 素材信息
@@ -248,7 +251,7 @@ public class MaterialInfoController {
 
 
                 QueryWrapper<MaterialImageInfo> imageInfoQueryWrapper = new QueryWrapper<>();
-                imageInfoQueryWrapper.eq("video_id", material.getId());
+                imageInfoQueryWrapper.eq("video_id", material.getCode());
                 imageInfoQueryWrapper.eq("status", 0);
                 List<MaterialImageInfo> imageInfoList = iMaterialImageInfoService.list(imageInfoQueryWrapper);
                 if (Check.isNull(imageInfoList)) {
@@ -538,5 +541,4 @@ public class MaterialInfoController {
     }
 
 
-
 }

+ 76 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestController.java

@@ -4,11 +4,9 @@ import cn.com.ctop.bytedance.entity.BytedancePlanDailyReport;
 import cn.com.ctop.bytedance.service.IBytedancePlanDailyReportService;
 import cn.com.ctop.bytedance.service.IBytedancePlanHourlyReportService;
 import cn.com.ctop.bytedance.service.IReportService;
-import cn.com.ctop.common.module.entity.CtopOauthToken;
-import cn.com.ctop.common.module.entity.UserAllocation;
+import cn.com.ctop.common.module.entity.*;
 import cn.com.ctop.common.module.mapper.CtopOauthTokenMapper;
-import cn.com.ctop.common.module.service.ICtopOauthTokenService;
-import cn.com.ctop.common.module.service.IUserAllocationService;
+import cn.com.ctop.common.module.service.*;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.CtopAdConstant;
 import cn.com.ctop.common.module.utils.ResultMapUtils;
@@ -54,6 +52,16 @@ public class TestController {
     private CtopOauthTokenMapper oauthTokenMapper;
     @Autowired
     private IKuaiShouHistoryReportTaskService historyReportTaskService;
+    @Autowired
+    private IMaterialInfoService materialInfoService;
+    @Autowired
+    private IMaterialParameterService parameterService;
+    @Autowired
+    private IMaterialAscriptionService ascriptionService;
+    @Autowired
+    private IMaterialTagService tagService;
+    @Autowired
+    private IMaterialImageInfoService iMaterialImageInfoService;
 
     @PostMapping(value = "/create")
     public Map<String, Object> authorization(@RequestBody JSONObject jsonObject) {
@@ -86,6 +94,70 @@ public class TestController {
     private IKuaishouInterfaceService kuaishouInterfaceService;
 
 
+    @GetMapping(value = "/updateCode")
+    public String updateCode() {
+
+        List<MaterialInfo> list = materialInfoService.list();
+        for (MaterialInfo info : list) {
+
+            QueryWrapper<MaterialTag> tagQueryWrapper = new QueryWrapper<>();
+            tagQueryWrapper.eq("material_id", info.getId());
+            MaterialTag updateTag = new MaterialTag();
+            updateTag.setMaterialId(info.getCode());
+            tagService.update(updateTag, tagQueryWrapper);
+
+            QueryWrapper<MaterialAscription> materialAscriptionQuery = new QueryWrapper<>();
+            materialAscriptionQuery.eq("material_id", info.getId());
+            MaterialAscription updateMaterialAscription = new MaterialAscription();
+            updateMaterialAscription.setMaterialId(info.getCode());
+            ascriptionService.update(updateMaterialAscription, materialAscriptionQuery);
+
+
+            QueryWrapper<MaterialParameter> parameterQueryWrapper = new QueryWrapper<>();
+            parameterQueryWrapper.eq("material_id", info.getId());
+            MaterialParameter updateMaterialParameter = new MaterialParameter();
+            updateMaterialParameter.setMaterialId(info.getCode());
+            parameterService.update(updateMaterialParameter, parameterQueryWrapper);
+
+
+        }
+        List<MaterialImageInfo> list1 = iMaterialImageInfoService.list();
+        for (MaterialImageInfo imageInfo : list1) {
+            QueryWrapper<MaterialParameter> parameterQueryWrapper = new QueryWrapper<>();
+            parameterQueryWrapper.eq("material_id", imageInfo.getId());
+            MaterialParameter updateMaterialParameter = new MaterialParameter();
+            updateMaterialParameter.setMaterialId(imageInfo.getCode());
+            parameterService.update(updateMaterialParameter, parameterQueryWrapper);
+        }
+
+
+        List<String> codeList = iMaterialImageInfoService.getCodeList();
+        if (!Check.isNull(codeList)) {
+            for (int i = 0; i < codeList.size(); i++) {
+                String code = codeList.get(i);
+                QueryWrapper<MaterialImageInfo> materialImageInfoQueryWrapper = new QueryWrapper<>();
+                materialImageInfoQueryWrapper.eq("code", code);
+
+                List<MaterialImageInfo> list2 = iMaterialImageInfoService.list(materialImageInfoQueryWrapper);
+                if (list2.size() > 1) {
+                    for (int j = 0; j < list2.size(); j++) {
+                        if (j == 0) {
+                            continue;
+                        }
+                        MaterialImageInfo materialImageInfo = list2.get(j);
+                        iMaterialImageInfoService.removeById(materialImageInfo.getId());
+                    }
+
+                }
+            }
+
+        }
+
+        return "SUCCESS";
+
+    }
+
+
     @GetMapping(value = "/createTask")
     public String createTask(Long accountId) {
         Result<String> result = new Result<String>();

+ 2 - 9
jeecg-boot-module-system/src/main/java/org/jeecg/modules/fileupload/controller/FileController.java

@@ -37,14 +37,12 @@ public class FileController {
     }
 
 
-
     @RequestMapping("file/imageCheck")
-    public Map<String, Object> imageCheck(String code, Long projectId) {
-        return materialImageInfoService.checkMaterialInfo(code, projectId);
+    public Map<String, Object> imageCheck(String code, String videoId) {
+        return materialImageInfoService.checkMaterialInfo(code, videoId);
     }
 
 
-
     @PostMapping("/insertV2")
     public Map<String, Object> insertV2(@RequestBody JSONObject json) {
         LoginUser user = (LoginUser) SecurityUtils.getSubject()
@@ -55,8 +53,6 @@ public class FileController {
     }
 
 
-
-
     @PostMapping("/insertImage")
     public Map<String, Object> insertImage(@RequestBody JSONObject json) {
         LoginUser user = (LoginUser) SecurityUtils.getSubject()
@@ -67,9 +63,6 @@ public class FileController {
     }
 
 
-
-
-
     @PostMapping("file/insert")
     public Map<String, Object> insertFile(@RequestBody JSONObject json) {
         LoginUser user = (LoginUser) SecurityUtils.getSubject()

+ 0 - 6
module-common/src/main/java/cn/com/ctop/common/module/entity/MaterialImageInfo.java

@@ -82,12 +82,6 @@ public class MaterialImageInfo {
     @ApiModelProperty(value = "素材描述")
     private Object materialDescribe;
     /**
-     * 项目id
-     */
-    @Excel(name = "项目id", width = 15)
-    @ApiModelProperty(value = "项目id")
-    private Long projectId;
-    /**
      * 拒绝原因
      */
     @Excel(name = "拒绝原因", width = 15)

+ 3 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/MaterialImageInfoMapper.java

@@ -3,6 +3,8 @@ package cn.com.ctop.common.module.mapper;
 import cn.com.ctop.common.module.entity.MaterialImageInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * 素材
  *
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 public interface MaterialImageInfoMapper extends BaseMapper<MaterialImageInfo> {
     void insertSelective(MaterialImageInfo materialImageInfo);
 
+    List<String> getCodeList();
 }

+ 3 - 1
module-common/src/main/java/cn/com/ctop/common/module/mapper/MaterialInfoMapper.java

@@ -31,5 +31,7 @@ public interface MaterialInfoMapper extends BaseMapper<MaterialInfo> {
 
     List<String> getEffiSignature();
 
-    MaterialInfo getMaterialInfoByCode(@Param("code")String code);
+    MaterialInfo getMaterialInfoByCode(@Param("code") String code);
+
+    Long getProjectIdByAccountId(@Param("accountId") Long accountId);
 }

+ 44 - 43
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialImageInfoMapper.xml

@@ -2,121 +2,122 @@
 <!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.mapper.MaterialImageInfoMapper">
 
-    <insert id="insertSelective" parameterType="cn.com.ctop.common.module.entity.MaterialImageInfo" >
+    <insert id="insertSelective" parameterType="cn.com.ctop.common.module.entity.MaterialImageInfo">
         replace into ctop_material_image_info
-        <trim prefix="(" suffix=")" suffixOverrides="," >
-            <if test="id != null" >
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
                 id,
             </if>
-            <if test="code != null" >
+            <if test="code != null">
                 code,
             </if>
-            <if test="videoId != null" >
+            <if test="videoId != null">
                 video_id,
             </if>
-            <if test="materialName != null" >
+            <if test="materialName != null">
                 material_name,
             </if>
-            <if test="userId != null" >
+            <if test="userId != null">
                 user_id,
             </if>
-            <if test="auditorId != null" >
+            <if test="auditorId != null">
                 auditor_id,
             </if>
-            <if test="status != null" >
+            <if test="status != null">
                 status,
             </if>
-            <if test="projectId != null" >
-                project_id,
-            </if>
-            <if test="width != null" >
+
+            <if test="width != null">
                 width,
             </if>
-            <if test="type != null" >
+            <if test="type != null">
                 type,
             </if>
-            <if test="height != null" >
+            <if test="height != null">
                 height,
             </if>
-            <if test="size != null" >
+            <if test="size != null">
                 size,
             </if>
-            <if test="createTime != null" >
+            <if test="createTime != null">
                 create_time,
             </if>
-            <if test="updateTime != null" >
+            <if test="updateTime != null">
                 update_time,
             </if>
-            <if test="url != null" >
+            <if test="url != null">
                 url,
             </if>
-            <if test="materialDescribe != null" >
+            <if test="materialDescribe != null">
                 material_describe,
             </if>
-            <if test="refuseReason != null" >
+            <if test="refuseReason != null">
                 refuse_reason,
             </if>
-            <if test="refuseFile != null" >
+            <if test="refuseFile != null">
                 refuse_file,
             </if>
         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides="," >
-            <if test="id != null" >
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
                 #{id,jdbcType=VARCHAR},
             </if>
-            <if test="code != null" >
+            <if test="code != null">
                 #{code,jdbcType=VARCHAR},
             </if>
-            <if test="videoId != null" >
+            <if test="videoId != null">
                 #{videoId,jdbcType=VARCHAR},
             </if>
-            <if test="materialName != null" >
+            <if test="materialName != null">
                 #{materialName,jdbcType=VARCHAR},
             </if>
-            <if test="userId != null" >
+            <if test="userId != null">
                 #{userId,jdbcType=VARCHAR},
             </if>
-            <if test="auditorId != null" >
+            <if test="auditorId != null">
                 #{auditorId,jdbcType=VARCHAR},
             </if>
-            <if test="status != null" >
+            <if test="status != null">
                 #{status,jdbcType=INTEGER},
             </if>
-            <if test="projectId != null" >
-                #{projectId,jdbcType=BIGINT},
-            </if>
-            <if test="width != null" >
+
+            <if test="width != null">
                 #{width,jdbcType=VARCHAR},
             </if>
-            <if test="type != null" >
+            <if test="type != null">
                 #{type,jdbcType=VARCHAR},
             </if>
-            <if test="height != null" >
+            <if test="height != null">
                 #{height,jdbcType=VARCHAR},
             </if>
-            <if test="size != null" >
+            <if test="size != null">
                 #{size,jdbcType=VARCHAR},
             </if>
-            <if test="createTime != null" >
+            <if test="createTime != null">
                 #{createTime,jdbcType=TIMESTAMP},
             </if>
-            <if test="updateTime != null" >
+            <if test="updateTime != null">
                 #{updateTime,jdbcType=TIMESTAMP},
             </if>
-            <if test="url != null" >
+            <if test="url != null">
                 #{url},
             </if>
-            <if test="materialDescribe != null" >
+            <if test="materialDescribe != null">
                 #{materialDescribe},
             </if>
-            <if test="refuseReason != null" >
+            <if test="refuseReason != null">
                 #{refuseReason},
             </if>
-            <if test="refuseFile != null" >
+            <if test="refuseFile != null">
                 #{refuseFile},
             </if>
         </trim>
     </insert>
 
 
+    <select id="getCodeList" resultType="java.lang.String">
+
+     SELECT DISTINCT(code)  from  ctop_material_image_info
+    </select>
+
 </mapper>

+ 10 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialInfoMapper.xml

@@ -2,6 +2,16 @@
 <!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.mapper.MaterialInfoMapper">
 
+
+    <select id="getProjectIdByAccountId" resultType="java.lang.Long">
+
+       select
+       project_id
+       from ctop_user_allocation
+       where  account_id = #{accountId}
+
+    </select>
+
     <select id="selectUserNameById" resultType="java.lang.String">
    select realname from  sys_user where  id = #{auditorId}
     </select>

+ 3 - 1
module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialImageInfoService.java

@@ -4,6 +4,7 @@ import cn.com.ctop.common.module.entity.MaterialImageInfo;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -20,7 +21,8 @@ public interface IMaterialImageInfoService extends IService<MaterialImageInfo> {
      */
     void insertImage(JSONObject imageJson);
 
-    Map<String, Object> checkMaterialInfo(String code, Long projectId);
+    Map<String, Object> checkMaterialInfo(String code, String videoId);
 
 
+    List<String> getCodeList();
 }

+ 8 - 4
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialImageInfoServiceImpl.java

@@ -16,6 +16,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -44,7 +45,6 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
 
         }
         String userId = imageJson.getString("userId");
-        Long projectId = imageJson.getLong("projectId");
         JSONArray imageArr = imageJson.getJSONArray("imageArr");
         for (int i = 0; i < imageArr.size(); i++) {
             JSONObject json = imageArr.getJSONObject(i);
@@ -62,7 +62,6 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
                 materialImageInfo.setUrl("https:" + json.getString("url"));
                 materialImageInfo.setMaterialName(json.getString("materialName"));
                 materialImageInfo.setStatus(0);
-                materialImageInfo.setProjectId(projectId);
                 materialImageInfo.setUserId(userId);
                 materialImageInfoMapper.insertSelective(materialImageInfo);
 
@@ -73,13 +72,13 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
     }
 
     @Override
-    public Map<String, Object> checkMaterialInfo(String code, Long projectId) {
+    public Map<String, Object> checkMaterialInfo(String code, String videoId) {
 
 
         Map<String, Object> result = new HashMap<>();
         QueryWrapper<MaterialImageInfo> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("code", code);
-        queryWrapper.eq("project_id", projectId);
+        queryWrapper.eq("video_id", videoId);
         queryWrapper.last("limit 1");
         MaterialImageInfo info = this.getOne(queryWrapper);
         if (null != info) {
@@ -95,5 +94,10 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
 
     }
 
+    @Override
+    public List<String> getCodeList() {
+        return materialImageInfoMapper.getCodeList();
+    }
+
 
 }

+ 10 - 12
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java

@@ -196,7 +196,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
         info.setType(type);
         this.save(info);
         Map<String, Object> deleteMap = new HashMap<>();
-        deleteMap.put("material_id", info.getId());
+        deleteMap.put("material_id", info.getCode());
         JSONObject ascription = jsonObject.getJSONObject("ascription");
         if (!Check.isNull(ascription)) {
             MaterialAscription materialAscription = new MaterialAscription();
@@ -245,8 +245,6 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
 
     //@Autowired
     //private MaterialInfoMapper materialInfoMapper;
-
-
     @Override
     public JSONObject getDetail(String materialId) {
         JSONObject json = new JSONObject();
@@ -346,7 +344,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
                             long duration = m.getDuration();
                             long secondDuration = duration / 1000;
                             MaterialParameter materialParameter = new MaterialParameter();
-                            materialParameter.setMaterialId(materialInfo.getId());
+                            materialParameter.setMaterialId(materialInfo.getCode());
                             // 视频秒数
                             materialParameter.setSecond(secondDuration);
                             // 视频格式
@@ -474,7 +472,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
             JSONArray imageArr = json.getJSONArray("imageArr");
             if (!Check.isNull(imageArr)) {
                 JSONObject imageJson = new JSONObject();
-                imageJson.put("videoId", info.getId());
+                imageJson.put("videoId", info.getCode());
                 imageJson.put("userId", userId);
                 imageJson.put("projectId", projectId);
                 imageJson.put("imageArr", imageArr);
@@ -482,11 +480,11 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
             }
 
             Map<String, Object> deleteMap = new HashMap<>();
-            deleteMap.put("material_id", info.getId());
+            deleteMap.put("material_id", info.getCode());
             JSONObject ascription = json.getJSONObject("ascription");
             if (!Check.isNull(ascription)) {
                 MaterialAscription materialAscription = new MaterialAscription();
-                materialAscription.setMaterialId(info.getId());
+                materialAscription.setMaterialId(info.getCode());
                 // 剪辑人
                 materialAscription.setClipId(ascription.getString("clipId"));
                 // 拍摄人id
@@ -510,7 +508,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
                     String tagStr = tag.getString(i);
                     if (!Check.isNull(tagStr)) {
                         MaterialTag materialTag = new MaterialTag();
-                        materialTag.setMaterialId(info.getId());
+                        materialTag.setMaterialId(info.getCode());
                         materialTag.setTag(tagStr);
                         materialTagMapper.insert(materialTag);
                     }
@@ -546,17 +544,17 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
         return resultMap;
     }
 
-    public List<String> getEffiCode(){
+    public List<String> getEffiCode() {
         return materialInfoMapper.getEffiSignature();
     }
 
-    public List<MaterialInfo> effiMaterialInfo(){
+    public List<MaterialInfo> effiMaterialInfo() {
         List<MaterialInfo> materialInfoList = new ArrayList<>();
         List<String> effiSignatureList = materialInfoMapper.getEffiSignature();
-        for(String code:effiSignatureList){
+        for (String code : effiSignatureList) {
             MaterialInfo materialInfo = materialInfoMapper.getMaterialInfoByCode(code);
 
-            if (materialInfo == null){
+            if (materialInfo == null) {
                 continue;
             }
             //判断是否已经同步到快手平台

+ 2 - 2
module-common/src/main/java/cn/com/ctop/common/module/utils/RandomUtil.java

@@ -9,8 +9,8 @@ public class RandomUtil {
         char[] c = charArray();//获取包含26个字母大小写和数字的字符数组
 
         Random rd = new Random();
-        String code = "_";
-        for (int k = 0; k <= 4; k++) {
+        String code = "#";
+        for (int k = 0; k < 4; k++) {
             int index = rd.nextInt(c.length);//随机获取数组长度作为索引
             code += c[index];//循环添加到字符串后面
         }

+ 2 - 0
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/IMaterialUploadService.java

@@ -14,4 +14,6 @@ public interface IMaterialUploadService {
      * @param accountArray
      */
     void uploadAccount(String mediaId, JSONArray materialArray, JSONArray accountArray) throws IOException;
+
+    String kuauiShouImageUpload(String url, String signature, Long accountId, String token);
 }

+ 72 - 1
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/impl/MaterialUploadServiceImpl.java

@@ -13,6 +13,7 @@ import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.KuaishouInterfaceConstant;
 import cn.com.ctop.common.module.utils.LoadFileUtil;
 import cn.com.ctop.common.module.utils.PropertiesUtils;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouVideoGetService;
@@ -75,6 +76,75 @@ public class MaterialUploadServiceImpl implements IMaterialUploadService {
     private IMaterialUploadImageService materialUploadImageService;
 
 
+    public String kuauiShouImageUpload(String url, String signature, Long accountId, String token) {
+
+
+        try {
+            String replaceUrl = url.replace(replaceOldValue, replaceValue);
+            log.info("replaceUrl:{}", replaceUrl);
+            String localUrl = LoadFileUtil.downLoadFromUrl(replaceUrl, downloadUrl);
+            FileSystemResource resource = new FileSystemResource(new File(localUrl));
+            Map<String, String> headerMap = new HashMap<>();
+            headerMap.put("Content-Type", "multipart/form-data");
+            JSONObject requestJson = new JSONObject();
+            requestJson.put("file", resource);
+            requestJson.put("signature", signature);
+            QueryWrapper<MaterialParameter> parameterQueryWrapper = new QueryWrapper<>();
+            parameterQueryWrapper.eq("material_id", signature);
+            parameterQueryWrapper.orderByDesc("create_time").last("limit 1");
+            MaterialParameter materialParameter = materialParameterService.getOne(parameterQueryWrapper);
+            if (!Check.isNull(materialParameter)) {
+                Integer type = MaterialEnum.getTypeBySize(Integer.valueOf(materialParameter.getWidth()), Integer.valueOf(materialParameter.getHeight()));
+                if (!Check.isNull(type) && type != 0) {
+                    requestJson.put("type", type);
+                }
+            }
+
+
+            requestJson.put("advertiser_id", accountId);
+            headerMap.put("Access-Token", token);
+
+
+            String requestUrl = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.IMAGE_UPLOAD;
+            requestJson.put("upload_type", "1");
+
+
+            String result = exceptInfoForRestTemplate(requestUrl, requestJson, headerMap);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            //         kuaishouInterfaceService.imageGet(accountId, ctopOauthToken.getAccessToken(), dataJson.getString("image_token"));
+
+            JSONObject dataJson = resultJson.getJSONObject("data");
+            if (!Check.isNull(dataJson)) {
+
+                String image_token = dataJson.getString("image_token");
+                KuaiShouImageGet imageGet = new KuaiShouImageGet();
+                imageGet.setId(accountId + image_token);
+                imageGet.setAccountId(accountId);
+                imageGet.setUrl(dataJson.getString("url"));
+                imageGet.setWidth(dataJson.getInteger("width"));
+                imageGet.setHeight(dataJson.getInteger("height"));
+                imageGet.setSize(dataJson.getInteger("size"));
+                imageGet.setFormat(dataJson.getString("format"));
+                Integer type = MaterialEnum.getTypeBySize(dataJson.getInteger("width"), dataJson.getInteger("height"));
+                if (!Check.isNull(type)) {
+                    imageGet.setMaterialType(type);
+                }
+                imageGet.setSignature(signature);
+                imageGet.setImageToken(image_token);
+                iKuaiShouImageGetService.saveOrUpdate(imageGet);
+                return dataJson.getString("image_token");
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+
+        }
+
+        return null;
+    }
+
+
     /**
      * 同步素材到账号下
      *
@@ -268,7 +338,8 @@ public class MaterialUploadServiceImpl implements IMaterialUploadService {
     @Autowired
     private RestTemplate rest;
 
-    private String exceptInfoForRestTemplate(String url, Map<String, Object> paramMap, Map<String, String> headerMap) throws ParseException {
+    private String exceptInfoForRestTemplate(String
+                                                     url, Map<String, Object> paramMap, Map<String, String> headerMap) throws ParseException {
         try {
             MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
             if (!Check.isNullMap(paramMap)) {

+ 14 - 6
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/BatchController.java

@@ -1040,11 +1040,14 @@ public class BatchController {
      * @return
      */
     @GetMapping(value = "/getCreativeCopywriter")
-    public Result<MaterialInfo> getVideoList(String code) {
+    public Result<MaterialInfo> getVideoList(String code, Long accountId) {
         Result<MaterialInfo> result = new Result<>();
         try {
+
+            Long projectId = materialInfoMapper.getProjectIdByAccountId(accountId);
             QueryWrapper<MaterialInfo> materialInfoQueryWrapper = new QueryWrapper<>();
             materialInfoQueryWrapper.eq("code", code);
+            materialInfoQueryWrapper.eq("project_id", projectId);
             materialInfoQueryWrapper.last("limit 1");
             MaterialInfo materialInfo = materialInfoMapper.selectOne(materialInfoQueryWrapper);
             result.setSuccess(true);
@@ -1601,15 +1604,11 @@ public class BatchController {
             if (Check.isNull(createCount) || createCount == 0) {
                 throw new Exception("请选择迭代次数");
             }
-
             if (createCount == 1) {
                 JSONObject createJson = batchService.createUnit(requestJson);
-
                 if (!Check.isNull(createJson)) {
                     failArr = createJson.getJSONArray("fail");
                 }
-
-
             } else if (createCount > 1) {
                 QueryWrapper<KuaiShouGroup> queryWrapper = new QueryWrapper<>();
                 queryWrapper.eq("account_id", accountId);
@@ -1618,7 +1617,16 @@ public class BatchController {
                 if (Check.isNull(group)) {
                     throw new Exception("未获取到广告组信息");
                 }
-                String unitName = group.getUnitName();
+                String unitNameStr = group.getUnitName();
+                String unitName;
+
+                if (unitNameStr.contains("#")) {
+                    int lastIndexOf = unitNameStr.lastIndexOf("#");
+                    unitName = unitNameStr.substring(0, lastIndexOf);
+                } else {
+                    unitName = unitNameStr;
+                }
+
                 Integer createType = requestJson.getInteger("createType");
                 if (createType == 1) { // 系统生成
                     for (int i = 0; i < createCount; i++) {

+ 2 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaiShouImageGetMapper.java

@@ -15,4 +15,6 @@ import java.util.List;
 public interface KuaiShouImageGetMapper extends BaseMapper<KuaiShouImageGet> {
 
     void replaceBatch(@Param(value = "images")List<KuaiShouImageGet>imagesGets);
+
+    String getUrlByCode(String signature);
 }

+ 7 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouImageGetMapper.xml

@@ -36,4 +36,11 @@
         </foreach>
     </insert>
 
+    <select id="getUrlByCode" resultType="java.lang.String">
+        select url from ctop_material_image_info
+        where  code = #{signature}
+        limit 1
+
+    </select>
+
 </mapper>

+ 2 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaiShouImageGetService.java

@@ -13,4 +13,6 @@ import java.util.List;
  */
 public interface IKuaiShouImageGetService extends IService<KuaiShouImageGet> {
     void replaceBatch(List<KuaiShouImageGet> imageGets);
+
+    String getUrlByCode(String signature);
 }

+ 176 - 13
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/BatchServiceImpl.java

@@ -1,35 +1,56 @@
 package cn.com.ctop.kuaishou.modules.batch.service.impl;
 
 import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.entity.MaterialParameter;
 import cn.com.ctop.common.module.entity.UserAllocation;
+import cn.com.ctop.common.module.enums.MaterialEnum;
 import cn.com.ctop.common.module.mapper.UserAllocationMapper;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
-import cn.com.ctop.common.module.utils.Check;
-import cn.com.ctop.common.module.utils.RandomUtil;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouCampaign;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouCreative;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroup;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroupTarget;
+import cn.com.ctop.common.module.service.IMaterialParameterService;
+import cn.com.ctop.common.module.utils.*;
+import cn.com.ctop.kuaishou.modules.batch.entity.*;
 import cn.com.ctop.kuaishou.modules.batch.mapper.*;
 import cn.com.ctop.kuaishou.modules.batch.service.IBatchService;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouUpdateService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.http.ParseException;
 import org.jeecg.common.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.FileSystemResource;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
 
+import java.io.File;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 @Slf4j
 @Service
 public class BatchServiceImpl implements IBatchService {
+
+    @Value("${oss.replace.replace-value}")
+    private String replaceValue;
+    @Value("${oss.replace.replace-old-value}")
+    private String replaceOldValue;
+    @Value("${oss.replace.download}")
+    private String downloadUrl;
+
     @Autowired
     private BatchMapper batchMapper;
     @Autowired
@@ -718,7 +739,7 @@ public class BatchServiceImpl implements IBatchService {
         QueryWrapper<KuaiShouCreative> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("account_id", accountId);
         queryWrapper.eq("unit_id", copyUnitId);
-     //   queryWrapper.eq("status", 52);
+        queryWrapper.eq("status", 52);
         List<KuaiShouCreative> creativeList = creativeMapper.selectList(queryWrapper);
         if (!Check.isNull(creativeList)) {
             for (KuaiShouCreative creative : creativeList) {
@@ -799,6 +820,10 @@ public class BatchServiceImpl implements IBatchService {
      * @param requestJson
      * @return
      */
+    @Autowired
+    private IKuaiShouImageGetService imageGetService;
+
+
     @Override
     public JSONObject createCreative(JSONObject requestJson) throws Exception {
         if (Check.isNull(requestJson)) {
@@ -845,20 +870,41 @@ public class BatchServiceImpl implements IBatchService {
                 if (!Check.isNull(dataJsons)) {
                     String description = dataJson.getString("description");
                     String photo_id = dataJson.getString("photoId");
-                    JSONArray imageTokens = dataJson.getJSONArray("imageTokens");
-                    if (!Check.isNull(imageTokens)) {
-                        for (int j = 0; j < imageTokens.size(); j++) {
-                            JSONObject imageJson = imageTokens.getJSONObject(j);
+                    JSONArray imageArr = dataJson.getJSONArray("imageArr");
+                    if (!Check.isNull(imageArr)) {
+                        for (int j = 0; j < imageArr.size(); j++) {
+                            JSONObject imageJson = imageArr.getJSONObject(j);
                             if (!Check.isNull(imageJson)) {
-                                String image = imageJson.getString("image");
+
                                 String name = imageJson.getString("name");
                                 creativeJson.put("action_bar_text", action_bar_text);
                                 creativeJson.put("description", description);
-                                creativeJson.put("image_token", image);
+
                                 creativeJson.put("creative_name", name);
                                 creativeJson.put("photo_id", photo_id);
                                 creativeJson.put("click_track_url", click_track_url);
 
+                                String imageToken = null;
+                                String signature = imageJson.getString("signature");
+                                QueryWrapper<KuaiShouImageGet> queryWrapper = new QueryWrapper<>();
+                                queryWrapper.eq("account_id", accountId);
+                                queryWrapper.eq("signature", signature);
+                                queryWrapper.last("limit 1");
+                                KuaiShouImageGet imageGet = imageGetService.getOne(queryWrapper);
+                                if (!Check.isNull(imageGet)) {
+                                    imageToken = imageGet.getImageToken();
+                                } else {
+                                    String url = imageGetService.getUrlByCode(signature);
+                                    imageToken = this.kuauiShouImageUpload(url, signature, accountId, oauthToken.getAccessToken());
+                                }
+                                if (Check.isNull(imageToken)) {
+                                    JSONObject failJson = new JSONObject();
+                                    failJson.put("creativeName", name);
+                                    failJson.put("failMessage", "获取图片文件失败");
+                                    failArr.add(failJson);
+                                    continue;
+                                }
+                                creativeJson.put("image_token", imageToken);
                                 Map<String, Object> returnUnitMap = kuaishouInterfaceService.creativeCreate(oauthToken.getAccessToken(), accountId, creativeJson);
                                 if (!Check.isNullMap(returnUnitMap)) {
                                     Integer code = (Integer) returnUnitMap.get("code");
@@ -1142,6 +1188,9 @@ public class BatchServiceImpl implements IBatchService {
      * @param requestJson
      * @return
      */
+    @Autowired
+    private IKuaiShouImageGetService iKuaiShouImageGetService;
+
     @Override
     public JSONObject updateCreative(JSONObject requestJson) throws Exception {
         if (Check.isNull(requestJson)) {
@@ -1220,6 +1269,120 @@ public class BatchServiceImpl implements IBatchService {
         return returnJson;
     }
 
+    @Autowired
+    private IMaterialParameterService materialParameterService;
+
+    public String kuauiShouImageUpload(String url, String signature, Long accountId, String token) {
+        System.err.println(url);
+        System.err.println(signature);
+        try {
+            // String replaceUrl = url.replace(replaceOldValue, replaceValue);
+            // log.info("replaceUrl:{}", replaceUrl);
+          /*  String localUrl = LoadFileUtil.downLoadFromUrl(url, downloadUrl);
+            FileSystemResource resource = new FileSystemResource(new File(localUrl));*/
+            Map<String, String> headerMap = new HashMap<>();
+            headerMap.put("Content-Type", "multipart/form-data");
+            JSONObject requestJson = new JSONObject();
+            //     requestJson.put("file", resource);
+            requestJson.put("signature", signature);
+            requestJson.put("url", url);
+            requestJson.put("type", 2);
+          /*   QueryWrapper<MaterialParameter> parameterQueryWrapper = new QueryWrapper<>();
+               parameterQueryWrapper.eq("material_id", signature);
+               parameterQueryWrapper.orderByDesc("create_time").last("limit 1");
+              MaterialParameter materialParameter = materialParameterService.getOne(parameterQueryWrapper);
+              if (!Check.isNull(materialParameter)) {
+                Integer type = MaterialEnum.getTypeBySize(Integer.valueOf(materialParameter.getWidth()), Integer.valueOf(materialParameter.getHeight()));
+                if (!Check.isNull(type) && type != 0) {
+                    requestJson.put("type", type);
+                }
+            }*/
+
+            requestJson.put("advertiser_id", accountId);
+            headerMap.put("Access-Token", token);
+            String requestUrl = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.IMAGE_UPLOAD;
+            requestJson.put("upload_type", "2");
+            String result = exceptInfoForRestTemplate(requestUrl, requestJson, headerMap);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            System.err.println(resultJson);
+            if (!Check.isNull(resultJson)) {
+                if (resultJson.getInteger("code") == 0) {
+                    JSONObject dataJson = resultJson.getJSONObject("data");
+                    if (!Check.isNull(dataJson)) {
+                        String image_token = dataJson.getString("image_token");
+                        KuaiShouImageGet imageGet = new KuaiShouImageGet();
+                        imageGet.setId(accountId + image_token);
+                        imageGet.setAccountId(accountId);
+                        imageGet.setUrl(dataJson.getString("url"));
+                        imageGet.setWidth(dataJson.getInteger("width"));
+                        imageGet.setHeight(dataJson.getInteger("height"));
+                        imageGet.setSize(dataJson.getInteger("size"));
+                        imageGet.setFormat(dataJson.getString("format"));
+                        Integer type = MaterialEnum.getTypeBySize(dataJson.getInteger("width"), dataJson.getInteger("height"));
+                        if (!Check.isNull(type)) {
+                            imageGet.setMaterialType(type);
+                        }
+                        imageGet.setSignature(signature);
+                        imageGet.setImageToken(image_token);
+                        iKuaiShouImageGetService.saveOrUpdate(imageGet);
+                        return dataJson.getString("image_token");
+
+
+                    }
+
+
+                } else {
+                    log.error("上传图片失败,accountId:{},code:{},data:{}", accountId, signature, resultJson);
+                }
+
+
+            } else {
+                log.error("上传图片,返回结果为空,accountId:{},code:{},data:{}", accountId, signature, resultJson);
+            }
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+
+        }
+
+        return null;
+    }
+
+
+    @Autowired
+    private RestTemplate rest;
+
+    private String exceptInfoForRestTemplate(String url, Map<String, Object> paramMap, Map<String, String> headerMap) throws ParseException {
+        try {
+            MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
+            if (!Check.isNullMap(paramMap)) {
+                for (String key : paramMap.keySet()) {
+                    param.add(key, paramMap.get(key));
+                }
+                HttpHeaders headers = new HttpHeaders();
+                if (!Check.isNullMap(headerMap)) {
+                    for (String key : headerMap.keySet()) {
+                        headers.add(key, headerMap.get(key));
+                    }
+                }
+                HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(param, headers);
+                ResponseEntity<String> responseEntity = rest.exchange(url, HttpMethod.POST, httpEntity, String.class);
+                return responseEntity.getBody();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    public static void main(String[] args) throws IOException {
+        String localUrl = LoadFileUtil.downLoadFromUrl("https://ctop-media.oss-cn-beijing.aliyuncs.com/image/2020-04-29/uuuuu-1588129352054.jpg", PropertiesUtils.getValue("kuaishou_config", "video_sava_path"));
+        String signature = LoadFileUtil.getMD5(localUrl);
+        System.err.println(signature);
+    }
 
 }
 

+ 5 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouImageGetServiceImpl.java

@@ -27,4 +27,9 @@ public class KuaiShouImageGetServiceImpl extends ServiceImpl<KuaiShouImageGetMap
         imageGetMapper.replaceBatch(imageGets);
     }
 
+    @Override
+    public String getUrlByCode(String signature) {
+        return imageGetMapper.getUrlByCode(signature);
+    }
+
 }

+ 7 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouInterfaceServiceImpl.java

@@ -16,6 +16,7 @@ import cn.com.ctop.kuaishou.modules.report.entity.*;
 import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouReportDailyAccountMapper;
 import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouReportDailyCampaignMapper;
 import cn.com.ctop.kuaishou.modules.report.service.*;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -995,7 +996,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                             @Override
                             public void run() {
                                 try {
-                                    Thread.sleep(1 * 1000);
+                                    Thread.sleep(500);
                                     getGroup(accessToken, advertiserId, unitId);
                                 } catch (InterruptedException e) {
                                     e.printStackTrace();
@@ -2654,8 +2655,13 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             }
             param.put("page_size", 500);
             param.put("page", page);
+            System.err.println("入参:" + param);
+            System.err.println("头:" + JSON.toJSONString(headers));
+            System.err.println("url:" + url);
+
             String result = HttpUtils.httpPostRequest(url, param, headers);
             JSONObject resultJson = JSONObject.parseObject(result);
+            System.err.println(resultJson);
             Integer code = resultJson.getInteger("code");
             String message = resultJson.getString("message");
             if (null == code || code != 0) {

+ 7 - 4
module-report/src/main/java/cn/com/ctop/bytedance/service/impl/ByteDanceHourlyAccountWarningServiceImpl.java

@@ -57,6 +57,10 @@ public class ByteDanceHourlyAccountWarningServiceImpl implements IByteDanceHourl
             BigDecimal warningAmount = userAllocation.getWarningAmount();
             BigDecimal warningProportion = userAllocation.getWarningProportion();
             BigDecimal nowCost = bytedanceAdvertiserHourlyReportMapper.getCost(accountId, maxHour, statDate);
+
+            BigDecimal cost = nowCost.setScale(2, RoundingMode.HALF_UP);
+
+
             if (maxHour != 0) {
                 if (!Check.isNull(nowCost) && nowCost.compareTo(new BigDecimal(0)) != 0) {
                     BigDecimal lastHourCost = bytedanceAdvertiserHourlyReportMapper.getCost(accountId, maxHour - 1, statDate);
@@ -65,7 +69,7 @@ public class ByteDanceHourlyAccountWarningServiceImpl implements IByteDanceHourl
                             BigDecimal subtract = nowCost.subtract(lastHourCost);
                             BigDecimal divide = nowCost.divide(lastHourCost, 2, RoundingMode.HALF_UP);
                             if (subtract.compareTo(warningAmount) > -1 && divide.compareTo(warningProportion) > -1) {
-                                sendMessage(accountId, userAllocation.getAuthName(), maxHour, nowCost, userAllocation.getProjectId(), userAllocation.getProjectName());
+                                sendMessage(accountId, userAllocation.getAuthName(), maxHour, cost, userAllocation.getProjectId(), userAllocation.getProjectName());
                             }
                         }
                     }
@@ -78,7 +82,7 @@ public class ByteDanceHourlyAccountWarningServiceImpl implements IByteDanceHourl
                     BigDecimal subtract = nowCost.subtract(yesterdayHourCost);
                     BigDecimal divide = nowCost.divide(yesterdayHourCost, 2, RoundingMode.HALF_UP);
                     if (subtract.compareTo(warningAmount) > -1 && divide.compareTo(warningProportion) > -1) {
-                        sendYesterdayMessage(accountId, userAllocation.getAuthName(), maxHour, nowCost, userAllocation.getProjectId(), userAllocation.getProjectName());
+                        sendYesterdayMessage(accountId, userAllocation.getAuthName(), maxHour, cost, userAllocation.getProjectId(), userAllocation.getProjectName());
                     }
                 }
             }
@@ -91,7 +95,6 @@ public class ByteDanceHourlyAccountWarningServiceImpl implements IByteDanceHourl
 
 
     private void sendYesterdayMessage(Long accountId, String authName, Integer maxHour, BigDecimal nowCost, Long projectId, String projectName) {
-
         StringBuilder text = new StringBuilder();
         text.append("较昨日同时段消耗预警").append("<br/>")
                 .append("您的项目:" + projectName + "下的,").append("<br/>")
@@ -128,10 +131,10 @@ public class ByteDanceHourlyAccountWarningServiceImpl implements IByteDanceHourl
             CorpWexinUtils.sendMessage(wexinIds, text.toString());
         }
 
-
     }
 
 
+
     private void sendMessage(Long accountId, String authName, Integer hour, BigDecimal amount, Long projectId, String projectName) {
 
         StringBuilder text = new StringBuilder();