|
@@ -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.mapper.AiBytedanceAdvertiserStrategyMapper;
|
|
|
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.vo.AdConvertQueryVo;
|
|
|
import org.jeecg.modules.bytedance.advertise.vo.AdGroupSearchVo;
|
|
@@ -1001,6 +1002,16 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
|
|
|
public Result updStaOrCpaOrBudgetById(UpdAdStaOrCpaOrBudget updAdStaOrCpaOrBudget) {
|
|
|
//1-修改出价
|
|
|
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);
|
|
|
}
|
|
|
//2-修改预算
|
|
@@ -1213,7 +1224,8 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
|
|
|
return marketingService.getToolConvertQuery(token,adConvertQueryVo);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ @Resource
|
|
|
+ private RuleDataAccountMapper ruleDataAccountMapper;
|
|
|
/**
|
|
|
*
|
|
|
* @description: 添加配置 信息
|
|
@@ -1224,6 +1236,22 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
|
|
|
*/
|
|
|
@Override
|
|
|
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
|
|
|
//商品卖点
|
|
|
aiBytedanceAdvertiserStrategy.setCreativeProductSellingPoints(org.apache.commons.lang3.StringUtils.join(aiBytedanceAdvertiserStrategy.getProductSellingPoints(), ","));
|