## 支付大于1元才随机减;随机减金额最大为0.3元;

This commit is contained in:
cabbage 2025-10-29 16:08:08 +08:00
parent b2850b930a
commit 4cfd678d06
1 changed files with 9 additions and 5 deletions

View File

@ -12,20 +12,24 @@ import java.util.TreeMap;
*/
public class PayUtil {
/**
* 支付大于1元才能进行随机减
*/
final static BigDecimal RANDOM_LIMIT = new BigDecimal("1");
/**
* 随机减金额
*/
final static BigDecimal RANDOM = new BigDecimal("0.5");
final static BigDecimal RANDOM = new BigDecimal("0.3");
/**
* 计算随机金额0.2元进行随机生成
* 计算随机金额0.3元进行随机生成
*
* @param amount
* @return
*/
public static BigDecimal handleAmountRandom(BigDecimal amount) {
if (amount.compareTo(RANDOM) > 0) {
// 订单金额大于0.99元才进行处理
if (amount.compareTo(RANDOM_LIMIT) > 0) {
// 订单金额大于1元才进行处理
return amount.subtract(RANDOM).add(RandomUtil.randomBigDecimal(new BigDecimal("0.01"), RANDOM).setScale(2, BigDecimal.ROUND_HALF_UP));
}
return amount;
@ -39,7 +43,7 @@ public class PayUtil {
* @return
*/
public static boolean checkAmount(BigDecimal amount, BigDecimal payAmount) {
// 实际订单金额 - 支付金额 <= 0.2 则为正常处理
// 实际订单金额 - 支付金额 <= 0.3 则为正常处理
return amount.subtract(payAmount).compareTo(RANDOM) <= 0;
}