Browse Source

Merge branch 'test' of http://git.tjyourong.com.cn/ctop/adsp-bytedance into test

huangxuechao 4 years ago
parent
commit
8e2bc8ce26

+ 1 - 1
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/mapper/AiBytedanceAdvertiserStrategyMapper.java

@@ -14,7 +14,7 @@ import org.jeecg.modules.bytedance.advertise.entity.UpdAdStaOrCpaOrBudget;
 public interface AiBytedanceAdvertiserStrategyMapper extends BaseMapper<AiBytedanceAdvertiserStrategy> {
 
 
-    Integer updStaByAccountId(@Param("accountId") String accountId,@Param("state") String state,@Param("id") String id);
+    Integer updStaByAccountId(@Param("accountId") String accountId,@Param("creativeImageMode")String creativeImageMode,@Param("state") String state,@Param("id") String id);
 
     Integer updStaById(@Param("id") String id,@Param("state") String state);
 

+ 3 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/mapper/xml/AiBytedanceAdvertiserStrategyMapper.xml

@@ -10,6 +10,9 @@
         <if test="accountId !=null and accountId != ''">
             AND account_id = #{accountId}
         </if>
+        <if test="creativeImageMode !=null and creativeImageMode != ''">
+            AND creative_image_mode = #{creativeImageMode}
+        </if>
         <if test="id !=null and id != ''">
             AND id != #{id}
         </if>

+ 5 - 1
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/service/IAiBytedanceAdvertiserStrategyService.java

@@ -35,7 +35,7 @@ public interface IAiBytedanceAdvertiserStrategyService extends IService<AiByteda
      * @param
      * @return
      */
-    Result updStaById(String id,String state,String accountId);
+    Result updStaById(String id,String state,String accountId,String creativeImageMode);
 
     /**
      * 头条 - 配置信息 修改 出价; 预算;
@@ -114,6 +114,10 @@ public interface IAiBytedanceAdvertiserStrategyService extends IService<AiByteda
     Result getChengZiSite(String accountId);
 
 
+    /**
+     * 查询 组名称 计划名称
+     */
+    Result getStrategyInfoByName(AiBytedanceAdvertiserStrategy aiBytedanceAdvertiserStrategy);
 
 
 }

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

@@ -544,7 +544,9 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         //竞价策略 默认优先跑量
         params.put("flow_control_mode","FLOW_CONTROL_MODE_FAST");
         //投放范围
-        params.put("delivery_range",strategy.getAdDeliveryRange());
+        if(null!=strategy.getAdDeliveryRange()&&!"".equals(strategy.getAdDeliveryRange().trim())){
+            params.put("delivery_range",strategy.getAdDeliveryRange());
+        }
         if(!Check.isNull(strategy.getAdUnionVideoType())){
             params.put("union_video_type",strategy.getAdUnionVideoType());
         }
@@ -1080,13 +1082,13 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
      */
     @Override
     @Transactional
-    public Result updStaById(String id,String state,String accountId) {
+    public Result updStaById(String id,String state,String accountId,String creativeImageMode) {
         //开启
         if (org.apache.commons.lang3.StringUtils.equals(state,"0")){
             //修改状态为开启
             aiBytedanceAdvertiserStrategyMapper.updStaById(id,state);
             //关闭 账户下 其他数据信息(不包含本条id信息) 状态为 关闭
-            aiBytedanceAdvertiserStrategyMapper.updStaByAccountId(accountId,"1",id);
+            aiBytedanceAdvertiserStrategyMapper.updStaByAccountId(accountId,creativeImageMode,"1",id);
         }
         //关闭
         if (org.apache.commons.lang3.StringUtils.equals(state,"1")){
@@ -1390,9 +1392,9 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         //默认组数量为 1 -前端已修改完成
         //aiBytedanceAdvertiserStrategy.setCampaignAdCnt(aiBytedanceAdvertiserStrategy.getCampaignAdCnt() == 0L ? 1 : aiBytedanceAdvertiserStrategy.getCampaignAdCnt());
 
-        //同一账户下 只能有一条信息为开启
+        //同一账户下 同素材类型 只能有一条信息为开启
         //关闭 账户下 其他数据信息(不包含本条id信息) 状态为 关闭
-        aiBytedanceAdvertiserStrategyMapper.updStaByAccountId(String.valueOf(aiBytedanceAdvertiserStrategy.getAccountId()),"1",null);
+        aiBytedanceAdvertiserStrategyMapper.updStaByAccountId(String.valueOf(aiBytedanceAdvertiserStrategy.getAccountId()),aiBytedanceAdvertiserStrategy.getCreativeImageMode(),"1",null);
         //状态(0开 1关)
         aiBytedanceAdvertiserStrategy.setStatus(0);
 
@@ -1402,6 +1404,8 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         imageInfo.setUserId(aiBytedanceAdvertiserStrategy.getUserId());
         materialImageInfoService.initImageCode(imageInfo);
 
+
+
         aiBytedanceAdvertiserStrategyMapper.insert(aiBytedanceAdvertiserStrategy);
 
 
@@ -1611,5 +1615,50 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         return Result.successMsg("获取橙子建站站点列表成功。",dataList);
     }
 
+    /**
+     *查询 组名称 计划名称
+     */
+    @Override
+    public Result getStrategyInfoByName(AiBytedanceAdvertiserStrategy aiBytedanceAdvertiserStrategy) {
+        //查询 组名称
+        QueryWrapper<AiBytedanceAdvertiserStrategy> queryWrapperCampaign = new QueryWrapper<>();
+        //查询计划名称
+        QueryWrapper<AiBytedanceAdvertiserStrategy> queryWrapperAdName = new QueryWrapper<>();
+        List<AiBytedanceAdvertiserStrategy> strategyInfoCampain = new ArrayList<>();
+        List<AiBytedanceAdvertiserStrategy> strategyInfoAdName = new ArrayList<>();
+        //新增
+        if (Check.isNull(aiBytedanceAdvertiserStrategy.getId())){
+            queryWrapperCampaign.eq("campaign_name",aiBytedanceAdvertiserStrategy.getCampaignName());
+            strategyInfoCampain = aiBytedanceAdvertiserStrategyMapper.selectList(queryWrapperCampaign);
+            if (!Check.isNull(strategyInfoCampain)){
+                return Result.error("新创建的账户配置已存在相同的组名称【"+aiBytedanceAdvertiserStrategy.getCampaignName()+"】请修改后重新保存。");
+            }
+            queryWrapperAdName.eq("ad_name",aiBytedanceAdvertiserStrategy.getAdName());
+            strategyInfoAdName = aiBytedanceAdvertiserStrategyMapper.selectList(queryWrapperAdName);
+            if (!Check.isNull(strategyInfoAdName)){
+                return Result.error("新创建的账户配置已存在相同的计划名称【"+aiBytedanceAdvertiserStrategy.getAdName()+"】请修改后重新保存。");
+            }
+        // 编辑
+        }else {
+            queryWrapperCampaign.eq("campaign_name",aiBytedanceAdvertiserStrategy.getCampaignName());
+            strategyInfoCampain = aiBytedanceAdvertiserStrategyMapper.selectList(queryWrapperCampaign);
+            strategyInfoCampain.stream().map(AiBytedanceAdvertiserStrategy::getId).collect(Collectors.toList());
+            if (!Check.isNull(strategyInfoCampain) &&
+                    !strategyInfoCampain.stream().map(AiBytedanceAdvertiserStrategy::getId).collect(Collectors.toList()).contains(aiBytedanceAdvertiserStrategy.getId())){
+                return Result.error("新创建的账户配置已存在相同的组名称【"+aiBytedanceAdvertiserStrategy.getCampaignName()+"】请修改后重新保存。");
+            }
+            queryWrapperAdName.eq("ad_name",aiBytedanceAdvertiserStrategy.getAdName());
+            strategyInfoAdName = aiBytedanceAdvertiserStrategyMapper.selectList(queryWrapperAdName);
+            if (!Check.isNull(strategyInfoAdName) &&
+                    !strategyInfoAdName.stream().map(AiBytedanceAdvertiserStrategy::getId).collect(Collectors.toList()).contains(aiBytedanceAdvertiserStrategy.getId())){
+                return Result.error("新创建的账户配置已存在相同的计划名称【"+aiBytedanceAdvertiserStrategy.getAdName()+"】请修改后重新保存。");
+            }
+        }
+
+
+
+        return Result.successMsg("成功。",null);
+    }
+
 
 }

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

@@ -81,6 +81,7 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
         String result = null;
         for(int i=0;i<3;i++){
             JSONObject resultObject = marketingService.getSuggestImageId(token, vid);
+            log.info("获取推荐封面返回结果:{}",resultObject);
             if(null==resultObject||null==resultObject.getInteger("code")||0!=resultObject.getInteger("code")){
                 continue;
             }

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

@@ -125,6 +125,13 @@ public class AiBytedanceAdvertiserStrategyController {
 	@PostMapping(value = "/addBytedanceStrategy")
 	public Result addBytedanceStrategy(@RequestBody AiBytedanceAdvertiserStrategy aiBytedanceAdvertiserStrategy) {
 		try {
+			//复制功能 防止前端传id到后台
+			aiBytedanceAdvertiserStrategy.setId(null);
+			// 组名称 计划名称 是否重复
+			Result<AiBytedanceAdvertiserStrategy> resultName = aiBytedanceAdvertiserStrategyService.getStrategyInfoByName(aiBytedanceAdvertiserStrategy);
+			if (!resultName.isSuccess()) {
+				return Result.error(resultName.getMessage());
+			}
 			return aiBytedanceAdvertiserStrategyService.addBytedanceStrategy(aiBytedanceAdvertiserStrategy);
 		} catch (Exception e) {
 			log.error(e.getMessage(),e);
@@ -140,6 +147,11 @@ public class AiBytedanceAdvertiserStrategyController {
 	@ApiOperation(value="头条智能投放账户配置信息表-编辑", notes="头条智能投放账户配置信息表-编辑")
 	@PutMapping(value = "/edit")
 	public Result<AiBytedanceAdvertiserStrategy> edit(@RequestBody AiBytedanceAdvertiserStrategy aiBytedanceAdvertiserStrategy) {
+		// 组名称 计划名称 是否重复
+		Result<AiBytedanceAdvertiserStrategy> resultName = aiBytedanceAdvertiserStrategyService.getStrategyInfoByName(aiBytedanceAdvertiserStrategy);
+		if (!resultName.isSuccess()) {
+			return Result.errorMsg(resultName.getMessage());
+		}
 		CtopOauthToken token = tokenService.getOauthTokenByAccountId(String.valueOf(aiBytedanceAdvertiserStrategy.getAccountId()));
 		//修改后预算金额不能低于当前已消费金额的105%
 		QueryWrapper<RuleDataAccount> ruleDataAccountQueryWrapper = new QueryWrapper<>();
@@ -266,9 +278,10 @@ public class AiBytedanceAdvertiserStrategyController {
 	@PutMapping(value = "/updStaById")
 	public Result updStaById(@RequestParam("id")String id,
 							 @ApiParam("状态(0开-1关)") @RequestParam("state") String state,
-							 @ApiParam("账户id") @RequestParam("accountId") String accountId) {
+							 @ApiParam("账户id") @RequestParam("accountId") String accountId,
+							 @ApiParam("素材类型") @RequestParam("creativeImageMode") String creativeImageMode) {
 		try {
-			return aiBytedanceAdvertiserStrategyService.updStaById(id,state,accountId);
+			return aiBytedanceAdvertiserStrategyService.updStaById(id,state,accountId,creativeImageMode);
 		}catch (Exception e){
 			log.error("修改状态(0开-1关)失败",e);
 			return Result.error("请求失败,请联系开发人员!");

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

@@ -152,7 +152,7 @@ spring:
          max-wait: -1ms  #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
          min-idle: 0     #最小等待连接中的数量,设 0 为没有限制
        shutdown-timeout: 100ms
-     password: ''
+     password: hcst@2020
      port: 6379
 #mybatis plus 设置
 mybatis-plus: