Prechádzať zdrojové kódy

调整批量跨账户

yumeng 4 rokov pred
rodič
commit
1ae10fc8d5

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

@@ -243,6 +243,7 @@ public class CrossAccountBatchController {
                     createUnitArr = crossAccountBatchService.assembleUnitArray(oauthToken, createUnitArr, campaignList);
                 }
             }
+            System.err.println("组装数据:"+createUnitArr);
             JSONArray returnArray = crossAccountBatchService.createUnit(createUnitArr);
             System.err.println(returnArray);
             result.setSuccess(true);
@@ -275,6 +276,7 @@ public class CrossAccountBatchController {
                 JSONObject accountJson = accountArr.getJSONObject(i);
                 creativeArray = crossAccountBatchService.assembleCreativeJson(creativeArray, accountJson);
             }
+            System.err.println("组装数据:"+creativeArray);
             JSONArray returnArray = crossAccountBatchService.createCreative(creativeArray);
             System.err.println(returnArray);
             result.setSuccess(true);

+ 132 - 55
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/CrossAccountBatchServiceImpl.java

@@ -192,6 +192,15 @@ public class CrossAccountBatchServiceImpl implements ICrossAccountBatchService {
         }
 
 
+        String clickTrackUrl = accountJson.getString("clickTrackUrl");
+        String impressionUrl = accountJson.getString("impressionUrl");
+        String adPhotoPlayedT3sUrl = accountJson.getString("adPhotoPlayedT3sUrl");
+        Integer creativeCategory = accountJson.getInteger("creativeCategory");
+        JSONArray creativeTag = accountJson.getJSONArray("creativeTag");
+        String actionBarText = accountJson.getString("actionBarText");
+        String siteId = accountJson.getString("siteId");
+
+
         for (int i = 0; i < photoArr.size(); i++) {
             JSONObject photoJson = photoArr.getJSONObject(i);
             if (Check.isNull(photoJson)) {
@@ -201,89 +210,122 @@ public class CrossAccountBatchServiceImpl implements ICrossAccountBatchService {
             creativeJson.put("advertiser_id", oauthToken.getAccountId());
             creativeJson.put("access_token", oauthToken.getAccessToken());
             creativeJson.put("unit_id", unitId);
-            if (!Check.isNull(photoJson.getString("clickTrackUrl"))) {
-                creativeJson.put("click_track_url", photoJson.getString("clickTrackUrl")); //第三方点击检测链接
+            creativeJson.put("unit_name", accountJson.getString("unitName"));
+            if (!Check.isNull(clickTrackUrl)) {
+                creativeJson.put("click_track_url", clickTrackUrl); //第三方点击检测链接
             }
-            if (!Check.isNull(photoJson.getString("impressionUrl"))) {
-                creativeJson.put("impression_url", photoJson.getString("impressionUrl")); //第三方开始播放监测链接
+            if (!Check.isNull(impressionUrl)) {
+                creativeJson.put("impression_url", impressionUrl); //第三方开始播放监测链接
             }
-            if (!Check.isNull(photoJson.getString("adPhotoPlayedT3sUrl"))) {
-                creativeJson.put("ad_photo_played_t3s_url", photoJson.getString("adPhotoPlayedT3sUrl")); //第三方有效播放监测链接
+            if (!Check.isNull(adPhotoPlayedT3sUrl)) {
+                creativeJson.put("ad_photo_played_t3s_url", adPhotoPlayedT3sUrl); //第三方有效播放监测链接
             }
             if (!Check.isNull(photoJson.getString("actionbarClickUrl"))) {
                 creativeJson.put("actionbar_click_url", photoJson.getString("actionbarClickUrl")); //第三方点击按钮监测链接
             }
-            if (!Check.isNull(photoJson.getInteger("creativeCategory"))) {
-                creativeJson.put("creative_category", photoJson.getInteger("creativeCategory")); // 创意分类
+            if (!Check.isNull(creativeCategory)) {
+                creativeJson.put("creative_category", creativeCategory); // 创意分类
             }
-            if (!Check.isNull(photoJson.getJSONArray("creativeTag"))) {
-                creativeJson.put("creative_tag", photoJson.getJSONArray("creativeTag")); //创意标签
+            if (!Check.isNull((creativeTag))) {
+                creativeJson.put("creative_tag", creativeTag); //创意标签
             }
 
             Long creativeMaterialType = photoJson.getLong("creativeMaterialType");
 
             JSONArray creatives = new JSONArray();
-            JSONObject createJson = new JSONObject();
-            if (!Check.isNull(photoJson.getString("creativeName"))) {
-                createJson.put("creative_name", photoJson.getString("creativeName")); // 创意名称
-            }
-            if (!Check.isNull(creativeMaterialType)) {
-                createJson.put("creative_material_type", creativeMaterialType); // 素材类型
-            }
-            if (!Check.isNull(photoJson.getString("actionBar_text"))) {
-                createJson.put("action_bar_text", photoJson.getString("actionBarText")); // 行动号召按钮文案
-            }
-            if (!Check.isNull(photoJson.getString("description"))) {
-                createJson.put("description", photoJson.getString("description")); // 广告语
-            }
-            if (!Check.isNull(photoJson.getString("stickerTitle"))) {
-                createJson.put("sticker_title", photoJson.getString("stickerTitle")); //封面广告语标题
-            }
-            if (!Check.isNull(photoJson.getString("overlayType"))) {
-                createJson.put("overlay_type", photoJson.getString("overlayType")); // 贴纸样式类型
-            }
-            if (!Check.isNull(photoJson.getString("exposeTag"))) {
-                createJson.put("expose_tag", photoJson.getString("exposeTag")); //广告标签
-            }
-            if (!Check.isNull(photoJson.getString("newExposeTag"))) {
-                createJson.put("new_expose_tag", photoJson.getString("newExposeTag")); // 广告标签2期
-            }
-            if (!Check.isNull(photoJson.getString("siteId"))) {
-                createJson.put("site_id", photoJson.getString("siteId")); //安卓下载中间页ID
-            }
-
             String creativeName = photoJson.getString("creativeName");// 创意名称
             if (4 == creativeMaterialType) { // 便利贴组装数据
-                if (!Check.isNull(photoJson.getString("shortSlogan"))) {
-                    createJson.put("short_slogan", photoJson.getString("shortSlogan")); // 便利贴创意短广告语
-                }
+
                 JSONArray imageTokens = photoJson.getJSONArray("imageTokens");
                 for (int j = 0; j < imageTokens.size(); j++) {
                     String imageToken = imageTokens.getString(j);
                     if (!Check.isNull(imageToken)) {
-                        createJson.put("image_tokens", imageToken); // 便利贴创意短广告语
+                        JSONObject createJson = new JSONObject();
+                        if (!Check.isNull(photoJson.getString("shortSlogan"))) {
+                            createJson.put("short_slogan", photoJson.getString("shortSlogan")); // 便利贴创意短广告语
+                        }
+                        if (!Check.isNull(creativeMaterialType)) {
+                            createJson.put("creative_material_type", creativeMaterialType); // 素材类型
+                        }
+                        if (!Check.isNull(actionBarText)) {
+                            createJson.put("action_bar_text", actionBarText); // 行动号召按钮文案
+                        }
+                        if (!Check.isNull(photoJson.getString("description"))) {
+                            createJson.put("description", photoJson.getString("description")); // 广告语
+                        }
+                        if (!Check.isNull(photoJson.getString("stickerTitle"))) {
+                            createJson.put("sticker_title", photoJson.getString("stickerTitle")); //封面广告语标题
+                        }
+                        if (!Check.isNull(photoJson.getString("overlayType"))) {
+                            createJson.put("overlay_type", photoJson.getString("overlayType")); // 贴纸样式类型
+                        }
+                        if (!Check.isNull(photoJson.getString("exposeTag"))) {
+                            createJson.put("expose_tag", photoJson.getString("exposeTag")); //广告标签
+                        }
+                        if (!Check.isNull(photoJson.getString("newExposeTag"))) {
+                            createJson.put("new_expose_tag", photoJson.getString("newExposeTag")); // 广告标签2期
+                        }
+                        if (!Check.isNull(siteId)) {
+                            createJson.put("site_id", siteId); //安卓下载中间页ID
+                        }
+                        JSONArray imageTokenArr = new JSONArray();
+                        imageTokenArr.add(imageToken);
+                        createJson.put("image_tokens", imageTokenArr); // 便利贴创意短广告语
                         if (!Check.isNull(creativeName)) {
                             createJson.put("creative_name", creativeName + "_" + RandomUtil.verifyCodeV2()); // 便利贴创意短广告语
                         }
                         creatives.add(createJson);
                     }
                 }
-
+                creativeJson.put("creatives", creatives);
             } else { //  非便利贴组装数据
-                if (!Check.isNull(photoJson.getLong("photoId"))) {
-                    createJson.put("photo_id", photoJson.getLong("photoId")); // 视频id
-                }
-                JSONArray imageTokenArr = photoJson.getJSONArray("imageToken");
+                JSONArray imageTokenArr = photoJson.getJSONArray("imageTokenArr");
                 if (Check.isNull(imageTokenArr)) { // 如果图片为空 说明是首帧创建
+                    JSONObject createJson = new JSONObject();
+                    if (!Check.isNull(photoJson.getLong("photoId"))) {
+                        createJson.put("photo_id", photoJson.getLong("photoId")); // 视频id
+                    }
                     createJson.put("creative_name", creativeName); // 创意名称
+                    if (!Check.isNull(creativeMaterialType)) {
+                        createJson.put("creative_material_type", creativeMaterialType); // 素材类型
+                    }
+                    if (!Check.isNull(actionBarText)) {
+                        createJson.put("action_bar_text", actionBarText); // 行动号召按钮文案
+                    }
+                    if (!Check.isNull(photoJson.getString("description"))) {
+                        createJson.put("description", photoJson.getString("description")); // 广告语
+                    }
+                    if (!Check.isNull(photoJson.getString("stickerTitle"))) {
+                        createJson.put("sticker_title", photoJson.getString("stickerTitle")); //封面广告语标题
+                    }
+                    if (!Check.isNull(photoJson.getString("overlayType"))) {
+                        createJson.put("overlay_type", photoJson.getString("overlayType")); // 贴纸样式类型
+                    }
+                    if (!Check.isNull(photoJson.getString("exposeTag"))) {
+                        createJson.put("expose_tag", photoJson.getString("exposeTag")); //广告标签
+                    }
+                    if (!Check.isNull(photoJson.getString("newExposeTag"))) {
+                        createJson.put("new_expose_tag", photoJson.getString("newExposeTag")); // 广告标签2期
+                    }
+                    if (!Check.isNull(siteId)) {
+                        createJson.put("site_id", siteId); //安卓下载中间页ID
+                    }
+
+                    if (!Check.isNull(photoJson.getString("stickerTitle"))) {
+                        createJson.put("sticker_title", photoJson.getString("stickerTitle")); //封面广告语标题
+                    }
+
                     creatives.add(createJson);
                 } else { // 选择多张图片进行创建
                     for (int j = 0; j < imageTokenArr.size(); j++) {
                         String signature = imageTokenArr.getString(j);
-
                         if (Check.isNull(signature)) {
                             continue;
                         }
+                        JSONObject createJson = new JSONObject();
+                        if (!Check.isNull(photoJson.getLong("photoId"))) {
+                            createJson.put("photo_id", photoJson.getLong("photoId")); // 视频id
+                        }
                         QueryWrapper<KuaiShouImageGet> queryWrapper = new QueryWrapper<>();
                         queryWrapper.eq("account_id", accountId);
                         queryWrapper.eq("signature", signature);
@@ -301,6 +343,31 @@ public class CrossAccountBatchServiceImpl implements ICrossAccountBatchService {
                         }
                         String name = creativeName + "_" + RandomUtil.verifyCodeV2();
                         createJson.put("creative_name", name); // 创意名称
+                        if (!Check.isNull(creativeMaterialType)) {
+                            createJson.put("creative_material_type", creativeMaterialType); // 素材类型
+                        }
+                        if (!Check.isNull(actionBarText)) {
+                            createJson.put("action_bar_text", actionBarText); // 行动号召按钮文案
+                        }
+                        if (!Check.isNull(photoJson.getString("description"))) {
+                            createJson.put("description", photoJson.getString("description")); // 广告语
+                        }
+
+                        if (!Check.isNull(photoJson.getString("stickerTitle"))) {
+                            createJson.put("sticker_title", photoJson.getString("stickerTitle")); //封面广告语标题
+                        }
+                        if (!Check.isNull(photoJson.getString("overlayType"))) {
+                            createJson.put("overlay_type", photoJson.getString("overlayType")); // 贴纸样式类型
+                        }
+                        if (!Check.isNull(photoJson.getString("exposeTag"))) {
+                            createJson.put("expose_tag", photoJson.getString("exposeTag")); //广告标签
+                        }
+                        if (!Check.isNull(photoJson.getString("newExposeTag"))) {
+                            createJson.put("new_expose_tag", photoJson.getString("newExposeTag")); // 广告标签2期
+                        }
+                        if (!Check.isNull(siteId)) {
+                            createJson.put("site_id", siteId); //安卓下载中间页ID
+                        }
                         creatives.add(createJson);
                     }
 
@@ -308,8 +375,8 @@ public class CrossAccountBatchServiceImpl implements ICrossAccountBatchService {
 
 
             }
-            createJson.put("creatives", creatives);
-            creativeArray.add(createJson);
+            creativeJson.put("creatives", creatives);
+            creativeArray.add(creativeJson);
         }
 
         return creativeArray;
@@ -375,11 +442,13 @@ public class CrossAccountBatchServiceImpl implements ICrossAccountBatchService {
                         thread.start();
                         returnJson.put("code", 0);
                         returnJson.put("accountId", requestJson.getLong("advertiser_id"));
+                        returnJson.put("campaignId", requestJson.getLong("campaign_id"));
                         returnJson.put("unitId", unitId);
                         returnJson.put("accountName", requestJson.getString("account_name"));
                         returnJson.put("unitName", requestJson.getString("unit_name"));
                         returnJson.put("sceneId", requestJson.getJSONArray("scene_id").toJSONString());
                         returnJson.put("ocpxActionType", requestJson.getLong("ocpx_action_type"));
+                        returnJson.put("bidType", requestJson.getLong("bid_type"));
                         returnJson.put("unitType", requestJson.getInteger("unit_type"));
                     }
 
@@ -465,7 +534,9 @@ public class CrossAccountBatchServiceImpl implements ICrossAccountBatchService {
                         };
                         thread.start();
                         retuenJson.put("code", 0);
-                        retuenJson.put("unit_id", requestJson.getString("unit_id"));
+                        retuenJson.put("accountId", requestJson.getLong("advertiser_id"));
+                        retuenJson.put("unitId", requestJson.getString("unit_id"));
+                        retuenJson.put("unitName", requestJson.getString("unit_name"));
                     }
                 } else {
                     if (code == 500000 && count <= 4) {
@@ -477,7 +548,9 @@ public class CrossAccountBatchServiceImpl implements ICrossAccountBatchService {
                     log.error("创建广告创意失败,advertiser_id:{},返回信息:{},入参:{}", advertiserId, resultJson, requestJson, count + 1);
                     retuenJson.put("code", -1);
                     retuenJson.put("message", resultJson.getString("message"));
-                    retuenJson.put("unit_id", requestJson.getString("unit_id"));
+                    retuenJson.put("accountId", requestJson.getLong("advertiser_id"));
+                    retuenJson.put("unitId", requestJson.getString("unit_id"));
+                    retuenJson.put("unitName", requestJson.getString("unit_name"));
                 }
             } else {
                 if (count <= 4) {
@@ -486,14 +559,18 @@ public class CrossAccountBatchServiceImpl implements ICrossAccountBatchService {
                 log.error("快手创建广告创意返回内容为空,advertiser_id:{},入参:{}", advertiserId, requestJson);
                 retuenJson.put("code", -1);
                 retuenJson.put("message", "创建创意失败,返回信息为空");
-                retuenJson.put("unit_id", requestJson.getString("unit_id"));
+                retuenJson.put("accountId", requestJson.getLong("advertiser_id"));
+                retuenJson.put("unitId", requestJson.getString("unit_id"));
+                retuenJson.put("unitName", requestJson.getString("unit_name"));
             }
 
         } catch (Exception e) {
             log.error("创建广告创意失败,advertiser_id:{}", requestJson.getLong("advertiser_id"));
             retuenJson.put("code", -1);
             retuenJson.put("message", e.getMessage());
-            retuenJson.put("unit_id", requestJson.getString("unit_id"));
+            retuenJson.put("accountId", requestJson.getLong("advertiser_id"));
+            retuenJson.put("unitId", requestJson.getString("unit_id"));
+            retuenJson.put("unitName", requestJson.getString("unit_name"));
             e.printStackTrace();
         }
         return retuenJson;

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

@@ -893,6 +893,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             Date getStartDate = DateUtils.addDay(endDate, -i);
             //1: 获取广告主信息数据
             getAdvertiserReportHourly(token, getStartDate, getStartDate);
+            getAdvertiserReportDaily(token, getStartDate, getStartDate);
             //2:获取广告计划信息数据
             // getAdvertiserCampaignReportHourly(token, getStartDate, getStartDate);
             //3:获取广告组信息数据