Explorar o código

修改组预算默认设置逻辑

songyh %!s(int64=4) %!d(string=hai) anos
pai
achega
13b2d55cd7

+ 67 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/dockapi/MarketingService.java

@@ -0,0 +1,67 @@
+package org.jeecg.modules.bytedance.advertise.dockapi;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.bytedance.advertise.entity.AiBytedanceAdvertiserStrategy;
+import org.jeecg.modules.bytedance.advertise.vo.AdConvertQueryVo;
+import org.jeecg.modules.bytedance.advertise.vo.ByteDanceSearchVo;
+import org.jeecg.modules.bytedance.advertise.vo.PlanSearchVo;
+import org.jeecg.modules.bytedance.common.entity.CtopOauthToken;
+
+import java.util.List;
+import java.util.Map;
+
+public interface MarketingService {
+    Result getBudget(CtopOauthToken token, List<Long> advertiser_ids);
+
+    Result updateBudget(CtopOauthToken token, String budgetMode, String budget);
+
+    Result selectCustomAudience(CtopOauthToken token);
+
+    Result getCreativeRejectReason(CtopOauthToken token, String creativeIds);
+
+    Result getMaterialRead(CtopOauthToken token, String[] creativeIds);
+
+    Result updateCreativeStatus(CtopOauthToken token, String[] creativeIds, String optStatus);
+
+    Result createCampaign(CtopOauthToken token, JSONObject params);
+
+    JSONObject videoCoverSuggest(CtopOauthToken token, JSONObject params);
+
+    Result createAdvertiserPlan(CtopOauthToken token, JSONObject params, AiBytedanceAdvertiserStrategy strategy);
+
+    JSONObject creativeCreate(CtopOauthToken token, Long adId, JSONObject params);
+
+    Result creativeRead(CtopOauthToken token, String advertiserId, String adId);
+
+    Result getAdvertiserCreativeByPageNumber(CtopOauthToken token, Integer pageNumber, List<ByteDanceSearchVo> byteDanceSearchVoList);
+
+    Result getRejectReason(CtopOauthToken token, String advertiserId, List<String> adIds);
+
+    Result updatePlanBid(CtopOauthToken token, String advertiserId, List<Map<String, Object>> listMap);
+
+    Result updatePlanBudget(CtopOauthToken token, String advertiserId, List<Map<String, Object>> listMap);
+
+    Result updPlanStatus(CtopOauthToken token, List<String> adIds, String optStatus);
+
+    Result getPlanList(CtopOauthToken token, List<PlanSearchVo> planSearchVoList, Integer pageNo, Integer pageSize);
+
+    Result updateCampaignStatus(CtopOauthToken token, List<String> campaignIds, String optStatus);
+
+    Result getCampaignGroupList(CtopOauthToken token, String accountId, JSONArray ids, int page, int pageSize);
+
+    Result updateCampaign(CtopOauthToken token, String campaignId, String modifyTime, String campaignName, String budgetMode, String budget);
+
+    Result updateAdvertiserPlan(CtopOauthToken token, String planId, String modifyTime, AiBytedanceAdvertiserStrategy strategy);
+
+    Result creativeUpdate(CtopOauthToken token, String adId, String modifyTime, JSONObject data);
+
+    Result getToolIndustryList(CtopOauthToken token, String type);
+
+    Result getToolConvertQuery(CtopOauthToken token, AdConvertQueryVo convertQueryVo);
+
+    JSONObject imageUpload(CtopOauthToken token, String imageUrl);
+
+    JSONObject getSuggestImageId(CtopOauthToken token, String vid);
+}

+ 77 - 36
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/dockapi/Marketing.java

@@ -11,9 +11,10 @@ import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.bytedance.advertise.entity.AiBytedanceAdvertiserStrategy;
+import org.jeecg.modules.bytedance.advertise.entity.ByteDanceCampaign;
 import org.jeecg.modules.bytedance.advertise.enums.BytedanceConvertType;
+import org.jeecg.modules.bytedance.advertise.service.IByteDanceCampaignService;
 import org.jeecg.modules.bytedance.advertise.vo.AdConvertQueryVo;
-import org.jeecg.modules.bytedance.advertise.vo.AdGroupSearchVo;
 import org.jeecg.modules.bytedance.advertise.vo.ByteDanceSearchVo;
 import org.jeecg.modules.bytedance.advertise.vo.PlanSearchVo;
 import org.jeecg.modules.bytedance.common.constant.BytedanceConstant;
@@ -21,6 +22,8 @@ import org.jeecg.modules.bytedance.common.entity.CtopOauthToken;
 import org.jeecg.modules.bytedance.common.utils.Check;
 import org.jeecg.modules.bytedance.common.utils.HttpUtils;
 import org.jeecg.modules.bytedance.common.utils.PropertiesUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -37,11 +40,12 @@ import java.util.Map;
  **/
 
 @Slf4j
-public class Marketing {
-    private static final String urlPath = PropertiesUtils.getValue("bytedance_config", "bytedance_api_url");
-
-
+@Service
+public class MarketingServiceImpl implements MarketingService{
+    private  final String urlPath = PropertiesUtils.getValue("bytedance_config", "bytedance_api_url");
 
+    @Autowired
+    private IByteDanceCampaignService campaignService;
     /**
      *
      * @description: 获取账户日预算
@@ -51,7 +55,8 @@ public class Marketing {
      * @return: java.util.Map<java.lang.String,java.lang.Object>
      * @author: zianY
      */
-    public static Result getBudget(CtopOauthToken token, List<Long> advertiser_ids) {
+    @Override
+    public Result getBudget(CtopOauthToken token, List<Long> advertiser_ids) {
         JSONObject params = new JSONObject();
         //广告主id列表,长度限制:[1,100]
         params.put("advertiser_ids", advertiser_ids);
@@ -77,7 +82,8 @@ public class Marketing {
      * @param budget 预算值
      * @return: java.util.Map<java.lang.String,java.lang.Object>
      */
-    public static Result updateBudget(CtopOauthToken token, String budgetMode, String budget) {
+    @Override
+    public Result updateBudget(CtopOauthToken token, String budgetMode, String budget) {
         JSONObject params = new JSONObject();
         //广告主ID
         params.put("advertiser_id", token.getAccountId());
@@ -110,7 +116,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result selectCustomAudience(CtopOauthToken token) {
+    @Override
+    public  Result selectCustomAudience(CtopOauthToken token) {
         JSONObject params = new JSONObject();
         //广告主ID
         params.put("advertiser_id", token.getAccountId());
@@ -146,7 +153,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result getCreativeRejectReason(CtopOauthToken token,String creativeIds) {
+    @Override
+    public  Result getCreativeRejectReason(CtopOauthToken token, String creativeIds) {
         JSONObject params = new JSONObject();
         //广告主ID
         params.put("advertiser_id", token.getAccountId());
@@ -179,7 +187,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result getMaterialRead(CtopOauthToken token,String[] creativeIds) {
+    @Override
+    public  Result getMaterialRead(CtopOauthToken token, String[] creativeIds) {
 
         JSONObject params = new JSONObject();
         //广告主ID
@@ -217,7 +226,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result updateCreativeStatus(CtopOauthToken token, String[] creativeIds, String optStatus) {
+    @Override
+    public  Result updateCreativeStatus(CtopOauthToken token, String[] creativeIds, String optStatus) {
         JSONObject params = new JSONObject();
         params.put("advertiser_id", token.getAccountId());
         params.put("creative_ids", creativeIds);
@@ -250,7 +260,8 @@ public class Marketing {
      * @param params 广告组名称
      * @return org.jeecg.common.api.vo.Result
      */
-    public static Result createCampaign(CtopOauthToken token,JSONObject params) {
+    @Override
+    public  Result createCampaign(CtopOauthToken token, JSONObject params) {
         // api创建组
         JSONObject data = HttpUtils.bytedancePostRequest(token.getAccessToken(),
                 urlPath+PropertiesUtils.getValue("bytedance_config", "bytedance_v2_campaign_create"),
@@ -266,10 +277,15 @@ public class Marketing {
             return Result.error(message);
         }
         //广告组id
+        //TODO 广告组数据同步入库
+        JSONArray ids = new JSONArray();
+        ids.add(data.getJSONObject("data").getLong("campaign_id"));
+        this.getCampaignGroupList(token,token.getAccountId().toString(),ids,1,10);
         return Result.successMsg("广告组创建成功",data.getJSONObject("data").getLong("campaign_id"));
     }
 
-    public static JSONObject videoCoverSuggest(CtopOauthToken token,JSONObject params){
+    @Override
+    public  JSONObject videoCoverSuggest(CtopOauthToken token, JSONObject params){
         // api创建获取视频推荐封面
         JSONObject result = HttpUtils.bytedanceGetRequest(token.getAccessToken(),
                 urlPath+PropertiesUtils.getValue("bytedance_config", "bytedance_v2_tools_video_cover_suggest"),
@@ -300,7 +316,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result createAdvertiserPlan(CtopOauthToken token, JSONObject params, AiBytedanceAdvertiserStrategy strategy) {
+    @Override
+    public  Result createAdvertiserPlan(CtopOauthToken token, JSONObject params, AiBytedanceAdvertiserStrategy strategy) {
         JSONObject jsonObject = HttpUtils.bytedancePostRequest(token.getAccessToken(),
                 urlPath + PropertiesUtils.getValue("bytedance_config", "bytedance_v2_ad_create"), params);
         Integer code = jsonObject.getInteger("code");
@@ -323,7 +340,8 @@ public class Marketing {
      * @param params 创意入参
      * @return
      */
-    public static JSONObject creativeCreate(CtopOauthToken token, Long adId, JSONObject params) {
+    @Override
+    public  JSONObject creativeCreate(CtopOauthToken token, Long adId, JSONObject params) {
         return HttpUtils.bytedancePostRequest(token.getAccessToken(),
                 urlPath + PropertiesUtils.getValue("bytedance_config", "bytedance_v2_creative_create_v2"),
                 params);
@@ -341,7 +359,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result creativeRead(CtopOauthToken token,String advertiserId,String adId) {
+    @Override
+    public  Result creativeRead(CtopOauthToken token, String advertiserId, String adId) {
         JSONObject param = new JSONObject();
         param.put("advertiser_id",advertiserId);
         param.put("ad_id",adId);
@@ -373,7 +392,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result getAdvertiserCreativeByPageNumber(CtopOauthToken token, Integer pageNumber, List<ByteDanceSearchVo> byteDanceSearchVoList) {
+    @Override
+    public  Result getAdvertiserCreativeByPageNumber(CtopOauthToken token, Integer pageNumber, List<ByteDanceSearchVo> byteDanceSearchVoList) {
         JSONObject params = new JSONObject();
         params.put("advertiser_id", token.getAccountId());
         if (null != byteDanceSearchVoList){
@@ -407,7 +427,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result getRejectReason(CtopOauthToken token, String advertiserId, List<String> adIds) {
+    @Override
+    public  Result getRejectReason(CtopOauthToken token, String advertiserId, List<String> adIds) {
         JSONObject params = new JSONObject();
         params.put("advertiser_id", advertiserId);
         params.put("ad_ids", adIds);
@@ -439,7 +460,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result updatePlanBid(CtopOauthToken token,String advertiserId,List<Map<String,Object>> listMap) {
+    @Override
+    public  Result updatePlanBid(CtopOauthToken token, String advertiserId, List<Map<String, Object>> listMap) {
         JSONObject params = new JSONObject();
         params.put("advertiser_id", advertiserId);
         params.put("data", listMap);
@@ -465,7 +487,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result updatePlanBudget(CtopOauthToken token,String advertiserId,List<Map<String,Object>> listMap) {
+    @Override
+    public  Result updatePlanBudget(CtopOauthToken token, String advertiserId, List<Map<String, Object>> listMap) {
         JSONObject params = new JSONObject();
         params.put("advertiser_id", advertiserId);
         params.put("data", listMap);
@@ -491,7 +514,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result updPlanStatus(CtopOauthToken token, List<String> adIds, String optStatus) {
+    @Override
+    public  Result updPlanStatus(CtopOauthToken token, List<String> adIds, String optStatus) {
         JSONObject params = new JSONObject();
         params.put("advertiser_id", token.getAccountId());
         params.put("ad_ids", adIds);
@@ -518,7 +542,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result getPlanList(CtopOauthToken token, List<PlanSearchVo> planSearchVoList,Integer pageNo, Integer pageSize) {
+    @Override
+    public  Result getPlanList(CtopOauthToken token, List<PlanSearchVo> planSearchVoList, Integer pageNo, Integer pageSize) {
         JSONObject params = new JSONObject();
         params.put("advertiser_id", token.getAccountId());
         params.put("filtering", planSearchVoList);
@@ -547,7 +572,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result updateCampaignStatus(CtopOauthToken token,List<String> campaignIds, String optStatus) {
+    @Override
+    public  Result updateCampaignStatus(CtopOauthToken token, List<String> campaignIds, String optStatus) {
         JSONObject params = new JSONObject();
         //广告主id
         params.put("advertiser_id", token.getAccountId());
@@ -575,17 +601,21 @@ public class Marketing {
      *
      * @param token
      * @param accountId 广告主id
-     * @param adGroupSearchVoList 广告组 入参
+     * @param ids 广告组 入参
      * @param page
      * @param pageSize
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result getCampaignGroupList(CtopOauthToken token,String accountId,List<AdGroupSearchVo> adGroupSearchVoList,int page,int pageSize) {
-
+    @Override
+    public  Result getCampaignGroupList(CtopOauthToken token, String accountId, JSONArray ids, int page, int pageSize) {
         JSONObject params = new JSONObject();
         params.put("advertiser_id", token.getAccountId());
-        params.put("filtering", adGroupSearchVoList);
+        JSONObject filtering = new JSONObject();
+        if(null!=ids&&!ids.isEmpty()){
+            filtering.put("ids",ids);
+        }
+        params.put("filtering", filtering);
         params.put("page", page);
         params.put("page_size", pageSize);
         JSONObject jsonObject = HttpUtils.bytedanceGetRequest(token.getAccessToken(),
@@ -601,6 +631,11 @@ public class Marketing {
             log.info("获取广告组信息为空==》accountId:{},message:{}", token.getAccountId(), jsonObject.getString("message"));
             return Result.error("获取广告组信息为空");
         }
+        for(int i=0;i<data.size();i++){
+            JSONObject campaign = data.getJSONObject(i);
+            ByteDanceCampaign result = new ByteDanceCampaign(campaign,Long.parseLong(accountId));
+            campaignService.saveOrUpdate(result);
+        }
         return Result.successMsg("获取广告组信息成功",data);
     }
 
@@ -618,7 +653,8 @@ public class Marketing {
      * @param budget 广告组预算
      * @return: org.jeecg.common.api.vo.Result
      */
-    public static Result updateCampaign(CtopOauthToken token, String campaignId, String modifyTime, String campaignName,String budgetMode, String budget) {
+    @Override
+    public  Result updateCampaign(CtopOauthToken token, String campaignId, String modifyTime, String campaignName, String budgetMode, String budget) {
         JSONObject params = new JSONObject();
         //广告主id
         params.put("advertiser_id", token.getAccountId());
@@ -662,7 +698,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result updateAdvertiserPlan(CtopOauthToken token, String planId,String modifyTime,AiBytedanceAdvertiserStrategy strategy) {
+    @Override
+    public  Result updateAdvertiserPlan(CtopOauthToken token, String planId, String modifyTime, AiBytedanceAdvertiserStrategy strategy) {
         JSONObject params = new JSONObject();
         //广告主ID
         params.put("advertiser_id", strategy.getAccountId());
@@ -776,7 +813,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result creativeUpdate(CtopOauthToken token, String adId, String modifyTime,JSONObject data) {
+    @Override
+    public  Result creativeUpdate(CtopOauthToken token, String adId, String modifyTime, JSONObject data) {
        //广告主ID
         data.put("advertiser_id", token.getAccountId());
         //广告计划ID
@@ -798,7 +836,7 @@ public class Marketing {
         }
         //监测链接
         data.put("action_track_url", data.getString("action_track_url"));
-        //创意方式,当值为"STATIC_ASSEMBLE"表示程序化创意,其他情况不传字段
+        //创意方式,当值为"_ASSEMBLE"表示程序化创意,其他情况不传字段
         data.put("creative_material_mode", data.getString("creative_material_mode"));
         //标题信息
         data.put("image_list", data.getJSONArray("image_list"));
@@ -843,7 +881,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result getToolIndustryList(CtopOauthToken token,String type) {
+    @Override
+    public  Result getToolIndustryList(CtopOauthToken token, String type) {
 
         JSONObject params = new JSONObject();
         params.put("type", type);
@@ -877,7 +916,8 @@ public class Marketing {
      * @return: org.jeecg.common.api.vo.Result
      * @author: zianY
      */
-    public static Result getToolConvertQuery(CtopOauthToken token,AdConvertQueryVo convertQueryVo) {
+    @Override
+    public  Result getToolConvertQuery(CtopOauthToken token, AdConvertQueryVo convertQueryVo) {
 
         JSONObject params = new JSONObject();
         //广告主id
@@ -942,7 +982,8 @@ public class Marketing {
      * @param imageUrl 图片url
      * @return
      */
-    public static JSONObject imageUpload(CtopOauthToken token, String imageUrl) {
+    @Override
+    public  JSONObject imageUpload(CtopOauthToken token, String imageUrl) {
         // 请求地址
         String url = urlPath + PropertiesUtils.getValue("bytedance_config", "bytedance_v2_file_image_ad");
         // 构造请求
@@ -989,8 +1030,8 @@ public class Marketing {
         return null;
     }
 
-
-    public static JSONObject getSuggestImageId(CtopOauthToken token, String vid) {
+    @Override
+    public  JSONObject getSuggestImageId(CtopOauthToken token, String vid) {
         // 请求地址
         String url = "https://ad.oceanengine.com/open_api/2/tools/video_cover/suggest/";
         // 请求参数

+ 2 - 2
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/entity/AiBytedanceAdDplinkInfo.java

@@ -28,8 +28,8 @@ public class AiBytedanceAdDplinkInfo {
 	private Long adId;
 	/**accountId*/
 	private Long accountId;
-	/**stratrgyId*/
-	private Long stratrgyId;
+	/**strategyId*/
+	private Long strategyId;
 	/**createTime*/
 	private Date createTime;
 	/**updateTime*/

+ 2 - 2
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/entity/AiBytedanceCampaignDplinkInfo.java

@@ -36,6 +36,6 @@ public class AiBytedanceCampaignDplinkInfo {
 	private Date updateTime;
 	/**accountId*/
 	private Long accountId;
-	/**stratrgyId*/
-	private Long stratrgyId;
+	/**strategyId*/
+	private Long strategyId;
 }

+ 227 - 101
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/service/impl/AiBytedanceAdvertiserStrategyServiceImpl.java

@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.util.DateUtils;
-import org.jeecg.modules.bytedance.advertise.dockapi.Marketing;
+import org.jeecg.modules.bytedance.advertise.dockapi.MarketingService;
 import org.jeecg.modules.bytedance.advertise.entity.*;
 import org.jeecg.modules.bytedance.advertise.enums.BytedanceCreativeMatTypeEnum;
 import org.jeecg.modules.bytedance.advertise.mapper.AiBytedanceAdvertiserStrategyMapper;
@@ -63,6 +63,8 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
     private IAiBytedanceAdDplinkInfoService adDplinkInfoService;
     @Autowired
     private IByteDanceVideoInfoService videoInfoService;
+    @Autowired
+    private MarketingService marketingService;
 
     @Override
     public Long createCreative(AiBytedanceAdvertiserStrategy strategy,Integer createType, Long videoCnt) {
@@ -111,7 +113,7 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
                 adDplinkInfo.setId(null);
                 adDplinkInfo.setDpLinkIndex(adDplinkInfo.getDpLinkIndex()+1);
             }
-            dpIndex = strategy.getDpLinkStartIndex();
+            dpIndex = adDplinkInfo.getDpLinkIndex();
             if(dpIndex>strategy.getDpLinkEndIndex()){
                 log.info("此账户策略创建结束=>账户id:{};策略id:{}", token.getAccountId(),strategy.getId());
                 return 0L;
@@ -127,11 +129,11 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             adDplinkInfo.setAdId(adId);
             adDplinkInfo.setAccountId(strategy.getAccountId());
             adDplinkInfo.setStatus(1);
-            adDplinkInfo.setStratrgyId(strategy.getId());
+            adDplinkInfo.setStrategyId(strategy.getId());
             adDplinkInfoService.save(adDplinkInfo);
             //3:创建创意
             JSONObject creativeParams = getCreativeParams(strategy,adId,video,token);
-            JSONObject creativeObject =  Marketing.creativeCreate(token,adId,creativeParams);
+            JSONObject creativeObject =  marketingService.creativeCreate(token,adId,creativeParams);
             if(null!=creativeObject.getInteger("code")&&creativeObject.getInteger("code")!=0){
                 String message = creativeObject.getString("message");
                 //创建创意失败
@@ -151,9 +153,13 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         params.put("ad_id",adId);
         String inventoryType = strategy.getCreativeInventoryType();
         if(null!=inventoryType&&!"".equals(inventoryType)){
-            JSONArray inventoryTypeArray = JSON.parseArray(inventoryType);
-            if(!Check.isNull(inventoryTypeArray)){
-                params.put("inventory_type",inventoryTypeArray);
+            String[] inventoryTypeString = inventoryType.split(",");
+            if(inventoryTypeString.length>0){
+              JSONArray inventoryTypeArray = new JSONArray();
+              for(int i=0;i<inventoryTypeString.length;i++){
+                    inventoryTypeArray.add(inventoryTypeString[i]);
+              }
+              params.put("inventory_type",inventoryTypeArray);
             }
         }
         Integer smartInventory = strategy.getCreativeSmartInventory();
@@ -182,19 +188,20 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         JSONObject imageObject = new JSONObject();
         //视频类型
         if(videoInfo.getType() == 1){
-            //横版视频
-            imageObject.put("image_mode","CREATIVE_IMAGE_MODE_VIDEO");
-        }
-        if(videoInfo.getType() == 2){
             //竖版视频
             imageObject.put("image_mode","CREATIVE_IMAGE_MODE_VIDEO_VERTICAL");
         }
+        if(videoInfo.getType() == 2){
+            //横版视频
+            imageObject.put("image_mode","CREATIVE_IMAGE_MODE_VIDEO");
+        }
         imageObject.put("video_id",videoInfo.getVid());
         //获取视频封面id
         String imageId = getSuggestImageId(token,videoInfo.getVid());
         if(!Check.isNull(imageId)){
             imageObject.put("image_id",imageId);
         }
+        imageArray.add(imageObject);
         params.put("image_list",imageArray);
         JSONArray titleArray = new JSONArray();
         List<BytedanceVideoSlogenInfo>slogenInfos = slogenInfoService.listByParams(videoInfo.getSignature(),1);
@@ -205,7 +212,7 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
                 titleArray.add(titleObject);
             });
         }
-        if(Check.isNull(titleArray)){
+        if(!Check.isNull(titleArray)){
             params.put("title_list",titleArray);
         }
         //广告来源
@@ -277,13 +284,17 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             }
             String productSellingPoints = strategy.getCreativeProductSellingPoints();
             if(!Check.isNull(productSellingPoints)){
-                JSONArray pointArray = JSON.parseArray(productSellingPoints);
-                if(null!=pointArray&&pointArray.size()>0){
+                String[] pointString = productSellingPoints.split(",");
+                if(pointString.length>0){
+                    JSONArray pointArray = new JSONArray();
+                    for(int i=0;i<pointString.length;i++){
+                        pointArray.add(pointString[i]);
+                    }
                     promotionCard.put("product_selling_points",pointArray);
                 }
             }
             String productDescription = strategy.getCreativeProductDescription();
-            if(Check.isNull(productDescription)){
+            if(!Check.isNull(productDescription)){
                 promotionCard.put("product_description",productDescription);
             }
             Boolean enableStorePack = strategy.getCreativeEnablePersonalAction();
@@ -369,8 +380,8 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
     }
 
     private Long createAdInfo(CtopOauthToken token, AiBytedanceAdvertiserStrategy strategy, JSONObject adParams) {
-        Result result = Marketing.createAdvertiserPlan(token,adParams,strategy);
-        if(result.getCode()!=200){
+        Result result = marketingService.createAdvertiserPlan(token,adParams,strategy);
+        if(result.getCode()!=0){
             //TODO 计划创建异常 后续需要加日志
             return null;
         }
@@ -383,6 +394,8 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         params.put("advertiser_id",strategy.getAccountId());
         params.put("campaign_id",campaignId);
         params.put("name",adName);
+        //竞价策略 默认优先跑量
+        params.put("flow_control_mode","FLOW_CONTROL_MODE_FAST");
         //投放范围
         params.put("delivery_range",strategy.getAdDeliveryRange());
         if(!Check.isNull(strategy.getAdUnionVideoType())){
@@ -449,81 +462,141 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             params.put("gender",strategy.getAdGender());
         }
         if(!Check.isNull(strategy.getAdAge())){
-            JSONArray age = JSON.parseArray(strategy.getAdAge());
-            if(null!=age&&!age.isEmpty()){
-                params.put("age",age);
+            String[] age = strategy.getAdAge().split(",");
+            if(age.length>0){
+                JSONArray ageArray = new JSONArray();
+                for(int i=0;i<age.length;i++){
+                    if(null!=age[i]&&!age[i].equals("NONE")){
+                        ageArray.add(age[i]);
+                    }
+                }
+                if(!ageArray.isEmpty()){
+                    params.put("age",ageArray);
+                }
             }
         }
         if(!Check.isNull(strategy.getAdRetargetingTagsInclude())){
-            JSONArray retargetingTagsInclude = JSON.parseArray(strategy.getAdRetargetingTagsInclude());
-            if(null!=retargetingTagsInclude&&!retargetingTagsInclude.isEmpty()){
-                params.put("retargeting_tags_include",retargetingTagsInclude);
+            String[] retargetingTagsInclude = strategy.getAdRetargetingTagsInclude().split(",");
+            if(retargetingTagsInclude.length>0){
+                JSONArray retargetingTagsIncludeArray = new JSONArray();
+                for(int i=0;i<retargetingTagsInclude.length;i++){
+                    if(null!=retargetingTagsInclude[i]&&!retargetingTagsInclude[i].equals("NONE")){
+                        retargetingTagsIncludeArray.add(Long.parseLong(retargetingTagsInclude[i]));
+                    }
+                }
+                if(!retargetingTagsIncludeArray.isEmpty()){
+                    params.put("retargeting_tags_include",retargetingTagsIncludeArray);
+                }
             }
         }
         if(!Check.isNull(strategy.getAdRetargetingTagsExclude())){
-            JSONArray getAdRetargetingTagsExclude = JSON.parseArray(strategy.getAdRetargetingTagsExclude());
-            if(null!=getAdRetargetingTagsExclude&&!getAdRetargetingTagsExclude.isEmpty()){
-                params.put("retargeting_tags_exclude",getAdRetargetingTagsExclude);
+            String[] getAdRetargetingTagsExclude = strategy.getAdRetargetingTagsExclude().split(",");
+            if(getAdRetargetingTagsExclude.length>0){
+                JSONArray getAdRetargetingTagsExcludeArray = new JSONArray();
+                for(int i=0;i<getAdRetargetingTagsExclude.length;i++){
+                    if(null!=getAdRetargetingTagsExclude[i]&&!getAdRetargetingTagsExclude[i].equals("NONE")){
+                        getAdRetargetingTagsExcludeArray.add(getAdRetargetingTagsExclude[i]);
+                    }
+                }
+                if(!getAdRetargetingTagsExcludeArray.isEmpty()){
+                    params.put("retargeting_tags_exclude",getAdRetargetingTagsExcludeArray);
+                }
             }
         }
         if(!Check.isNull(strategy.getAdInterestActionMode())){
             params.put("interest_action_mode",strategy.getAdInterestActionMode());
         }
         if(!Check.isNull(strategy.getAdActionScene())){
-            JSONArray actionScene = JSON.parseArray(strategy.getAdActionScene());
-            if(null!=actionScene&&!actionScene.isEmpty()){
-                params.put("action_scene",actionScene);
+            String[] actionScene = strategy.getAdActionScene().split(",");
+            if(actionScene.length>0){
+                JSONArray actionSceneArray = new JSONArray();
+                for(int i=0;i<actionScene.length;i++){
+                    actionSceneArray.add(actionScene[i]);
+                }
+                params.put("action_scene",actionSceneArray);
             }
         }
         if(!Check.isNull(strategy.getAdActionDays())){
             params.put("action_days",strategy.getAdActionDays());
         }
         if(!Check.isNull(strategy.getAdActionCategories())){
-            JSONArray actionCategories = JSON.parseArray(strategy.getAdActionCategories());
-            if(null!=actionCategories&&!actionCategories.isEmpty()){
-                params.put("action_categories",actionCategories);
+            String[] actionCategories = strategy.getAdActionCategories().split(",");
+            if(actionCategories.length>0){
+                JSONArray actionCategoriesArray = new JSONArray();
+                for(int i=0;i<actionCategories.length;i++){
+                    actionCategoriesArray.add(actionCategories[i]);
+                }
+                params.put("action_categories",actionCategoriesArray);
             }
         }
         if(!Check.isNull(strategy.getAdActionWords())){
-            JSONArray actionWords = JSON.parseArray(strategy.getAdActionWords());
-            if(null!=actionWords&&!actionWords.isEmpty()){
-                params.put("action_words",actionWords);
+            String[] actionWords = strategy.getAdActionWords().split(",");
+            if(actionWords.length>0){
+                JSONArray actionWordsArray = new JSONArray();
+                for(int i=0;i<actionWords.length;i++){
+                    actionWordsArray.add(actionWords[i]);
+                }
+                params.put("action_words",actionWordsArray);
             }
         }
         if(!Check.isNull(strategy.getAdInterestCategories())){
-            JSONArray interestCategories = JSON.parseArray(strategy.getAdInterestCategories());
-            if(null!=interestCategories&&!interestCategories.isEmpty()){
-                params.put("interest_categories",interestCategories);
+            String[] interestCategories = strategy.getAdInterestCategories().split(",");
+            if(interestCategories.length>0){
+                JSONArray interestCategoriesArray = new JSONArray();
+                for(int i=0;i<interestCategories.length;i++){
+                    interestCategoriesArray.add(interestCategories[i]);
+                }
+                params.put("interest_categories",interestCategoriesArray);
             }
         }
         if(!Check.isNull(strategy.getAdInterestWords())){
-            JSONArray interestWords = JSON.parseArray(strategy.getAdInterestWords());
-            if(null!=interestWords&&!interestWords.isEmpty()){
-                params.put("interest_words",interestWords);
+            String[] interestWords = strategy.getAdInterestWords().split(",");
+            if(interestWords.length>0){
+                JSONArray interestWordsArray = new JSONArray();
+                for(int i=0;i<interestWords.length;i++){
+                    interestWordsArray.add(interestWords[i]);
+                }
+                params.put("interest_words",interestWordsArray);
             }
         }
         if(!Check.isNull(strategy.getAdAwemeFanBehaviors())){
-            JSONArray awemeFanBehaviors = JSON.parseArray(strategy.getAdAwemeFanBehaviors());
-            if(null!=awemeFanBehaviors&&!awemeFanBehaviors.isEmpty()){
-                params.put("aweme_fan_behaviors",awemeFanBehaviors);
+            String[] awemeFanBehaviors = strategy.getAdAwemeFanBehaviors().split(",");
+            if(awemeFanBehaviors.length>0){
+                JSONArray awemeFanBehaviorsArray = new JSONArray();
+                for(int i=0;i<awemeFanBehaviors.length;i++){
+                    awemeFanBehaviorsArray.add(awemeFanBehaviors[i]);
+                }
+                params.put("aweme_fan_behaviors",awemeFanBehaviorsArray);
             }
         }
         if(!Check.isNull(strategy.getAdAwemeFanCategories())){
-            JSONArray awemeFanCategories = JSON.parseArray(strategy.getAdAwemeFanCategories());
-            if(null!=awemeFanCategories&&!awemeFanCategories.isEmpty()){
-                params.put("aweme_fan_categories",awemeFanCategories);
+            String[] awemeFanCategories = strategy.getAdAwemeFanCategories().split(",");
+            if(awemeFanCategories.length>0){
+                JSONArray awemeFanCategoriesArray = new JSONArray();
+                for(int i=0;i<awemeFanCategories.length;i++){
+                    awemeFanCategoriesArray.add(awemeFanCategories[i]);
+                }
+                params.put("aweme_fan_categories",awemeFanCategoriesArray);
             }
         }
         if(!Check.isNull(strategy.getAdAwemeFanAccounts())){
-            JSONArray awemeFanAccount = JSON.parseArray(strategy.getAdAwemeFanAccounts());
-            if(null!=awemeFanAccount&&!awemeFanAccount.isEmpty()){
-                params.put("aweme_fan_accounts",awemeFanAccount);
+            String[] awemeFanAccount = strategy.getAdAwemeFanAccounts().split(",");
+            if(awemeFanAccount.length>0){
+                JSONArray awemeFanAccountArray = new JSONArray();
+                for(int i=0;i<awemeFanAccount.length;i++){
+                    awemeFanAccountArray.add(awemeFanAccount[i]);
+                }
+                params.put("aweme_fan_accounts",awemeFanAccountArray);
             }
         }
         if(!Check.isNull(strategy.getAdAwemeFansNumbers())){
-            JSONArray awemeFansNumbers = JSON.parseArray(strategy.getAdAwemeFansNumbers());
-            if(null!=awemeFansNumbers&&!awemeFansNumbers.isEmpty()){
-                params.put("aweme_fans_numbers",awemeFansNumbers);
+            String[] awemeFansNumbers = strategy.getAdAwemeFansNumbers().split(",");
+            if(awemeFansNumbers.length>0){
+                JSONArray awemeFansNumbersArray = new JSONArray();
+                for(int i=0;i<awemeFansNumbers.length;i++){
+                    awemeFansNumbersArray.add(awemeFansNumbers[i]);
+                }
+                params.put("aweme_fans_numbers",awemeFansNumbersArray);
             }
         }
         if(!Check.isNull(strategy.getAdFilterAwemeAbnormalActive())){
@@ -539,21 +612,33 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             params.put("superior_popularity_type",strategy.getAdSuperiorPopularityType());
         }
         if(!Check.isNull(strategy.getAdFlowPackage())){
-            JSONArray flowPackage = JSON.parseArray(strategy.getAdFlowPackage());
-            if(null!=flowPackage&&!flowPackage.isEmpty()){
-                params.put("flow_package",flowPackage);
+            String[] flowPackage = strategy.getAdFlowPackage().split(",");
+            if(flowPackage.length>0){
+                JSONArray flowPackageArray = new JSONArray();
+                for(int i=0;i<flowPackage.length;i++){
+                    flowPackageArray.add(flowPackage[i]);
+                }
+                params.put("flow_package",flowPackageArray);
             }
         }
         if(!Check.isNull(strategy.getAdExcludeFlowPackage())){
-            JSONArray excludeFlowPackage = JSON.parseArray(strategy.getAdExcludeFlowPackage());
-            if(null!=excludeFlowPackage&&!excludeFlowPackage.isEmpty()){
-                params.put("exclude_flow_package",excludeFlowPackage);
+            String[] excludeFlowPackage = strategy.getAdExcludeFlowPackage().split(",");
+            if(excludeFlowPackage.length>0){
+                JSONArray excludeFlowPackageArray = new JSONArray();
+                for(int i=0;i<excludeFlowPackage.length;i++){
+                    excludeFlowPackageArray.add(excludeFlowPackage[i]);
+                }
+                params.put("exclude_flow_package",excludeFlowPackageArray);
             }
         }
         if(!Check.isNull(strategy.getAdPlatform())){
-            JSONArray platform = JSON.parseArray(strategy.getAdPlatform());
-            if(null!=platform&&!platform.isEmpty()){
-                params.put("platform",platform);
+            String[] platform = strategy.getAdPlatform().split(",");
+            if(platform.length>0){
+                JSONArray platformArray = new JSONArray();
+                for(int i=0;i<platform.length;i++){
+                    platformArray.add(platform[i]);
+                }
+                params.put("platform",platformArray);
             }
         }
 
@@ -565,21 +650,41 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             params.put("ios_osv",strategy.getAdAdIosOsv());
         }
         if(!Check.isNull(strategy.getAdAc())){
-            JSONArray ac = JSON.parseArray(strategy.getAdAc());
-            if(null!=ac&&!ac.isEmpty()){
-                params.put("ac",ac);
+            String[] ac = strategy.getAdAc().split(",");
+            if(ac.length>0){
+                JSONArray acArray = new JSONArray();
+                for(int i=0;i<ac.length;i++){
+                    if(null!=ac[i]&&!ac[i].equals("NONE")){
+                        acArray.add(ac[i]);
+                    }
+                }
+                if(!acArray.isEmpty()){
+                    params.put("ac",acArray);
+                }
             }
         }
         if(!Check.isNull(strategy.getAdCarrier())){
-            JSONArray carrier = JSON.parseArray(strategy.getAdCarrier());
-            if(null!=carrier&&!carrier.isEmpty()){
-                params.put("carrier",carrier);
+            String[] carrier = strategy.getAdCarrier().split(",");
+            if(carrier.length>0){
+                JSONArray carrierArray = new JSONArray();
+                for(int i=0;i<carrier.length;i++){
+                    if(null!=carrier[i]&&!carrier[i].equals("NONE")) {
+                        carrierArray.add(carrier[i]);
+                    }
+                }
+                if(!carrierArray.isEmpty()){
+                    params.put("carrier",carrierArray);
+                }
             }
         }
         if(!Check.isNull(strategy.getAdDeviceType())){
-            JSONArray deviceType = JSON.parseArray(strategy.getAdDeviceType());
-            if(null!=deviceType&&!deviceType.isEmpty()){
-                params.put("device_type",deviceType);
+            String[] deviceType = strategy.getAdDeviceType().split(",");
+            if(deviceType.length>0){
+                JSONArray deviceTypeArray = new JSONArray();
+                for(int i=0;i<deviceType.length;i++){
+                    deviceTypeArray.add(deviceType[i]);
+                }
+                params.put("device_type",deviceTypeArray);
             }
         }
 
@@ -594,36 +699,56 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         }
 
         if(!Check.isNull(strategy.getAdActivateType())){
-            JSONArray activateType = JSON.parseArray(strategy.getAdActivateType());
-            if(null!=activateType&&!activateType.isEmpty()){
-                params.put("activate_type",activateType);
+            String[] activateType = strategy.getAdActivateType().split(",");
+            if(activateType.length>0){
+                JSONArray activateTypeArray = new JSONArray();
+                for(int i=0;i<activateType.length;i++){
+                    activateTypeArray.add(activateType[i]);
+                }
+                params.put("activate_type",activateTypeArray);
             }
         }
         if(!Check.isNull(strategy.getAdArticleCategory())){
-            JSONArray articleCategory = JSON.parseArray(strategy.getAdArticleCategory());
-            if(null!=articleCategory&&!articleCategory.isEmpty()){
-                params.put("article_category",articleCategory);
+            String[] articleCategory = strategy.getAdArticleCategory().split(",");
+            if(articleCategory.length>0){
+                JSONArray articleCategoryArray = new JSONArray();
+                for(int i=0;i<articleCategory.length;i++){
+                    articleCategoryArray.add(articleCategory[i]);
+                }
+                params.put("article_category",articleCategoryArray);
             }
         }
         if(!Check.isNull(strategy.getAdDeviceBrand())){
-            JSONArray deviceBrand = JSON.parseArray(strategy.getAdDeviceBrand());
-            if(null!=deviceBrand&&!deviceBrand.isEmpty()){
-                params.put("device_brand",deviceBrand);
+            String[] deviceBrand = strategy.getAdDeviceBrand().split(",");
+            if(deviceBrand.length>0){
+                JSONArray deviceBrandArray = new JSONArray();
+                for(int i=0;i<deviceBrand.length;i++){
+                    deviceBrandArray.add(deviceBrand[i]);
+                }
+                params.put("device_brand",deviceBrandArray);
             }
         }
         if(!Check.isNull(strategy.getAdLaunchPrice())){
-            JSONArray launchPrice = JSON.parseArray(strategy.getAdLaunchPrice());
-            if(null!=launchPrice&&!launchPrice.isEmpty()){
-                params.put("launch_price",launchPrice);
+            String[] launchPrice = strategy.getAdLaunchPrice().split(",");
+            if(launchPrice.length>0){
+                JSONArray launchPriceArray = new JSONArray();
+                for(int i=0;i<launchPrice.length;i++){
+                    launchPriceArray.add(launchPrice[i]);
+                }
+                params.put("launch_price",launchPriceArray);
             }
         }
         if(!Check.isNull(strategy.getAdAutoExtendEnabled())){
             params.put("auto_extend_enabled",strategy.getAdAutoExtendEnabled());
         }
         if(!Check.isNull(strategy.getAdAutoExtendTargets())){
-            JSONArray autoExtendTargets = JSON.parseArray(strategy.getAdAutoExtendTargets());
-            if(null!=autoExtendTargets&&!autoExtendTargets.isEmpty()){
-                params.put("auto_extend_targets",autoExtendTargets);
+            String[] autoExtendTargets = strategy.getAdAutoExtendTargets().split(",");
+            if(autoExtendTargets.length>0){
+                JSONArray autoExtendTargetsArray = new JSONArray();
+                for(int i=0;i<autoExtendTargets.length;i++){
+                    autoExtendTargetsArray.add(autoExtendTargets[i]);
+                }
+                params.put("auto_extend_targets",autoExtendTargetsArray);
             }
         }
         //预算与出价
@@ -685,18 +810,19 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         }
         if(adName.contains("{{日期}}")){
             String date = DateUtils.formatDate(new Date(),"yyyyMMdd");
-            adName.replace("{{日期}}",date);
+            adName = adName.replace("{{日期}}",date);
         }
         if(adName.contains("{{dp链接标识}}")){
-            adName.replace("{{dp链接标识}}",dplinkCode);
+            adName = adName.replace("{{dp链接标识}}",dplinkCode);
         }
         if(adName.contains("{{出价方式}}")){
             String pricing = strategy.getAdPricing().replace("PRICING_","");
-            adName.replace("{{出价方式}}",pricing);
+            adName = adName.replace("{{出价方式}}",pricing);
         }
         if(adName.contains("{{素材名称}}")){
-            MaterialInfo info = materialInfoService.getParams(videoInfo.getSignature(),1);
-            adName.replace("{{素材名称}}",info.getMaterialName());
+            MaterialInfo info = materialInfoService.getParams(videoInfo.getSignature(),null);
+            System.out.println(info.getMaterialName());
+            adName = adName.replace("{{素材名称}}",info.getMaterialName());
         }
         return adName;
     }
@@ -725,8 +851,8 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             campaignParam.put("delivery_related_num",strategy.getCampaignDeliveryRelatedNum());
         }
         //创建组
-        Result campaignData = Marketing.createCampaign(token, campaignParam);
-        if(campaignData.getCode()!=200){
+        Result campaignData = marketingService.createCampaign(token, campaignParam);
+        if(campaignData.getCode()!=0){
             //TODO 组创建异常 后续需要加日志
             return null;
         }
@@ -829,7 +955,7 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             return Result.error("token获取失败====>>>>accountId:"+token.getAccountId());
         }
         // api 获取行业列表
-        Result listResult = Marketing.getToolIndustryList(token,type);
+        Result listResult = marketingService.getToolIndustryList(token,type);
         List<Map<String,Object>> industryListMap = (List<Map<String,Object>>) listResult.getResult();
         // list map 数据格式 转 list entity 数据格式
         List<IndustryVo> industryList = Check.convertListMap2ListBean(industryListMap,IndustryVo.class);
@@ -896,7 +1022,7 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             return Result.error("token获取失败====>>>>accountId:"+token.getAccountId());
         }
         // 获取广告组
-        Result industryList = Marketing.getCampaignGroupList(token,accountId,adGroupSearchVoList,pageNo,pageSize);
+        Result industryList = marketingService.getCampaignGroupList(token,accountId,null,pageNo,pageSize);
         log.error("获取广告组=======>>>>>>>>>>>", industryList.getResult());
         return Result.successMsg("获取广告组成功。", industryList.getResult());
     }
@@ -922,7 +1048,7 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             return Result.error("token获取失败====>>>>accountId:"+accountId );
         }
         // 获取计划
-        Result industryList = Marketing.getPlanList(token,adGroupSearchVoList,pageNo,pageSize);
+        Result industryList = marketingService.getPlanList(token,adGroupSearchVoList,pageNo,pageSize);
         log.error("获取广告计划=======>>>>>>>>>>>{}", industryList.getResult());
         return Result.successMsg("获取广告计划成功。", industryList.getResult());
     }
@@ -943,7 +1069,7 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             return Result.error("token获取失败====>>>>accountId:"+token.getAccountId());
         }
         // 获取 创意详细信息
-        Result industryList = Marketing.creativeRead(token,accountId,adId);
+        Result industryList = marketingService.creativeRead(token,accountId,adId);
         log.error("获取创意详细信息=======>>>>>>>>>>>", industryList.getResult());
         return Result.successMsg("获取创意详细信息成功。", industryList.getResult());
     }
@@ -963,17 +1089,17 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             return Result.error("token获取失败====>>>>accountId:"+token.getAccountId());
         }
         // 1:修改广告组
-        Result resultCampaign = Marketing.updateCampaign(token,
+        Result resultCampaign = marketingService.updateCampaign(token,
                 "广告组id",groupModifyTime,
                 strategy.getCampaignName(),strategy.getCampaignBudgetMode(),strategy.getCampaignLandingType());
         //广告组id
         Long campaignId = (Long) resultCampaign.getResult();
         // 2:修改广告计划
-        Result resultPlan = Marketing.updateAdvertiserPlan(token,"计划id",planModifyTime,strategy);
+        Result resultPlan = marketingService.updateAdvertiserPlan(token,"计划id",planModifyTime,strategy);
         //计划id
         Object planId = resultPlan.getResult();
         //3:修改创意 TODO 拼接创意参数
-        Result creativeInfo = Marketing.creativeUpdate(token, "计划id","创意时间戳",null);
+        Result creativeInfo = marketingService.creativeUpdate(token, "计划id","创意时间戳",null);
         //数据修改
         aiBytedanceAdvertiserStrategyMapper.updateById(strategy);
         return Result.successMsg("修改成功", strategy);
@@ -994,7 +1120,7 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
             log.info("token获取失败=>accountId:{}", token.getAccountId());
             return Result.error("token获取失败====>>>>accountId:"+token.getAccountId());
         }
-        return Marketing.getToolConvertQuery(token,adConvertQueryVo);
+        return marketingService.getToolConvertQuery(token,adConvertQueryVo);
     }
 
 

+ 8 - 10
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/common/service/impl/FileInfoServiceImpl.java

@@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
-import org.jeecg.modules.bytedance.advertise.dockapi.Marketing;
+import org.jeecg.modules.bytedance.advertise.dockapi.MarketingService;
 import org.jeecg.modules.bytedance.advertise.entity.BytedanceImageInfo;
 import org.jeecg.modules.bytedance.advertise.service.IBytedanceImageInfoService;
 import org.jeecg.modules.bytedance.common.entity.CtopOauthToken;
@@ -31,12 +31,13 @@ import java.util.Map;
 @Service
 @Primary
 public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> implements IFileInfoService {
-
-
+    @Autowired
+    private MarketingService marketingService;
+    @Autowired
+    private IBytedanceImageInfoService bytedanceImageInfoService;
     @Autowired
     private ICtopOauthTokenService ctopOauthTokenService;
 
-
     /**
      * 平台 上传图片
      * @param accountId
@@ -48,7 +49,7 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
         Map<String, Object> resultMap = new HashMap<>();
         try {
             CtopOauthToken token = ctopOauthTokenService.getOauthTokenByAccountId(accountId);
-            JSONObject result = Marketing.imageUpload(token, imageUrl);
+            JSONObject result = marketingService.imageUpload(token, imageUrl);
             if(null == result){
                 ResultMapUtils.setResultMap(resultMap, StatusCode.BYTEDANCE_IMAGE_UPLOAD_ERROR);
                 return resultMap;
@@ -79,8 +80,8 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
     public String getSuggestImageId(CtopOauthToken token, String vid) {
         String result = null;
         for(int i=0;i<3;i++){
-            JSONObject resultObject = Marketing.getSuggestImageId(token, vid);
-            if(null!=resultObject||null!=resultObject.getInteger("code")||0!=resultObject.getInteger("code")){
+            JSONObject resultObject = marketingService.getSuggestImageId(token, vid);
+            if(null==resultObject||null==resultObject.getInteger("code")||0!=resultObject.getInteger("code")){
                 continue;
             }
             JSONObject data = resultObject.getJSONObject("data");
@@ -95,8 +96,5 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
 
     }
 
-    @Autowired
-    private IBytedanceImageInfoService bytedanceImageInfoService;
-
 
 }

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/bytedance/advertise/controller/AiBytedanceAdvertiserStrategyController.java

@@ -312,7 +312,7 @@ public class AiBytedanceAdvertiserStrategyController {
 	@GetMapping("testCreateCreativeLimit")
 	public Map<String, Object> testCreateCreativeLimit(Long accountId, Integer hour) {
 		Map<String, Object> result = new HashMap<>();
-		AiBytedanceAdvertiserStrategy strategy = aiBytedanceAdvertiserStrategyService.getByAccountId(accountId,1);
+		AiBytedanceAdvertiserStrategy strategy = aiBytedanceAdvertiserStrategyService.getByAccountId(accountId,0);
 		if (strategy == null) {
 			ResultMapUtils.setResultMap(result, StatusCode.COMMON_PARAM_ERROR);
 			return result;

+ 5 - 5
jeecg-boot-module-system/src/main/resources/application-prod.yml

@@ -131,9 +131,9 @@ spring:
         connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
       datasource:
         master:
-          url: jdbc:mysql://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
-          username: root
-          password: root
+          url: jdbc:mysql://172.30.0.4:4000/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+          username: hcst
+          password: hcst@2020
           driver-class-name: com.mysql.cj.jdbc.Driver
           # 多数据源配置
           #multi-datasource1:
@@ -144,7 +144,7 @@ spring:
   #redis 配置
   redis:
     database: 0
-    host: 127.0.0.1
+    host: 172.30.0.17
     lettuce:
       pool:
         max-active: 8   #最大连接数据库连接数,设 0 为没有限制
@@ -152,7 +152,7 @@ spring:
         max-wait: -1ms  #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
         min-idle: 0     #最小等待连接中的数量,设 0 为没有限制
       shutdown-timeout: 100ms
-    password: ''
+    password: foobared
     port: 6379
 #mybatis plus 设置
 mybatis-plus:

+ 1 - 1
jeecg-boot-module-system/src/main/resources/application-test.yml

@@ -167,7 +167,7 @@ mybatis-plus:
       table-underline: true
    configuration:
     # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     # 返回类型为Map,显示null对应的字段
     call-setters-on-nulls: true
 #minidao 设置