diff --git a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java index 13a2ec5..5ae13ee 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java @@ -157,6 +157,7 @@ public class AuditServiceImpl implements AuditService { order.getRemark(),0, auditName, "金币充值"); }else if (order.getType()==2) { //退款 + //对非强制退款订单进行退红包校验 if (order.getAuditStatus()!=4){ try { @@ -219,6 +220,15 @@ public class AuditServiceImpl implements AuditService { redMapper.update(order.getJwcode(),type,price.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP)); }//金币充值退款 else if (oldOrder.getType()==0){ + //判断够不够扣 + + if(userNow.getNowPermanentGold().compareTo(BigDecimal.valueOf(Math.abs(order.getPermanentGold()))) < 0 + || userNow.getNowFreeGold().compareTo(BigDecimal.valueOf(Math.abs(order.getFreeDecember() + order.getFreeJune()))) < 0 + || userNow.getNowTaskGold().compareTo(BigDecimal.valueOf(Math.abs(order.getTaskGold()))) < 0){ + log.error("用户余额不足,无法退款"); + throw new IllegalArgumentException("用户余额不足,无法退款"); + + } int type = 1; //红包充值累计 //额外扣金币抵扣红包 if (order.getAuditStatus()==4){