Browse Source

Merge branch 'test'

zhaoxian 2 năm trước cách đây
mục cha
commit
602ea3329e
13 tập tin đã thay đổi với 240 bổ sung66 xóa
  1. 49 2
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaiShouGroupTemplateController.java
  2. 55 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaiShouMaterialUploadController.java
  3. 2 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaiShouGroupTemplateMapper.java
  4. 3 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaiShouImageGetMapper.java
  5. 40 40
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouGroupTemplateMapper.xml
  6. 16 6
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouImageGetMapper.xml
  7. 4 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaiShouGroupTemplateService.java
  8. 3 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaiShouImageGetService.java
  9. 5 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouGroupTemplateServiceImpl.java
  10. 12 6
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouImageGetServiceImpl.java
  11. 3 1
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouMaterialUploadServiceImpl.java
  12. 42 10
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouBatchCampaignPreviewServiceImpl.java
  13. 6 1
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouBatchCreativePreviewServiceImpl.java

+ 49 - 2
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaiShouGroupTemplateController.java

@@ -4,8 +4,11 @@ import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroupTemplate;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouGroupTemplateService;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -24,7 +27,15 @@ import org.jeecgframework.poi.excel.entity.ExportParams;
 import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
@@ -57,7 +68,8 @@ public class KuaiShouGroupTemplateController {
     @Autowired
     private ICtopOauthTokenService tokenService;
     static ExecutorService executorService = Executors.newFixedThreadPool(10);
-
+    @Autowired
+    private IKuaiShouImageGetService iKuaiShouImageGetService;
 
     @PostMapping(value = "/getLibraryConfig")
     public Result<JSONObject> getLibraryConfig(@RequestBody JSONObject requestJson) {
@@ -231,6 +243,41 @@ public class KuaiShouGroupTemplateController {
 
     }
 
+    @PostMapping(value = "/getUrlByPhotoIds")
+    public Result<Object> getUrlByPhotoIds(@RequestBody JSONObject requestJson) {
+        try {
+            Long accountId = requestJson.getLong("accountId");
+            JSONArray photoIds = requestJson.getJSONArray("photoIds");
+            if (photoIds.isEmpty()) {
+                throw new Exception("参数不能为空");
+            }
+            List<JSONObject> list = kuaiShouGroupTemplateService.getUrlByPhotoIds(accountId, photoIds);
+            return Result.ok(list);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Result.error("查询失败");
+
+    }
+
+
+    @PostMapping(value = "/queryUrlByImageTokens")
+    public Result<Object> queryUrlByImageTokens(@RequestBody JSONObject requestJson) {
+        try {
+            Long accountId = requestJson.getLong("accountId");
+            JSONArray imageTokens = requestJson.getJSONArray("imageTokens");
+            if (Check.isNull(accountId) || imageTokens.isEmpty()) {
+                throw new Exception("参数不能为空");
+            }
+            List<KuaiShouImageGet> list = iKuaiShouImageGetService.getUrlByImageTokens(accountId, imageTokens);
+            return Result.ok(list);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Result.error("查询失败");
+
+    }
+
 
     /**
      * 分页列表查询

+ 55 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaiShouMaterialUploadController.java

@@ -1,8 +1,10 @@
 package cn.com.ctop.kuaishou.modules.batch.controller;
 
+import cn.com.ctop.common.module.constant.CosConstant;
 import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
 import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.common.module.utils.CosUtils;
 import cn.com.ctop.common.module.utils.KuaishouInterfaceConstant;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet;
@@ -12,14 +14,23 @@ import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouVideoGetService;
 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.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 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.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.UUID;
+
+@Slf4j
 @RestController
 @RequestMapping("/kusiShouUpload")
 public class KuaiShouMaterialUploadController {
@@ -176,4 +187,48 @@ public class KuaiShouMaterialUploadController {
     }
 
 
+    @PostMapping(value = "/uploadImage")
+    public Result<Object> uploadImage(@RequestParam("file") MultipartFile file, Long accountId, String signature) throws Exception {
+        try {
+            QueryWrapper<KuaiShouImageGet> imageGetQueryWrapper = new QueryWrapper<>();
+            imageGetQueryWrapper.eq("signature", signature);
+            imageGetQueryWrapper.eq("account_id", accountId);
+            imageGetQueryWrapper.last("limit 1");
+            KuaiShouImageGet imageGet = iKuaiShouImageGetService.getOne(imageGetQueryWrapper);
+            if (Check.isNull(imageGet)) {
+                CtopOauthToken oauthToken = oauthTokenService.getTokenByAccountId(accountId);
+                if (Check.isNull(oauthToken)) {
+                    return Result.error("未获取到账户信息");
+                }
+                String[] split = file.getOriginalFilename().split("\\.");
+                String fileName = accountId + System.currentTimeMillis() + UUID.randomUUID().toString().replace("-", "").substring(0, 5) + "." + split[1];
+                InputStream inputStream = null;
+                try {
+                    inputStream = file.getInputStream();
+                } catch (IOException e) {
+                    log.error("图片上传异常");
+                }
+                String splashPath = "splash/image/" + DateUtils.date2Str() + "/";
+                String md5 = CosUtils.uploadFileByInputStream(inputStream, splashPath, fileName);
+                Thread.sleep(200);
+                String imageUrl = CosConstant.URL_COS_ADDRESS + splashPath + fileName;
+                String imageToken = uploadService.kuauiShouImageUpload(imageUrl, md5, accountId, oauthToken.getAccessToken());
+                if (!Check.isNull(imageToken)) {
+                    imageGetQueryWrapper = new QueryWrapper<>();
+                    imageGetQueryWrapper.eq("image_token", imageToken);
+                    imageGetQueryWrapper.eq("account_id", accountId);
+                    imageGetQueryWrapper.last("limit 1");
+                    KuaiShouImageGet one = iKuaiShouImageGetService.getOne(imageGetQueryWrapper);
+                    return Result.ok(one);
+                }
+            } else {
+                return Result.ok(imageGet);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Result.error("查询失败");
+    }
+
+
 }

+ 2 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaiShouGroupTemplateMapper.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.kuaishou.modules.batch.mapper;
 
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroupTemplate;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
@@ -34,4 +35,5 @@ public interface KuaiShouGroupTemplateMapper extends BaseMapper<KuaiShouGroupTem
      */
     JSONObject getConfig(@Param("projectId") Long projectId);
 
+    List<JSONObject> getUrlByPhotoIds(@Param("accountId") Long accountId, @Param("photoIds") JSONArray photoIds);
 }

+ 3 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaiShouImageGetMapper.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.kuaishou.modules.batch.mapper;
 
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -19,4 +20,6 @@ public interface KuaiShouImageGetMapper extends BaseMapper<KuaiShouImageGet> {
     String getUrlByCode(String signature);
 
     String getCutFrameUrlByCode(String signature);
+
+    List<KuaiShouImageGet> getUrlByImageTokens(@Param(value = "accountId") Long accountId, @Param(value = "imageTokens") JSONArray imageTokens);
 }

+ 40 - 40
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouGroupTemplateMapper.xml

@@ -3,66 +3,66 @@
 <mapper namespace="cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouGroupTemplateMapper">
 
     <select id="getMd5ByPhotoId" resultType="com.alibaba.fastjson.JSONObject">
-    select
-    signature  as 'md5',
-    material_type as 'materialType'
-    from ctop_kuaishou_video_get
-    where  photo_id = #{photoId}
-    and signature is not null
-    limit 1
+        select signature as 'md5', material_type as 'materialType'
+        from ctop_kuaishou_video_get
+        where photo_id = #{photoId}
+          and signature is not null limit 1
     </select>
 
     <select id="getImageListByMd5" resultType="com.alibaba.fastjson.JSONObject">
-      select
-      signature as 'md5',
-      url as 'url'
-      from ctop_material_cut_frame
-      where video_signature = #{md5}
-      ORDER BY RAND() LIMIT #{imageCount}
+        select signature as 'md5', url as 'url'
+        from ctop_material_cut_frame
+        where video_signature = #{md5}
+        ORDER BY RAND() LIMIT #{imageCount}
     </select>
     <select id="getImageJsonByMd5" resultType="com.alibaba.fastjson.JSONObject">
-      select
-      signature as 'md5',
-      url as 'url'
-      from ctop_material_cut_frame
-      where video_signature = #{md5}
-       ORDER BY RAND() LIMIT 1
+        select signature as 'md5', url as 'url'
+        from ctop_material_cut_frame
+        where video_signature = #{md5}
+        ORDER BY RAND() LIMIT 1
     </select>
 
 
     <select id="getApiCreateCount" resultType="java.lang.Integer">
         select count(1)
-        from
-            ctop_kuaishou_group
-        where  account_id = #{accountId}
+        from ctop_kuaishou_group
+        where account_id = #{accountId}
           and unit_type = #{unitType}
-          and DATE_FORMAT(group_create_time,'%Y-%m-%d') =  #{date}
+          and DATE_FORMAT(group_create_time, '%Y-%m-%d') = #{date}
     </select>
 
     <select id="getUrlByPhotoId" resultType="com.alibaba.fastjson.JSONObject">
-     select
-     cover_url as 'coverUrl',
-     url as 'url'
-     from
-     ctop_kuaishou_video_get
-     where  photo_id = #{photoId}
-     and status = 0
-     limit 1
+        select cover_url as 'coverUrl', url as 'url'
+        from ctop_kuaishou_video_get
+        where photo_id = #{photoId}
+          and status = 0 limit 1
     </select>
 
-    <select id="getIdList" resultType="java.lang.Long">
-    select id  from ctop_kuaishou_group_template
-    where  task_status = 0
-    order by create_time asc
-    limit 70
+    <select id="getUrlByPhotoIds" resultType="com.alibaba.fastjson.JSONObject">
+        select
+        cover_url as 'coverUrl',
+        url as 'url'
+        from
+        ctop_kuaishou_video_get
+        where account_id = #{accountId}
+        and photo_id in
+        <foreach collection="photoIds" item="item" separator=","
+                 open="(" close=")">
+            #{item}
+        </foreach>
     </select>
 
+    <select id="getIdList" resultType="java.lang.Long">
+        select id
+        from ctop_kuaishou_group_template
+        where task_status = 0
+        order by create_time asc limit 70
+    </select>
 
 
     <select id="getConfig" resultType="com.alibaba.fastjson.JSONObject">
-      select
-      library_id as 'libraryId'
-      from ctop_kuaishou_library_config
-      where project_id = #{projectId}
+        select library_id as 'libraryId'
+        from ctop_kuaishou_library_config
+        where project_id = #{projectId}
     </select>
 </mapper>

+ 16 - 6
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouImageGetMapper.xml

@@ -39,15 +39,25 @@
     </insert>
 
     <select id="getUrlByCode" resultType="java.lang.String">
-        select url from ctop_material_image_info
-        where  code = #{signature}
-        limit 1
+        select url
+        from ctop_material_image_info
+        where code = #{signature} limit 1
+    </select>
+
+    <select id="getUrlByImageTokens" resultType="cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet">
+        select * from ctop_kuaishou_image_get
+        where account_id = #{accountId}
+        And image_token in
+        <foreach collection="imageTokens" item="item" separator=","
+                 open="(" close=")">
+            #{item}
+        </foreach>
     </select>
 
     <select id="getCutFrameUrlByCode" resultType="java.lang.String">
-        select url from ctop_material_cut_frame
-        where  signature = #{signature}
-        limit 1
+        select url
+        from ctop_material_cut_frame
+        where signature = #{signature} limit 1
     </select>
 
 

+ 4 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaiShouGroupTemplateService.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.kuaishou.modules.batch.service;
 
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroupTemplate;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.common.api.vo.Result;
@@ -61,10 +62,13 @@ public interface IKuaiShouGroupTemplateService extends IService<KuaiShouGroupTem
 
     /**
      * 获取商品库配置
+     *
      * @param accountId
      * @return
      */
     JSONObject getLibraryConfig(Long accountId);
 
     void createUnitAgain(KuaiShouGroupTemplate template);
+
+    List<JSONObject> getUrlByPhotoIds(Long accountId, JSONArray photoIds);
 }

+ 3 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaiShouImageGetService.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.kuaishou.modules.batch.service;
 
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
@@ -17,4 +18,6 @@ public interface IKuaiShouImageGetService extends IService<KuaiShouImageGet> {
     String getUrlByCode(String signature);
 
     KuaiShouImageGet getOneByParams(String url,String code);
+
+    List<KuaiShouImageGet> getUrlByImageTokens(Long accountId, JSONArray imageTokens);
 }

+ 5 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouGroupTemplateServiceImpl.java

@@ -1107,6 +1107,11 @@ public class KuaiShouGroupTemplateServiceImpl extends ServiceImpl<KuaiShouGroupT
         }
     }
 
+    @Override
+    public List<JSONObject> getUrlByPhotoIds(Long accountId, JSONArray photoIds) {
+        return groupTemplateMapper.getUrlByPhotoIds(accountId, photoIds);
+    }
+
     private void createCreativeAgain(String accessToken, Long unitId, KuaiShouGroupTemplate template) {
         KuaiShouGroupTemplate updateTemplate = new KuaiShouGroupTemplate();
         updateTemplate.setId(template.getId());

+ 12 - 6
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouImageGetServiceImpl.java

@@ -4,6 +4,7 @@ import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
 import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouImageGetMapper;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -41,17 +42,22 @@ public class KuaiShouImageGetServiceImpl extends ServiceImpl<KuaiShouImageGetMap
 
 
     @Override
-    public KuaiShouImageGet getOneByParams(String url,String code) {
-        QueryWrapper<KuaiShouImageGet> queryWrapper= new QueryWrapper<>();
-        if(null!=url&&!"".equals(url.trim())){
-            queryWrapper.eq("url",url);
+    public KuaiShouImageGet getOneByParams(String url, String code) {
+        QueryWrapper<KuaiShouImageGet> queryWrapper = new QueryWrapper<>();
+        if (null != url && !"".equals(url.trim())) {
+            queryWrapper.eq("url", url);
         }
-        if(null!=code&&!"".equals(code.trim())){
-            queryWrapper.eq("signature",code);
+        if (null != code && !"".equals(code.trim())) {
+            queryWrapper.eq("signature", code);
         }
         queryWrapper.orderByDesc("create_time");
         queryWrapper.last("limit 1");
         return this.getOne(queryWrapper);
     }
 
+    @Override
+    public List<KuaiShouImageGet> getUrlByImageTokens(Long accountId, JSONArray imageTokens) {
+        return imageGetMapper.getUrlByImageTokens(accountId, imageTokens);
+    }
+
 }

+ 3 - 1
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouMaterialUploadServiceImpl.java

@@ -11,6 +11,7 @@ import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouMaterialUploadService
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
+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;
@@ -123,7 +124,7 @@ public class KuaiShouMaterialUploadServiceImpl implements IKuaiShouMaterialUploa
             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");
+            requestJson.put("upload_type", 2);
             String result = exceptInfoForRestTemplate(requestUrl, requestJson, headerMap);
             JSONObject resultJson = JSONObject.parseObject(result);
             if (!Check.isNull(resultJson)) {
@@ -145,6 +146,7 @@ public class KuaiShouMaterialUploadServiceImpl implements IKuaiShouMaterialUploa
                         }
                         imageGet.setSignature(signature);
                         imageGet.setImageToken(image_token);
+                        imageGet.setStatDate(DateUtils.parseDate(DateUtils.date2Str(), "yyyy-MM-dd"));
                         iKuaiShouImageGetService.saveOrUpdate(imageGet);
                         return dataJson.getString("image_token");
                     }

+ 42 - 10
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouBatchCampaignPreviewServiceImpl.java

@@ -25,11 +25,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
 import com.xxl.job.core.enums.NoEn;
 import org.jeecg.common.util.DateUtils;
+import org.jeecg.common.util.RedisUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -60,6 +62,8 @@ public class KuaishouBatchCampaignPreviewServiceImpl extends ServiceImpl<Kuaisho
     private KuaiShouCampaignMapper kuaiShouCampaignMapper;
     @Autowired
     private IKuaiShouVideoGetService videoGetService;
+    @Autowired
+    private RedisUtil redisUtil;
 
     @Override
     public JSONObject queryByBatchId(String batchId, String accountId) {
@@ -94,8 +98,13 @@ public class KuaishouBatchCampaignPreviewServiceImpl extends ServiceImpl<Kuaisho
             for (KuaishouBatchCreativePreview creativePreview : kuaishouBatchCreativePreviews) {
                 if (groupPreview.getPlanId().equals(creativePreview.getPlanId()) && creativePreview.getGroupId().equals(groupPreview.getId())) {
                     JSONObject obj = new JSONObject();
-                    obj.put("photoId", creativePreview.getPhotoId());
-                    obj.put("imageUrl", creativePreview.getImageUrl());
+                    if (!Check.isNull(creativePreview.getPhotoId())) {
+                        obj.put("photoId", creativePreview.getPhotoId());
+                    } else if (!Check.isNull(creativePreview.getSplashPhotoIds())) {
+                        obj.put("photoIds", creativePreview.getSplashPhotoIds());
+                    } else if (!Check.isNull(creativePreview.getSplashImageTokens())) {
+                        obj.put("imageTokens", creativePreview.getSplashImageTokens());
+                    }
                     materialArr.add(obj);
                     descriptionArr.add(creativePreview.getDescription());
                     groupPreview.setSiteId(creativePreview.getSiteId());
@@ -341,7 +350,7 @@ public class KuaishouBatchCampaignPreviewServiceImpl extends ServiceImpl<Kuaisho
                 }
                 if (Check.isNull(campaignId)) {
                     campaignPreview.setId(null);
-                    campaignPreview.setCampaignName(getName(campaignPreview.getCampaignNameFormat(), targetIds.getLong(i), groupPreview.getSceneId(), appId, groupPreview.getUnitType(), i, getRandomFromArr(materialList.getJSONObject(0).getJSONArray("photoArr")), creativePreview.getCreativeCategory()));
+                    campaignPreview.setCampaignName(getName(campaignPreview.getCampaignNameFormat(), targetIds.getLong(i), groupPreview.getSceneId(), appId, groupPreview.getUnitType(), i, getRandomFromArr(materialList.getJSONObject(0).getJSONArray("photoArr")), creativePreview.getCreativeCategory(), campaignPreview.getAccountId(), "campaign"));
                     campaignPreviewMapper.insert(campaignPreview);
                 }
                 for (int j = 0; j < materialList.size(); j++) {
@@ -378,7 +387,7 @@ public class KuaishouBatchCampaignPreviewServiceImpl extends ServiceImpl<Kuaisho
                     groupPreview.setAppId(appId);
                     groupPreview.setPlanId(campaignPreview.getId());
                     groupPreview.setTemplateId(targetIds.getLong(i));
-                    groupPreview.setUnitName(getName(groupPreview.getUnitNameFormat(), targetIds.getLong(i), groupPreview.getSceneId(), appId, groupPreview.getUnitType(), j, getRandomFromArr(photoArr), creativePreview.getCreativeCategory()));
+                    groupPreview.setUnitName(getName(groupPreview.getUnitNameFormat(), targetIds.getLong(i), groupPreview.getSceneId(), appId, groupPreview.getUnitType(), j, getRandomFromArr(photoArr), creativePreview.getCreativeCategory(), null, null));
                     groupPreview.setUrl(url);
                     groupPreview.setSchemaUri(schemaUri);
                     if (!Check.isNull(groupPreview.getBidMax()) && !Check.isNull(groupPreview.getBidMin())) {
@@ -466,7 +475,7 @@ public class KuaishouBatchCampaignPreviewServiceImpl extends ServiceImpl<Kuaisho
             }
         } else if (NoEn.NO2.valueInt() == type) {
             /**
-             *按照 创意组 分组
+             * 按照 创意组 分组
              * 计划总数 = 创意组数
              * 则同一广告计划内的创意完全相同,定向包不同
              */
@@ -498,7 +507,7 @@ public class KuaishouBatchCampaignPreviewServiceImpl extends ServiceImpl<Kuaisho
                 JSONArray photoArr = material.getJSONArray("photoArr");
 
                 campaignPreview.setId(null);
-                campaignPreview.setCampaignName(getName(campaignPreview.getCampaignNameFormat(), targetIds.getLong(new Random().nextInt(targetIds.size())), groupPreview.getSceneId(), appId, groupPreview.getUnitType(), i, getRandomFromArr(photoArr), creativePreview.getCreativeCategory()));
+                campaignPreview.setCampaignName(getName(campaignPreview.getCampaignNameFormat(), targetIds.getLong(new Random().nextInt(targetIds.size())), groupPreview.getSceneId(), appId, groupPreview.getUnitType(), i, getRandomFromArr(photoArr), creativePreview.getCreativeCategory(), campaignPreview.getAccountId(), "campaign"));
                 campaignPreviewMapper.insert(campaignPreview);
 
                 if (matchingMethod == 2) {
@@ -535,7 +544,7 @@ public class KuaishouBatchCampaignPreviewServiceImpl extends ServiceImpl<Kuaisho
                     groupPreview.setAppId(appId);
                     groupPreview.setPlanId(campaignPreview.getId());
                     groupPreview.setTemplateId(targetIds.getLong(j));
-                    groupPreview.setUnitName(getName(groupPreview.getUnitNameFormat(), targetIds.getLong(j), groupPreview.getSceneId(), appId, groupPreview.getUnitType(), j, getRandomFromArr(photoArr), creativePreview.getCreativeCategory()));
+                    groupPreview.setUnitName(getName(groupPreview.getUnitNameFormat(), targetIds.getLong(j), groupPreview.getSceneId(), appId, groupPreview.getUnitType(), j, getRandomFromArr(photoArr), creativePreview.getCreativeCategory(), null, null));
                     groupPreview.setUrl(url);
                     groupPreview.setSchemaUri(schemaUri);
                     if (!Check.isNull(groupPreview.getBidMax()) && !Check.isNull(groupPreview.getBidMin())) {
@@ -657,7 +666,15 @@ public class KuaishouBatchCampaignPreviewServiceImpl extends ServiceImpl<Kuaisho
         if (num == 2) {
             return !CollectionUtils.isEmpty(arr) && !CollectionUtils.isEmpty(arr2);
         } else {
-            return !CollectionUtils.isEmpty(arr);
+            if (!CollectionUtils.isEmpty(arr)) {
+                if (Check.isNull(arr.getString(0))) {
+                    return false;
+                } else {
+                    return true;
+                }
+            } else {
+                return false;
+            }
         }
     }
 
@@ -827,7 +844,7 @@ public class KuaishouBatchCampaignPreviewServiceImpl extends ServiceImpl<Kuaisho
      * @return
      */
     private String getName(String content, Long templateId, String sceneId, Integer appId, Integer unitType
-            , Integer number, String photoId, Integer creativeCategory) {
+            , Integer number, String photoId, Integer creativeCategory, Long accountId, String type) {
         String reg = "\\{\\{(.+?)\\}\\}";
         List<String> params = getParams(reg, content);
         if (Check.isNull(params)) {
@@ -877,7 +894,22 @@ public class KuaishouBatchCampaignPreviewServiceImpl extends ServiceImpl<Kuaisho
                     data.put(regName, unitType == 4 ? "自定义" : "程序化创意2.0");
                 }
             } else if ("序号".equals(regName)) {
-                data.put(regName, number + "");
+                if ("campaign".equals(type)) {
+                    String nowDate = DateUtils.formatDate(new Date(), "yyMMdd");
+                    String redisKey = accountId + "_batch_" + nowDate;
+                    Integer cnt = null;
+                    Integer redisCnt = (Integer) redisUtil.get(redisKey);
+                    if (Check.isNull(redisCnt)) {
+                        cnt = 1;
+                        redisUtil.set(redisKey, cnt, 100000L);
+                    } else {
+                        cnt = redisCnt + 1;
+                        redisUtil.set(redisKey, cnt, 100000L);
+                    }
+                    data.put(regName, cnt + "");
+                } else {
+                    data.put(regName, number + "");
+                }
             } else if ("素材命名".equals(regName)) {
                 KuaiShouVideoGet video = videoGetService.getVideoByPhotoId(photoId);
                 if (!Check.isNull(video)) {

+ 6 - 1
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouBatchCreativePreviewServiceImpl.java

@@ -556,8 +556,13 @@ public class KuaishouBatchCreativePreviewServiceImpl extends ServiceImpl<Kuaisho
                 creative.put("creative_name", preview.getCreativeName()); // 创意名称
                 if (!Check.isNull(preview.getSplashPhotoIds())) {
                     creative.put("creative_material_type", 11);// 11-开屏视频
-                    creative.put("splash_photo_ids", JSONObject.parseArray(preview.getSplashPhotoIds()));  // 安卓下载中间页ID
+                    creative.put("splash_photo_ids", JSONObject.parseArray(preview.getSplashPhotoIds()));
                 }
+                if (!Check.isNull(preview.getSplashImageTokens())) {
+                    creative.put("creative_material_type", 12);// 12-开屏图片 image_token
+                    creative.put("splash_image_tokens", JSONObject.parseArray(preview.getSplashImageTokens()));
+                }
+
                 if (!Check.isNull(preview.getImageTokens())) {
                     creative.put("image_tokens", Arrays.asList(preview.getImageTokens()));
                     creative.put("creative_material_type", preview.getMaterialType());