Kaynağa Gözat

修改重复创建广告计划

yumeng 5 yıl önce
ebeveyn
işleme
9ad9784faf

+ 27 - 18
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouCreateServiceImpl.java

@@ -41,6 +41,8 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
     private KuaiShouGroupCreateLogMapper groupCreateLogMapper;
     @Autowired
     private ICTopOauthTokenService oauthTokenService;
+    @Autowired
+    private KuaiShouCampaignCreateMapper campaignCreateMapper;
 
     @Override
     public Map<String, Object> createGroups(KuaiShouGroupCreateLog groupCreateTemplate) {
@@ -75,27 +77,38 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
                 returnMap.put("desc", "请选择广告计划模板");
                 return returnMap;
             }
+
             KuaiShouCampaignTemplate kuaiShouCampaignTemplate = campaignTemplateMapper.selectById(campaignTemplateId); // 广告计划信息
             if (Check.isNull(kuaiShouCampaignTemplate)) {
                 logger.error("查询广告计划为空:模板id:{}", campaignTemplateId);
                 throw new Exception("根据模板id查询创意模板信息为空");
             }
 
-            JSONObject campaignJson = new JSONObject();
-            campaignJson.put("campaign_name", kuaiShouCampaignTemplate.getCampaignName() + "_" + UUID.randomUUID().toString().substring(0, 6));
-            campaignJson.put("type", kuaiShouCampaignTemplate.getType());
-            campaignJson.put("day_budget", kuaiShouCampaignTemplate.getDayBudget());
-
-
-            Map<String, Object> campaignMap = kuaishouInterfaceService.campaignCreate(accessToken, accountId, campaignJson);
-            Integer code = (Integer) campaignMap.get("code");
-            if (code != 0) {
-                returnMap.put("code", -1);
-                returnMap.put("success", false);
-                returnMap.put("desc", "创建广告计划失败");
-                return returnMap;
+            QueryWrapper<KuaiShouCampaignCreate> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("account_id", accountId);
+            queryWrapper.eq("campaign_name", kuaiShouCampaignTemplate.getCampaignName());
+            queryWrapper.orderByDesc("create_time");
+            queryWrapper.last("limit 1");
+            KuaiShouCampaignCreate campaignCreate = campaignCreateMapper.selectOne(queryWrapper);
+            Long campaignId;
+            if (Check.isNull(campaignCreate) || Check.isNull(campaignCreate.getCampaignId())) {
+                JSONObject campaignJson = new JSONObject();
+                campaignJson.put("campaign_name", kuaiShouCampaignTemplate.getCampaignName());
+                campaignJson.put("type", kuaiShouCampaignTemplate.getType());
+                campaignJson.put("day_budget", kuaiShouCampaignTemplate.getDayBudget());
+                Map<String, Object> campaignMap = kuaishouInterfaceService.campaignCreate(accessToken, accountId, campaignJson);
+                Integer code = (Integer) campaignMap.get("code");
+                if (code != 0) {
+                    returnMap.put("code", -1);
+                    returnMap.put("success", false);
+                    returnMap.put("desc", "创建广告计划失败");
+                    return returnMap;
+                }
+                campaignId = (Long) campaignMap.get("campaign_id");
+            } else {
+                campaignId = campaignCreate.getCampaignId();
             }
-            Long campaignId = (Long) campaignMap.get("campaign_id");
+
             groupCreateTemplate.setCampaignId(campaignId);
 
             JSONObject groupJson = new JSONObject();
@@ -366,10 +379,6 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
      * @param loginId
      * @return
      */
-
-    @Autowired
-    private KuaiShouCampaignCreateMapper campaignCreateMapper;
-
     @Override
     public JSONArray getOptions(String loginId, Long accountId) {
         JSONArray result = new JSONArray();