Kaynağa Gözat

账户配置复制以及修改状态开关

yangzian 4 yıl önce
ebeveyn
işleme
50811827be

+ 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);
 
 
 }

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

@@ -1079,13 +1079,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")){
@@ -1389,9 +1389,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);
 
@@ -1401,6 +1401,8 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         imageInfo.setUserId(aiBytedanceAdvertiserStrategy.getUserId());
         materialImageInfoService.initImageCode(imageInfo);
 
+
+
         aiBytedanceAdvertiserStrategyMapper.insert(aiBytedanceAdvertiserStrategy);
 
 
@@ -1610,5 +1612,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);
+    }
+
 
 }

+ 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("请求失败,请联系开发人员!");