ソースを参照

Merge branch 'master' of http://git.tjyourong.com.cn/ctop/adsp-boot

zhaoxian 4 年 前
コミット
54cc0f24f7

+ 16 - 12
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaishouCampaignCopyDataController.java

@@ -23,15 +23,7 @@ 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.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.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
@@ -44,6 +36,8 @@ import java.net.URLDecoder;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 /**
  * 待复制广告计划数据
@@ -88,9 +82,11 @@ public class KuaishouCampaignCopyDataController {
     /**
      * 添加
      *
-     * @param kuaishouCampaignCopyData
+     * @param
      * @return
      */
+    static ExecutorService executorService = Executors.newFixedThreadPool(5);
+
     @AutoLog(value = "待复制广告计划数据-添加")
     @ApiOperation(value = "待复制广告计划数据-添加", notes = "待复制广告计划数据-添加")
     @PostMapping(value = "/add")
@@ -104,8 +100,16 @@ public class KuaishouCampaignCopyDataController {
                     kuaishouCampaignCopyData.setCreaterId(sysUser.getId());
                 }
             }
-            kuaishouCampaignCopyDataService.save(kuaishouCampaignCopyData);
-            result.success("添加成功!");
+            boolean save = kuaishouCampaignCopyDataService.save(kuaishouCampaignCopyData);
+            if (save) {
+                executorService.submit(new Runnable() {
+                    @Override
+                    public void run() {
+                        kuaishouCampaignCopyDataService.batchCopyCampaign(kuaishouCampaignCopyData);
+                    }
+                });
+            }
+            result.success("提交成功,异步创建中");
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             result.error500("操作失败");

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

@@ -11,5 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IKuaishouCampaignCopyDataService extends IService<KuaishouCampaignCopyData> {
 
-    void batchCopyCampaign();
+    void batchCopyCampaign(KuaishouCampaignCopyData campaignCopyData);
 }

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

@@ -765,20 +765,17 @@ public class BatchServiceImpl implements IBatchService {
         try {
             JSONObject unitJson = new JSONObject();
             unitJson.put("campaign_id", copyToCampaignId);
-
             // 资源位置
             JSONArray scene_id = JSONArray.parseArray(group.getSceneId());
             if (!Check.isNull(scene_id)) {
                 unitJson.put("scene_id", scene_id);
             }
-
             Integer sceneId = valueOf(scene_id.get(0).toString());
             // 资源创作方式
             if (!Check.isNull(group.getUnitType())) {
                 if (!Check.isNull(group.getUnitType())) {
                     unitJson.put("unit_type", group.getUnitType());
                 }
-
                 //投放开始时间
                 if (!Check.isNull(group.getBeginTime())) {
                     String nowDate = DateUtils.getNowDate("yyyy-MM-dd");

+ 40 - 37
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouCampaignCopyDataServiceImpl.java

@@ -8,12 +8,7 @@ import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroup;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouCampaignCopyData;
 import cn.com.ctop.kuaishou.modules.batch.mapper.KuaishouCampaignCopyDataMapper;
-import cn.com.ctop.kuaishou.modules.batch.service.IBatchService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouCreativeService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouGroupService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouGroupTargetService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouCampaignCopyDataService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
+import cn.com.ctop.kuaishou.modules.batch.service.*;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -23,7 +18,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -38,9 +32,6 @@ import static java.lang.Integer.valueOf;
  */
 @Service
 public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCampaignCopyDataMapper, KuaishouCampaignCopyData> implements IKuaishouCampaignCopyDataService {
-
-    @Autowired
-    private KuaishouCampaignCopyDataMapper kuaishouCampaignCopyDataMapper;
     @Autowired
     private IBatchService batchService;
     @Autowired
@@ -57,6 +48,8 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
     private ISendMessageService sendMessageService;
     @Autowired
     private IMessageTemplate messageTemplate;
+    @Autowired
+    private IKuaiShouGroupTemplateService groupTemplateService;
 
     /**
      * 批量复制计划
@@ -67,32 +60,30 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
      * @author ZHAOXA
      */
     @Override
-    public void batchCopyCampaign() {
-        Map<String, Object> map = new HashMap<>();
-        //'状态:1待复制,2成功,3失败'
-        map.put("state", NoEn.NO1.valueInt());
-        List<KuaishouCampaignCopyData> kuaishouCampaignCopyData = kuaishouCampaignCopyDataMapper.selectByMap(map);
-        for (KuaishouCampaignCopyData copyData : kuaishouCampaignCopyData) {
-            try {
-                CtopOauthToken token = tokenService.getTokenByAccountId(copyData.getAccountId());
-                //执行删除被复制的计划组+创意
-                delOldCampaigns(copyData.getAccountId(), copyData.getOldCampaignId());
-                //获取当前最新广告计划组、创意数据并入库
-                JSONObject data = getNewCampaigns(token.getAccessToken(), copyData);
-                data.put("copyData", copyData);
-                //根据被复制的组数据和模板、预算和排期数据调用快手创建组接口
-                boolean isSuccess = createCopyUnits(token, data);
-                //更新成功,修改状态并发送通知
-                if (isSuccess) {
-                    sendNotification(copyData.getId(), copyData.getOldCampaignName(), copyData.getCreaterId(), NoEn.NO2.valueStr(), "复制成功");
-                }
-            } catch (Exception e) {
-                log.error("复制广告计划异常", e);
-                //复制过程中失败,更新状态并发送预警
-                sendNotification(copyData.getId(), copyData.getOldCampaignName(), copyData.getCreaterId(), NoEn.NO3.valueStr(), e.getMessage());
-            }
+    public void batchCopyCampaign(KuaishouCampaignCopyData copyData) {
 
 
+        try {
+            CtopOauthToken token = tokenService.getTokenByAccountId(copyData.getAccountId());
+            if (Check.isNull(token)) {
+                throw new Exception("token未获取");
+
+            }
+            //执行删除被复制的计划组+创意
+            delOldCampaigns(copyData.getAccountId(), copyData.getOldCampaignId());
+            //获取当前最新广告计划组、创意数据并入库
+            JSONObject data = getNewCampaigns(token.getAccessToken(), copyData);
+            data.put("copyData", copyData);
+            //根据被复制的组数据和模板、预算和排期数据调用快手创建组接口
+            boolean isSuccess = createCopyUnits(token, data);
+            //更新成功,修改状态并发送通知
+            if (isSuccess) {
+                sendNotification(copyData.getId(), copyData.getOldCampaignName(), copyData.getCreaterId(), NoEn.NO2.valueStr(), "复制成功");
+            }
+        } catch (Exception e) {
+            log.error("复制广告计划异常", e);
+            //复制过程中失败,更新状态并发送预警
+            sendNotification(copyData.getId(), copyData.getOldCampaignName(), copyData.getCreaterId(), NoEn.NO3.valueStr(), e.getMessage());
         }
     }
 
@@ -248,9 +239,21 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
                     unitJson.put("speed", speed);
                 }
 
-                String templateId = copyData.getString("templateId");
+                Integer sceneId = valueOf(scene_id.get(0).toString());
+                Long templateId = copyData.getLong("templateId");
                 if (!Check.isNull(templateId)) {
-                    unitJson.put("template_id", templateId);
+                    if (sceneId != 5) {
+                        unitJson.put("template_id", templateId);
+                    } else {
+                        JSONObject unionJson = groupTemplateService.getUnionJson(templateId);
+                        Integer code = unionJson.getInteger("code");
+                        if (code == 0) {
+                            JSONObject target = unionJson.getJSONObject("target");
+                            unitJson.put("target", target);
+                        } else {
+                            continue;
+                        }
+                    }
                 } else {
                     /*----------------用户定向-----------*/
                     JSONObject target = group.getJSONObject("target");
@@ -318,7 +321,7 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
                     if (!Check.isNull(target.getJSONArray("thirdPlatformCode"))) {
                         targetJson.put("third_platform_code", target.getJSONArray("thirdPlatformCode"));
                     }
-                    Integer sceneId = valueOf(scene_id.get(0).toString());
+
                     if (sceneId != 5) {
                         //过滤已转化人群纬度
                         if (!Check.isNull(target.getInteger("filterConvertedLevel"))) {