ソースを参照

修改自动投放上新逻辑代码

syh 4 年 前
コミット
5e96500c44
19 ファイル変更201 行追加148 行削除
  1. 2 2
      jeecg-boot-module-system/src/main/resources/jeecg/jeecg_database.properties
  2. 11 1
      module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouAiAdsNewMaterialCreativityJob.java
  3. 75 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/entity/AiKuaishouAccountTargetTemplate.java
  4. 14 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/AiKuaishouAccountTargetTemplateMapper.java
  5. 5 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouAccountTargetTemplateMapper.xml
  6. 2 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouReportAnalyzeMapper.xml
  7. 2 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyListPageMapper.xml
  8. 2 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyMapCreativeMapper.xml
  9. 2 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyMiddleMapper.xml
  10. 2 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyTargetBaseMapper.xml
  11. 1 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyTargetDetailsMapper.xml
  12. 2 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyTargetUnionMapper.xml
  13. 2 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyTemplateMapper.xml
  14. 18 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/IAiKuaishouAccountTargetTemplateService.java
  15. 3 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/IAiKuaishouNewCreateCampaign.java
  16. 0 5
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/Test.java
  17. 27 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/AiKuaishouAccountTargetTemplateServiceImpl.java
  18. 31 35
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/AiKuaishouNewCreateCampaignServiceImpl.java
  19. 0 88
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/TestImpl.java

+ 2 - 2
jeecg-boot-module-system/src/main/resources/jeecg/jeecg_database.properties

@@ -1,8 +1,8 @@
 #mysql
 diver_name=com.mysql.jdbc.Driver
 url=jdbc:mysql://139.186.27.96:4000/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false
-username=hcst
-password=hcst@2020
+username=data
+password=hcst@2021
 database_name=jeecg-boot
 #oracle
 #diver_name=oracle.jdbc.driver.OracleDriver

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

@@ -1,15 +1,25 @@
 package cn.com.ctop.job.kuaishou.handler;
 
+import cn.com.ctop.kuaishou.modules.ai.entity.AiKuaishouAccountTargetTemplate;
+import cn.com.ctop.kuaishou.modules.ai.service.IAiKuaishouAccountTargetTemplateService;
 import cn.com.ctop.kuaishou.modules.ai.service.IAiKuaishouNewCreateCampaign;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.List;
+
 public class KuaishouAiAdsNewMaterialCreativityJob {
 
     @Autowired
     IAiKuaishouNewCreateCampaign aiKuaishouNewCreateCampaign;
+    @Autowired
+    private IAiKuaishouAccountTargetTemplateService aiKuaishouAccountTargetTemplateService;
     @XxlJob("kuaishouAiAdsNewMaterialCreativityJob")
     public void execute() {
-        aiKuaishouNewCreateCampaign.kuaishouAiAdsNewMaterialCreativity();
+        List<AiKuaishouAccountTargetTemplate> accountTargetTemplates = aiKuaishouAccountTargetTemplateService.getAllEffectTemplate();
+        if(null==accountTargetTemplates||accountTargetTemplates.isEmpty()){
+            return;
+        }
+        accountTargetTemplates.forEach(targetTemplate -> aiKuaishouNewCreateCampaign.kuaishouAiAdsNewMaterialCreativity(targetTemplate));
     }
 }

+ 75 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/entity/AiKuaishouAccountTargetTemplate.java

@@ -0,0 +1,75 @@
+package cn.com.ctop.kuaishou.modules.ai.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.util.Date;
+
+/**
+ * 账户自动投放定向模板
+ * @author jeecg-boot
+ * @date   2021-01-07
+ * @version V1.0
+ */
+@Data
+@TableName("ctop_ai_kuaishou_auto_creative_account_info")
+public class AiKuaishouAccountTargetTemplate {
+
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Long id;
+	/**账户ID*/
+	private Long accountId;
+	/**营销目标{1应用安装},{2电商下单},{3推广品牌},{4营销线上},{5应用活跃}*/
+	private String marketingGoal;
+	/**请勾选投放应用已上架的应用商店*/
+	private String appStore;
+	/**是否优先从应用商店下载 true false*/
+	private String useAppMarket;
+	/**应用id集*/
+	private String appIds;
+	/**地域*/
+	private String region;
+	/**年龄段:{[]:不限}{18:18-23岁}{24:24-30岁}{31:31-40岁}{41:41-49岁}{50:50岁+*/
+	private String agesRange;
+	/**性别 1:女性, 2:男性, 0:不限*/
+	private Integer gender;
+	/**操作系统 1: Android, 2: iOS, 0:不限*/
+	private Integer platformOs;
+	/**自定义人群 0不限,1:定向,:2:排除,:3同时定向排除*/
+	private String customCrowd;
+	/**定向人群包*/
+	private String population;
+	/**排除人群包*/
+	private String excludePopulation;
+	/**出价类型(优化目标) 2点击数(CPC),10转化数(OCPM)*/
+	private Integer bidType;
+	/**封面点击出价*/
+	private Integer bid;
+	/**转化目标,2:行为数,180:激活数,53:表单数,190: 付费,191:首日ROI 。。。*/
+	private Integer ocpxActionType;
+	/**转化目标出价*/
+	private Integer cpaBid;
+	/**广告位 1:优选广告位;*/
+	private String sceneId;
+	/**下载详情页ID,建站id*/
+	private String siteId;
+	/**第三方开始播放监测链接*/
+	private String impressionUrl;
+	/**第三方点击检测链接*/
+	private String clickTrackUrl;
+	/**第三方点击按钮监测链接*/
+	private String actionbarClickUrl;
+	/**状态*/
+	private Integer status;
+	/**单个视频搭配图片个数*/
+	private Integer imageNumber;
+	/**创建时间*/
+	private Date createTime;
+	/**updateTime*/
+	private Date updateTime;
+}

+ 14 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/AiKuaishouAccountTargetTemplateMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.kuaishou.modules.ai.mapper;
+
+import cn.com.ctop.kuaishou.modules.ai.entity.AiKuaishouAccountTargetTemplate;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 账户自动投放定向模板
+ * @author: jeecg-boot
+ * @date:   2021-01-07
+ * @cersion: V1.0
+ */
+public interface AiKuaishouAccountTargetTemplateMapper extends BaseMapper<AiKuaishouAccountTargetTemplate> {
+
+}

+ 5 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouAccountTargetTemplateMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.ctop.mapper.AiKuaishouAccountTargetTemplateMapper">
+
+</mapper>

+ 2 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouReportAnalyzeMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.jeecg.modules.ads.mapper.IAiKuaiShouReportAnalyzeMapper">
+<mapper namespace="cn.com.ctop.kuaishou.modules.ai.mapper.IAiKuaiShouReportAnalyzeMapper">
 
     <select id="queryStrategyByAccountId" resultType="com.alibaba.fastjson.JSONObject">
         SELECT id,
@@ -462,4 +462,4 @@
         t.province
     </select>
 
-</mapper>
+</mapper>

+ 2 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyListPageMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.jeecg.modules.ads.mapper.AiKuaiShouStrategyListPageMapper">
+<mapper namespace="cn.com.ctop.kuaishou.modules.ai.mapper.AiKuaiShouStrategyListPageMapper">
 
     <select id="queryStrategyBy" resultType="com.alibaba.fastjson.JSONObject">
         SELECT
@@ -189,4 +189,4 @@
         GROUP BY t1.unit_id
         order by t1.create_time desc
     </select>
-</mapper>
+</mapper>

+ 2 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyMapCreativeMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.jeecg.modules.ads.mapper.AiKuaishouStrategyMapCreativeMapper">
+<mapper namespace="cn.com.ctop.kuaishou.modules.ai.mapper.AiKuaishouStrategyMapCreativeMapper">
 
-</mapper>
+</mapper>

+ 2 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyMiddleMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.jeecg.modules.ads.mapper.AiKuaishouStrategyMiddleMapper">
+<mapper namespace="cn.com.ctop.kuaishou.modules.ai.mapper.AiKuaishouStrategyMiddleMapper">
 
-</mapper>
+</mapper>

+ 2 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyTargetBaseMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.jeecg.modules.ads.mapper.AiKuaishouStrategyTargetBaseMapper">
+<mapper namespace="cn.com.ctop.kuaishou.modules.ai.mapper.AiKuaishouStrategyTargetBaseMapper">
 
-</mapper>
+</mapper>

+ 1 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyTargetDetailsMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.jeecg.modules.ads.mapper.AiKuaishouStrategyTargetDetailsMapper">
+<mapper namespace="cn.com.ctop.kuaishou.modules.ai.mapper.AiKuaishouStrategyTargetDetailsMapper">
 
 </mapper>

+ 2 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyTargetUnionMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.jeecg.modules.ads.mapper.AiKuaishouStrategyTargetUnionMapper">
+<mapper namespace="cn.com.ctop.kuaishou.modules.ai.mapper.AiKuaishouStrategyTargetUnionMapper">
 
-</mapper>
+</mapper>

+ 2 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/AiKuaishouStrategyTemplateMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.jeecg.modules.ads.mapper.AiKuaishouStrategyTemplateMapper">
+<mapper namespace="cn.com.ctop.kuaishou.modules.ai.mapper.AiKuaishouStrategyTemplateMapper">
 
-</mapper>
+</mapper>

+ 18 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/IAiKuaishouAccountTargetTemplateService.java

@@ -0,0 +1,18 @@
+package cn.com.ctop.kuaishou.modules.ai.service;
+
+import cn.com.ctop.kuaishou.modules.ai.entity.AiKuaishouAccountTargetTemplate;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * @Description: 账户自动投放定向模板
+ * @Author: jeecg-boot
+ * @Date:   2021-01-07
+ * @Version: V1.0
+ */
+public interface IAiKuaishouAccountTargetTemplateService extends IService<AiKuaishouAccountTargetTemplate> {
+
+    List<AiKuaishouAccountTargetTemplate> getAllEffectTemplate();
+
+}

+ 3 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/IAiKuaishouNewCreateCampaign.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.kuaishou.modules.ai.service;
 
-public interface IAiKuaishouNewCreateCampaign {
+import cn.com.ctop.kuaishou.modules.ai.entity.AiKuaishouAccountTargetTemplate;
 
-    void kuaishouAiAdsNewMaterialCreativity();
+public interface IAiKuaishouNewCreateCampaign {
+    void kuaishouAiAdsNewMaterialCreativity(AiKuaishouAccountTargetTemplate targetTemplate);
 }

+ 0 - 5
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/Test.java

@@ -1,5 +0,0 @@
-package cn.com.ctop.kuaishou.modules.ai.service;
-
-public interface Test {
-    int f();
-}

+ 27 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/AiKuaishouAccountTargetTemplateServiceImpl.java

@@ -0,0 +1,27 @@
+package cn.com.ctop.kuaishou.modules.ai.service.impl;
+
+import cn.com.ctop.kuaishou.modules.ai.entity.AiKuaishouAccountTargetTemplate;
+import cn.com.ctop.kuaishou.modules.ai.mapper.AiKuaishouAccountTargetTemplateMapper;
+import cn.com.ctop.kuaishou.modules.ai.service.IAiKuaishouAccountTargetTemplateService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 账户自动投放定向模板
+ * @author jeecg-boot
+ * @date   2021-01-07
+ * @version V1.0
+ */
+@Service
+public class AiKuaishouAccountTargetTemplateServiceImpl extends ServiceImpl<AiKuaishouAccountTargetTemplateMapper, AiKuaishouAccountTargetTemplate> implements IAiKuaishouAccountTargetTemplateService {
+
+    @Override
+    public List<AiKuaishouAccountTargetTemplate> getAllEffectTemplate() {
+        QueryWrapper<AiKuaishouAccountTargetTemplate> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("status",1);
+        return this.list(queryWrapper);
+    }
+}

+ 31 - 35
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/AiKuaishouNewCreateCampaignServiceImpl.java

@@ -6,6 +6,7 @@ import cn.com.ctop.common.module.entity.MaterialImageInfo;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
 import cn.com.ctop.common.module.service.IMaterialCutFrameService;
 import cn.com.ctop.common.module.service.IMaterialImageInfoService;
+import cn.com.ctop.kuaishou.modules.ai.entity.AiKuaishouAccountTargetTemplate;
 import cn.com.ctop.kuaishou.modules.ai.entity.AiKuaishouStrategyMapCreative;
 import cn.com.ctop.kuaishou.modules.ai.service.IAiKuaishouNewCreateCampaign;
 import cn.com.ctop.kuaishou.modules.ai.service.IAiKuaishouStrategyMapCreativeService;
@@ -49,13 +50,8 @@ public class AiKuaishouNewCreateCampaignServiceImpl implements IAiKuaishouNewCre
     private IKuaiShouMaterialUploadService materialUploadService;
 
     @Override
-    public void kuaishouAiAdsNewMaterialCreativity() {
-        //1、获取基本信息
-        String filePath = "/ads/timing-task.json";
-        JSONArray configJsonArray = JsonResourceUtil.getJsonArrFromResource(filePath);
-        // 只跑一个账户的定时上新任务,怕多个账户在指定的时间内执行不完
-        JSONObject configJson = configJsonArray.getJSONObject(0);
-        Long accountId = configJson.getLong("accountId");
+    public void kuaishouAiAdsNewMaterialCreativity(AiKuaishouAccountTargetTemplate targetTemplate) {
+        Long accountId = targetTemplate.getAccountId();
         CtopOauthToken token = tokenService.getOauthTokenByAccountId(accountId.toString());
         if(null == token){
             log.info("token获取失败=>accountId:{}",accountId);
@@ -106,7 +102,7 @@ public class AiKuaishouNewCreateCampaignServiceImpl implements IAiKuaishouNewCre
             campaignParams.put("advertiser_id",token.getAccountId());
             String campaignName = "户14-上下滑&信息流" + "-素材上新-"+ "剪辑-低价-低价包邮-活动-年龄18岁以上-单出价-"+ timestamp;
             campaignParams.put("campaign_name",campaignName);
-            campaignParams.put("type",Integer.parseInt(configJson.getString("marketing_goal")));
+            campaignParams.put("type",Integer.parseInt(targetTemplate.getMarketingGoal()));
             campaignParams.put("day_budget",0L);
             Map<String, Object> campaignCreateResult = kuaishouInterfaceService.campaignCreate(token.getAccessToken(), token.getAccountId(), campaignParams);
             Integer code = (Integer) campaignCreateResult.get("code");
@@ -125,7 +121,7 @@ public class AiKuaishouNewCreateCampaignServiceImpl implements IAiKuaishouNewCre
         for(KuaiShouVideoGet videoItem: newVideos){
             unitCnt ++;
             unitName = unitName + "-" + unitCnt;
-            JSONObject unitParams = createUnitParams(token, newCampaignId, configJson, unitName);
+            JSONObject unitParams = createUnitParams(token, newCampaignId, targetTemplate, unitName);
             Map<String, Object> unitCreateResult = kuaishouInterfaceService.adUnitCreate(token.getAccessToken(), token.getAccountId(), unitParams,1);
             Integer unitCode = (Integer) unitCreateResult.get("code");
             String unitMessage = (String) unitCreateResult.get("message");
@@ -142,14 +138,14 @@ public class AiKuaishouNewCreateCampaignServiceImpl implements IAiKuaishouNewCre
                 log.info("未获取到视频封面=>videoSignature:{}",videoItem.getSignature());
                 continue;
             }
-            JSONObject creativeParams = creativeParams(token, unitId, videoItem, configJson);
-            createCreativeByImage(cutFrameList, orgFrameList,token, creativeParams, newCampaignId, unitId, videoItem,5);
+            JSONObject creativeParams = creativeParams(token, unitId, videoItem, targetTemplate);
+            createCreativeByImage(cutFrameList, orgFrameList,token, creativeParams, newCampaignId, unitId, videoItem,targetTemplate.getImageNumber());
         }
     }
 
 
 
-    private JSONObject creativeParams(CtopOauthToken token,Long unitId,KuaiShouVideoGet videoItem,JSONObject configJson){
+    private JSONObject creativeParams(CtopOauthToken token,Long unitId,KuaiShouVideoGet videoItem,AiKuaishouAccountTargetTemplate targetTemplate){
         JSONObject creativeParams = new JSONObject();
         creativeParams.put("advertiser_id",token.getAccountId());
         creativeParams.put("unit_id",unitId);
@@ -158,7 +154,7 @@ public class AiKuaishouNewCreateCampaignServiceImpl implements IAiKuaishouNewCre
         creativeParams.put("action_bar_text","下载抢购");
         creativeParams.put("description","不买亏大了!众多商品低至一元!看看你多花了多少冤枉钱!");
         // 安卓下载中间页ID
-        JSONArray siteIdArray = JSONArray.parseArray(configJson.getString("site_id"));
+        JSONArray siteIdArray = JSONArray.parseArray(targetTemplate.getSiteId());
         if(null == siteIdArray||!siteIdArray.isEmpty()){
             JSONObject siteObject = siteIdArray.getJSONObject(0);
             Long appId = siteObject.getLong("appId");
@@ -167,14 +163,14 @@ public class AiKuaishouNewCreateCampaignServiceImpl implements IAiKuaishouNewCre
                 creativeParams.put("site_id",siteId);
             }
         }
-        if(null != configJson.getString("click_track_url")&&!"".equals(configJson.getString("click_track_url"))){
-            creativeParams.put("click_track_url",configJson.getString("click_track_url"));
+        if(null != targetTemplate.getClickTrackUrl()&&!"".equals(targetTemplate.getClickTrackUrl())){
+            creativeParams.put("click_track_url",targetTemplate.getClickTrackUrl());
         }
-        if(null != configJson.getString("impression_url")&&!"".equals(configJson.getString("impression_url"))){
-            creativeParams.put("impression_url",configJson.getString("impression_url"));
+        if(null != targetTemplate.getImpressionUrl()&&!"".equals(targetTemplate.getImpressionUrl())){
+            creativeParams.put("impression_url",targetTemplate.getImpressionUrl());
         }
-        if(null != configJson.getString("actionbar_click_url")&&!"".equals(configJson.getString("actionbar_click_url"))){
-            creativeParams.put("actionbar_click_url",configJson.getString("actionbar_click_url"));
+        if(null != targetTemplate.getActionbarClickUrl()&&!"".equals(targetTemplate.getActionbarClickUrl())){
+            creativeParams.put("actionbar_click_url",targetTemplate.getActionbarClickUrl());
         }
         return creativeParams;
     }
@@ -202,32 +198,32 @@ public class AiKuaishouNewCreateCampaignServiceImpl implements IAiKuaishouNewCre
     }
 
 
-    private JSONObject createUnitParams(CtopOauthToken token, Long campaignId,  JSONObject configJson,
+    private JSONObject createUnitParams(CtopOauthToken token, Long campaignId,  AiKuaishouAccountTargetTemplate targetTemplate,
                                         String unitName) {
         // 拼装创建组的入参 json
         JSONObject unitParams = new JSONObject();
         unitParams.put("advertiser_id",token.getAccountId());
         unitParams.put("campaign_id",campaignId);
         unitParams.put("unit_name", unitName);
-        unitParams.put("bid_type",configJson.getIntValue("bid_type"));
-        unitParams.put("ocpx_action_type",configJson.getIntValue("ocpx_action_type"));
+        unitParams.put("bid_type",targetTemplate.getBidType());
+        unitParams.put("ocpx_action_type",targetTemplate.getOcpxActionType());
 
-        if(null!=configJson.getString("use_app_market")&&!"".equals(configJson.getString("use_app_market"))){
-            unitParams.put("use_app_market",Integer.parseInt(configJson.getString("use_app_market")));
+        if(null!=targetTemplate.getUseAppMarket()&&!"".equals(targetTemplate.getUseAppMarket())){
+            unitParams.put("use_app_market",Integer.parseInt(targetTemplate.getUseAppMarket()));
         }
-        if(null!=configJson.getString("app_store")&&!"".equals(configJson.getString("app_store"))){
-            unitParams.put("app_store",JSONArray.parseArray(configJson.getString("app_store")));
+        if(null!=targetTemplate.getAppStore()&&!"".equals(targetTemplate.getAppStore())){
+            unitParams.put("app_store",JSONArray.parseArray(targetTemplate.getAppStore()));
         }
 
         // 在本策略中,都是 OCPM 的出价方式
-        unitParams.put("cpa_bid",configJson.getIntValue("cpa_bid"));
-        unitParams.put("scene_id",JSONArray.parseArray(configJson.getString("scene_id")));
+        unitParams.put("cpa_bid",targetTemplate.getCpaBid());
+        unitParams.put("scene_id",JSONArray.parseArray(targetTemplate.getSceneId()));
         unitParams.put("unit_type",4);
 
         // 格式为yyyy-MM-dd,需大于等于当前时间
         unitParams.put("begin_time",DateUtils.formatDate(new Date()));
 
-        JSONArray appIds = JSONArray.parseArray(configJson.getString("app_ids"));
+        JSONArray appIds = JSONArray.parseArray(targetTemplate.getAppIds());
         if(null!=appIds&&!appIds.isEmpty()){
             unitParams.put("app_id",appIds.getLong(0));
         }
@@ -236,15 +232,15 @@ public class AiKuaishouNewCreateCampaignServiceImpl implements IAiKuaishouNewCre
 
         // 设置定向内容
         JSONObject targetJsonObject = new JSONObject();
-        targetJsonObject.put("region",JSONArray.parseArray(configJson.getString("region")));
-        targetJsonObject.put("ages_range",JSONArray.parseArray(configJson.getString("ages_range")));
-        targetJsonObject.put("gender",configJson.getIntValue("gender"));
-        targetJsonObject.put("platform_os",configJson.getIntValue("platform_os"));
-        JSONArray population = JSONArray.parseArray(configJson.getString("population"));
+        targetJsonObject.put("region",JSONArray.parseArray(targetTemplate.getRegion()));
+        targetJsonObject.put("ages_range",JSONArray.parseArray(targetTemplate.getAgesRange()));
+        targetJsonObject.put("gender",targetTemplate.getGender());
+        targetJsonObject.put("platform_os",targetTemplate.getPlatformOs());
+        JSONArray population = JSONArray.parseArray(targetTemplate.getPopulation());
         if(null!=population&&!population.isEmpty()){
             targetJsonObject.put("population",population);
         }
-        JSONArray excludePopulation = JSONArray.parseArray(configJson.getString("exclude_population"));
+        JSONArray excludePopulation = JSONArray.parseArray(targetTemplate.getExcludePopulation());
         if(null!=excludePopulation&&!excludePopulation.isEmpty()){
             targetJsonObject.put("exclude_population",excludePopulation);
         }

+ 0 - 88
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/TestImpl.java

@@ -1,88 +0,0 @@
-package cn.com.ctop.kuaishou.modules.ai.service.impl;
-
-import cn.com.ctop.kuaishou.modules.ai.mapper.AiKuaishouStrategyTemplateMapper;
-import cn.com.ctop.kuaishou.modules.ai.service.Test;
-import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouReportDailyMaterialMapper;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-public class TestImpl implements Test {
-
-    private KuaiShouReportDailyMaterialMapper dailyMaterialMapper;
-    private AiKuaishouStrategyTemplateMapper strategyTemplateMapper;
-    @Override
-    public int f() {
-        return 123;
-    }
-
-    private static int printInt(int a){
-        System.out.println(a);
-        return a;
-    }
-
-    public static String getStrategy(){
-        /**
-         *
-         * [{
-         *     "matGetType":"highQualityMaterial",
-         *     "matNum":5
-         * },
-         *    {
-         *     "matGetType":"highQualityMaterial",
-         *     "matNum":5
-         *     "intervalDays": 7,
-         * }]
-         */
-
-       /* String materialCombinationMode = "{'highQualityMaterial':{'intervalDays':7, 'highQualityMaterialNum':5}, 'newMaterialNum':5}";
-        JSONObject jsonObject = JSONObject.parseObject(materialCombinationMode);
-
-        int intervalDays = (int) jsonObject.getJSONObject("highQualityMaterial").get("intervalDays");
-        int highQualityMaterialNum = (int) jsonObject.getJSONObject("highQualityMaterial").get("highQualityMaterialNum");
-        int newQualityMaterialNum = (int) jsonObject.get("newMaterialNum");*/
-
-        return "213";
-
-
-    }
-
-    public List<String> getMaterialId(){
-        // 获取素材组合方式
-        // 下面这三个字段从前端传给的JSON数据进行解析得到
-//        Long accountId = 7087890L;
-//        Integer strategyType = 1;
-//        List<AiKuaishouStrategyTemplate> StrategyTemplate =
-//                strategyTemplateMapper.getStrategyTemplate(accountId,strategyType);
-//
-//        String materialCombinationMode = StrategyTemplate.get(0).getMaterialCombinationMode();
-//        JSONObject JsonObject = JSONObject.parseObject(materialCombinationMode);
-//        Integer intervalDays = (Integer) JsonObject.getJSONObject("highQualityMaterial").get("intervalDays");
-//        Integer highQualityMaterialNum = (Integer) JsonObject.getJSONObject("highQualityMaterial").get("highQualityMaterialNum");
-//        Integer newQualityMaterialNum = (Integer) JsonObject.get("newMaterialNum");
-//
-//        // 获取优质素材的签名
-//        List<String> materialIds = new ArrayList<>();
-//        List<KuaiShouReportDailyMaterial> highQualityMaterialIds =
-//                        dailyMaterialMapper.getHighQualityMaterialId(accountId,intervalDays,highQualityMaterialNum);
-//        for (KuaiShouReportDailyMaterial item: highQualityMaterialIds){
-//            materialIds.add(item.getSignature());
-//        }
-
-        // 获取最新上线素材的签名
-
-
-
-//        return materialIds;
-
-        return null;
-    }
-
-    public static void main(String[] args) {
-        int getNum = 123;
-        int num = printInt(getNum);
-        System.out.println(num++);
-    }
-
-}