Browse Source

Merge remote-tracking branch 'origin/test' into test

songyh 4 years ago
parent
commit
a5fabdeeb0

+ 4 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/entity/AiBytedanceAdvertiserStrategy.java

@@ -95,6 +95,10 @@ public class AiBytedanceAdvertiserStrategy{
 	private Integer adGamePackageBatchId;
 	private Integer adGamePackageBatchId;
 	/**应用图片集(投放目标)*/
 	/**应用图片集(投放目标)*/
 	private String adGamePackageThumbnailId;
 	private String adGamePackageThumbnailId;
+
+	/**定向类型 add-新建定向;choice-选择定向*/
+	private String adDirectionalFlag;
+
 	/**定向包Id(用户定向)*/
 	/**定向包Id(用户定向)*/
 	private String adAudiencePackageId;
 	private String adAudiencePackageId;
 	/**地域(用户定向)*/
 	/**地域(用户定向)*/

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

@@ -14,6 +14,7 @@ import org.jeecg.modules.bytedance.advertise.entity.*;
 import org.jeecg.modules.bytedance.advertise.enums.BytedanceCreativeMatTypeEnum;
 import org.jeecg.modules.bytedance.advertise.enums.BytedanceCreativeMatTypeEnum;
 import org.jeecg.modules.bytedance.advertise.mapper.AiBytedanceAdvertiserStrategyMapper;
 import org.jeecg.modules.bytedance.advertise.mapper.AiBytedanceAdvertiserStrategyMapper;
 import org.jeecg.modules.bytedance.advertise.mapper.BytedanceAreaInfoMapper;
 import org.jeecg.modules.bytedance.advertise.mapper.BytedanceAreaInfoMapper;
+import org.jeecg.modules.bytedance.advertise.mapper.RuleDataAccountMapper;
 import org.jeecg.modules.bytedance.advertise.service.*;
 import org.jeecg.modules.bytedance.advertise.service.*;
 import org.jeecg.modules.bytedance.advertise.vo.AdConvertQueryVo;
 import org.jeecg.modules.bytedance.advertise.vo.AdConvertQueryVo;
 import org.jeecg.modules.bytedance.advertise.vo.AdGroupSearchVo;
 import org.jeecg.modules.bytedance.advertise.vo.AdGroupSearchVo;
@@ -1001,6 +1002,16 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
     public Result updStaOrCpaOrBudgetById(UpdAdStaOrCpaOrBudget updAdStaOrCpaOrBudget) {
     public Result updStaOrCpaOrBudgetById(UpdAdStaOrCpaOrBudget updAdStaOrCpaOrBudget) {
         //1-修改出价
         //1-修改出价
         if (BytedanceConstant.UPDTYPE_BID.equals(updAdStaOrCpaOrBudget.getType())) {
         if (BytedanceConstant.UPDTYPE_BID.equals(updAdStaOrCpaOrBudget.getType())) {
+            //出价不能大于计划预算
+            QueryWrapper<AiBytedanceAdvertiserStrategy> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("id",updAdStaOrCpaOrBudget.getId());
+            queryWrapper.last("limit 1");
+            AiBytedanceAdvertiserStrategy strategyVo = aiBytedanceAdvertiserStrategyMapper.selectOne(queryWrapper);
+           int a = updAdStaOrCpaOrBudget.getAdCpaBid().compareTo(new BigDecimal(strategyVo.getAdBudget()));
+           // 出价 > 计划预算
+            if (a == 1){
+                return Result.errorMsg("出价不能大于计划预算。");
+            }
             aiBytedanceAdvertiserStrategyMapper.updCpaById(updAdStaOrCpaOrBudget);
             aiBytedanceAdvertiserStrategyMapper.updCpaById(updAdStaOrCpaOrBudget);
         }
         }
         //2-修改预算
         //2-修改预算
@@ -1213,7 +1224,8 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         return marketingService.getToolConvertQuery(token,adConvertQueryVo);
         return marketingService.getToolConvertQuery(token,adConvertQueryVo);
     }
     }
 
 
-
+    @Resource
+    private RuleDataAccountMapper ruleDataAccountMapper;
     /**
     /**
      *
      *
      * @description: 添加配置 信息
      * @description: 添加配置 信息
@@ -1224,6 +1236,22 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
      */
      */
     @Override
     @Override
     public Result addBytedanceStrategy(AiBytedanceAdvertiserStrategy aiBytedanceAdvertiserStrategy) {
     public Result addBytedanceStrategy(AiBytedanceAdvertiserStrategy aiBytedanceAdvertiserStrategy) {
+        //预算金额不能低于当前已消费金额的105%
+        QueryWrapper<RuleDataAccount> ruleDataAccountQueryWrapper = new QueryWrapper<>();
+        ruleDataAccountQueryWrapper.eq("account_id",aiBytedanceAdvertiserStrategy.getAccountId());
+        //获取消耗 余额
+        RuleDataAccount ruleDataAccountVo = ruleDataAccountMapper.selectOne(ruleDataAccountQueryWrapper);
+        // 值 为0 不限预算
+        // !0 指定预算
+        if (!aiBytedanceAdvertiserStrategy.getAccountBudget().equals(new BigDecimal("0"))){
+            //  前者 < 后者
+            int a = aiBytedanceAdvertiserStrategy.getAccountBudget().compareTo(ruleDataAccountVo.getCost().multiply(new BigDecimal(1.05)));
+            if (a == -1){
+                return Result.errorMsg("预算金额不能低于当前已消费金额的105%");
+            }
+        }
+
+
         // 数据入库 string[] 转 string
         // 数据入库 string[] 转 string
         //商品卖点
         //商品卖点
         aiBytedanceAdvertiserStrategy.setCreativeProductSellingPoints(org.apache.commons.lang3.StringUtils.join(aiBytedanceAdvertiserStrategy.getProductSellingPoints(), ","));
         aiBytedanceAdvertiserStrategy.setCreativeProductSellingPoints(org.apache.commons.lang3.StringUtils.join(aiBytedanceAdvertiserStrategy.getProductSellingPoints(), ","));

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

@@ -132,6 +132,22 @@ public class AiBytedanceAdvertiserStrategyController {
 	@ApiOperation(value="头条智能投放账户配置信息表-编辑", notes="头条智能投放账户配置信息表-编辑")
 	@ApiOperation(value="头条智能投放账户配置信息表-编辑", notes="头条智能投放账户配置信息表-编辑")
 	@PutMapping(value = "/edit")
 	@PutMapping(value = "/edit")
 	public Result<AiBytedanceAdvertiserStrategy> edit(@RequestBody AiBytedanceAdvertiserStrategy aiBytedanceAdvertiserStrategy) {
 	public Result<AiBytedanceAdvertiserStrategy> edit(@RequestBody AiBytedanceAdvertiserStrategy aiBytedanceAdvertiserStrategy) {
+		//修改后预算金额不能低于当前已消费金额的105%
+		QueryWrapper<RuleDataAccount> ruleDataAccountQueryWrapper = new QueryWrapper<>();
+		ruleDataAccountQueryWrapper.eq("account_id",aiBytedanceAdvertiserStrategy.getAccountId());
+		//获取消耗 余额
+		RuleDataAccount ruleDataAccountVo = ruleDataAccountService.getOne(ruleDataAccountQueryWrapper);
+		// 值 为0 不限预算
+		// !0 指定预算
+		if (!aiBytedanceAdvertiserStrategy.getAccountBudget().equals(new BigDecimal("0"))){
+			//  前者 < 后者
+			int a = aiBytedanceAdvertiserStrategy.getAccountBudget().compareTo(ruleDataAccountVo.getCost().multiply(new BigDecimal(1.05)));
+			if (a == -1){
+				return Result.errorMsg("预算金额不能低于当前已消费金额的105%");
+			}
+		}
+
+		//不修改用户id
 		aiBytedanceAdvertiserStrategy.setUserId(null);
 		aiBytedanceAdvertiserStrategy.setUserId(null);
 		//商品卖点
 		//商品卖点
 		aiBytedanceAdvertiserStrategy.setCreativeProductSellingPoints(org.apache.commons.lang3.StringUtils.join(aiBytedanceAdvertiserStrategy.getProductSellingPoints(), ","));
 		aiBytedanceAdvertiserStrategy.setCreativeProductSellingPoints(org.apache.commons.lang3.StringUtils.join(aiBytedanceAdvertiserStrategy.getProductSellingPoints(), ","));