## Opt - 重复下单,保持上次金额不随机减

This commit is contained in:
sangelxiu1 2025-07-23 13:59:02 +08:00
parent 33f865ce98
commit 40e81e5b4e
1 changed files with 46 additions and 43 deletions

View File

@ -1,5 +1,6 @@
package com.hzs.third.pay.controller.api; package com.hzs.third.pay.controller.api;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hzs.activity.base.IActivityServiceApi; import com.hzs.activity.base.IActivityServiceApi;
import com.hzs.common.core.annotation.RepeatSubmitSimple; import com.hzs.common.core.annotation.RepeatSubmitSimple;
@ -126,51 +127,53 @@ public class PayController {
} }
onlinePayment.setExtParam(payParam.getExtParam()); onlinePayment.setExtParam(payParam.getExtParam());
// 业务金额 if(ObjectUtil.isEmpty(onlinePayment.getPkId())){
BigDecimal businessMoney = null; // 业务金额
// 实际支付金额随机立减之后 BigDecimal businessMoney = null;
BigDecimal amount = null; // 实际支付金额随机立减之后
BigDecimal amount = null;
// 部分业务金额随机立减 // 部分业务金额随机立减
switch (payBusinessType) { switch (payBusinessType) {
case DIRECT_SELLING: case DIRECT_SELLING:
// 直销订单 // 直销订单
R<BigDecimal> orderResult = iSaOrderServiceApi.querySaOrderByOrderCode(userId, payParam.getBusinessCode()); R<BigDecimal> orderResult = iSaOrderServiceApi.querySaOrderByOrderCode(userId, payParam.getBusinessCode());
if (orderResult.isSuccess()) { if (orderResult.isSuccess()) {
businessMoney = orderResult.getData(); businessMoney = orderResult.getData();
businessMoney = businessMoney.setScale(2, BigDecimal.ROUND_HALF_UP); businessMoney = businessMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
// 订单支付金额最后2角处理 // 订单支付金额最后2角处理
amount = PayUtil.handleAmountRandom(businessMoney); amount = PayUtil.handleAmountRandom(businessMoney);
} else { } else {
return AjaxResult.error(orderResult.getMsg()); return AjaxResult.error(orderResult.getMsg());
} }
break; break;
case RECHARGE: case RECHARGE:
// 充值 // 充值
R<CuMemberRecharge> rechargeResult = iMemberTradeServiceApi.selectMemberRechargeByCodeAndPkMember(payParam.getBusinessCode(), userId); R<CuMemberRecharge> rechargeResult = iMemberTradeServiceApi.selectMemberRechargeByCodeAndPkMember(payParam.getBusinessCode(), userId);
if (rechargeResult.isSuccess()) { if (rechargeResult.isSuccess()) {
businessMoney = rechargeResult.getData().getRechargeAmount(); businessMoney = rechargeResult.getData().getRechargeAmount();
amount = PayUtil.handleAmountRandom(businessMoney); amount = PayUtil.handleAmountRandom(businessMoney);
} else { } else {
return AjaxResult.error(rechargeResult.getMsg()); return AjaxResult.error(rechargeResult.getMsg());
} }
break; break;
case LUCK: case LUCK:
// 抽奖 // 抽奖
R<BigDecimal> luckResult = iActivityServiceApi.queryDrawRewardPayNumMoney(userId, payParam.getBusinessCode()); R<BigDecimal> luckResult = iActivityServiceApi.queryDrawRewardPayNumMoney(userId, payParam.getBusinessCode());
if (luckResult.isSuccess()) { if (luckResult.isSuccess()) {
businessMoney = luckResult.getData(); businessMoney = luckResult.getData();
amount = businessMoney; amount = businessMoney;
} else { } else {
return AjaxResult.error(luckResult.getMsg()); return AjaxResult.error(luckResult.getMsg());
} }
break; break;
default: default:
}
// 更新业务金额
onlinePayment.setBusinessMoney(businessMoney);
// 暂存于实际支付金额部分业务进行随机立减
onlinePayment.setPayMoney(amount);
} }
// 更新业务金额
onlinePayment.setBusinessMoney(businessMoney);
// 暂存于实际支付金额部分业务进行随机立减
onlinePayment.setPayMoney(amount);
// 结果实体 // 结果实体
R payResult = null; R payResult = null;