Ver código fonte

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

zhaoxian 4 anos atrás
pai
commit
849b195357

+ 1 - 1
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouCampaignCopyDateJob.java

@@ -20,6 +20,6 @@ public class KuaishouCampaignCopyDateJob {
 
     @XxlJob("kuaishouCampaignCopyDateJob")
     public void execute() throws Exception {
-        kuaishouCampaignCopyDataService.batchCopyCampaign();
+        kuaishouCampaignCopyDataService.batchCopyCampaign(null);
     }
 }

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

@@ -105,6 +105,7 @@ public class KuaishouCampaignCopyDataController {
                 executorService.submit(new Runnable() {
                     @Override
                     public void run() {
+                        log.info("批量复制计划开始,accountId:{},老计划id:{},新计划id:{}", kuaishouCampaignCopyData.getAccountId(), kuaishouCampaignCopyData.getOldCampaignId(), kuaishouCampaignCopyData.getNewCampaignId());
                         kuaishouCampaignCopyDataService.batchCopyCampaign(kuaishouCampaignCopyData);
                     }
                 });

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

@@ -1041,7 +1041,6 @@ public class BatchServiceImpl implements IBatchService {
     @Override
     public void copyCreative(Long accountId, Long unitId, Long copyUnitId, JSONObject otherJson) throws Exception {
         // 查询当前复制组下的所有非程序化创意
-
         QueryWrapper<KuaiShouCreative> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("account_id", accountId);
         queryWrapper.eq("unit_id", copyUnitId);

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

@@ -13,13 +13,15 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xxl.job.core.enums.NoEn;
+import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 import static java.lang.Integer.valueOf;
 
@@ -31,6 +33,7 @@ import static java.lang.Integer.valueOf;
  * @date 2020-12-22
  */
 @Service
+@Slf4j
 public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCampaignCopyDataMapper, KuaishouCampaignCopyData> implements IKuaishouCampaignCopyDataService {
     @Autowired
     private IBatchService batchService;
@@ -50,6 +53,7 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
     private IMessageTemplate messageTemplate;
     @Autowired
     private IKuaiShouGroupTemplateService groupTemplateService;
+    static ExecutorService executorService = Executors.newFixedThreadPool(15);
 
     /**
      * 批量复制计划
@@ -61,8 +65,6 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
      */
     @Override
     public void batchCopyCampaign(KuaishouCampaignCopyData copyData) {
-
-
         try {
             CtopOauthToken token = tokenService.getTokenByAccountId(copyData.getAccountId());
             if (Check.isNull(token)) {
@@ -97,6 +99,7 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
      */
     private void delOldCampaigns(Long accountId, Long campaignId) throws Exception {
         try {
+            log.info("删除老计划下想关联数据,accountId:{},campaignId:{}", accountId, campaignId);
             //删除组
             kuaiShouGroupService.delAllGroupByCampaignId(accountId, campaignId);
             //删除创意
@@ -117,6 +120,7 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
     private JSONObject getNewCampaigns(String accessToken, KuaishouCampaignCopyData copyData) throws Exception {
         JSONObject data = new JSONObject();
         try {
+            log.info("获取计划下最新数据,accountId:{},campaignId:{}", copyData.getAccountId(), copyData.getOldCampaignId());
             Long campaignId = copyData.getOldCampaignId();
             //根据计划ID查询快手广告组并入库
             kuaiShouGroupService.getGroupListByPage(accessToken, copyData.getAccountId(), campaignId, 1);
@@ -129,7 +133,6 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
             for (KuaiShouGroup kuaiShouGroup : kuaiShouGroups) {
                 kuaiShouGroup.setTarget(kuaiShouGroupTargetService.queryTargetInfoByunitId(copyData.getAccountId(), kuaiShouGroup.getUnitId()));
                 //根据广告组ID查询快手广告创意并入库
-                kuaiShouGroupService.getCreativeByUnit(accessToken, copyData.getAccountId(), kuaiShouGroup.getUnitId());
             }
             data.put("groups", kuaiShouGroups);
         } catch (Exception e) {
@@ -149,10 +152,12 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
      * @author ZHAOXA
      */
     private boolean createCopyUnits(CtopOauthToken token, JSONObject data) throws Exception {
+
         int count = 0;
         String msg = "";
         JSONArray groups = data.getJSONArray("groups");
         JSONObject copyData = data.getJSONObject("copyData");
+        log.info("开始创建组,accountId:{},campaign_id:{}", token.getAccountId(), copyData.getLong("newCampaignId"));
         for (int i = 0; i < groups.size(); i++) {
             try {
                 JSONObject group = groups.getJSONObject(i);
@@ -160,7 +165,7 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
                 unitJson.put("campaign_id", copyData.getLong("newCampaignId"));
                 // 资源位置
                 JSONArray scene_id = copyData.getJSONArray("sceneId");
-                if (Check.isNull(scene_id) || scene_id.size() == 0) {
+                if (Check.isNull(scene_id)) {
                     scene_id = group.getJSONArray("sceneId");
                 }
                 unitJson.put("scene_id", scene_id);
@@ -418,33 +423,14 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
 
                 //快手广告组名
                 String unitName = group.getString("unitName");
-                if (unitName.contains("CopyFrom")) {
-                    String format = "-".concat(DateUtils.yyyymmddhhmmss.get().format(new Date()));
-                    if (unitName.contains("(update)")) {
-                        int lastIndx = unitName.lastIndexOf("-");
-                        group.put("unit_name", unitName.substring(0, lastIndx).concat(format).concat("(update)"));
-                    } else {
-                        unitJson.put("unit_name", unitName.concat(format).concat("(update)"));
-                    }
-                } else {
-                    unitJson.put("unit_name", "CopyFrom-".concat(unitName));
-                }
+
+                unitJson.put("unit_name", unitName);
                 Map<String, Object> returnUnitMap = kuaishouInterfaceService.adUnitCreate(token.getAccessToken(), token.getAccountId(), unitJson, 1);
                 if (!Check.isNullMap(returnUnitMap)) {
                     Integer code = (Integer) returnUnitMap.get("code");
                     if (code == 0) {
                         Long unitId = (Long) returnUnitMap.get("unitId");
-                        Thread thread = new Thread() {
-                            @Override
-                            public void run() {
-                                try {
-                                    batchService.copyCreative(token.getAccountId(), unitId, group.getLong("unitId"), null);
-                                } catch (Exception e) {
-                                    log.error("复制创建广告创意异常", e);
-                                }
-                            }
-                        };
-                        thread.start();
+                        createCopyCreatives(token, unitId, group.getLong("unitId"));
                     } else {
                         count++;
                         msg = (String) returnUnitMap.get("message");
@@ -474,8 +460,22 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
      * @throws
      * @author ZHAOXA
      */
-    private void createCopyCreatives(CtopOauthToken token, JSONObject data, KuaishouCampaignCopyData
-            copyData) throws Exception {
+    private void createCopyCreatives(CtopOauthToken token, Long unitId, Long copyUnitId) {
+        executorService.submit(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    log.info("开始多线程执行创建创意,accountId:{},新组:{},老组:{}", token.getAccountId(), unitId, copyUnitId);
+                    kuaiShouGroupService.getCreativeByUnit(token.getAccessToken(), token.getAccountId(), copyUnitId);
+                    Thread.sleep(200l);
+                    batchService.copyCreative(token.getAccountId(), unitId, copyUnitId, null);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+
+            }
+        });
+
 
     }