Kaynağa Gözat

加入日志

yumeng 4 yıl önce
ebeveyn
işleme
5720a4e4d5

+ 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);
                     }
                 });

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

@@ -13,12 +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.List;
 import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 import static java.lang.Integer.valueOf;
 
@@ -30,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;
@@ -49,6 +53,7 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
     private IMessageTemplate messageTemplate;
     @Autowired
     private IKuaiShouGroupTemplateService groupTemplateService;
+    static ExecutorService executorService = Executors.newFixedThreadPool(15);
 
     /**
      * 批量复制计划
@@ -60,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)) {
@@ -96,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);
             //删除创意
@@ -116,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);
@@ -147,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);
@@ -423,18 +430,7 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
                     Integer code = (Integer) returnUnitMap.get("code");
                     if (code == 0) {
                         Long unitId = (Long) returnUnitMap.get("unitId");
-                        Thread thread = new Thread() {
-                            @Override
-                            public void run() {
-                                try {
-                                    kuaiShouGroupService.getCreativeByUnit(token.getAccessToken(), token.getAccountId(), group.getLong("unitId"));
-                                    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");
@@ -464,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();
+                }
+
+            }
+        });
+
 
     }