zoujiajian пре 2 година
родитељ
комит
f49000b890

+ 5 - 2
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -924,6 +924,11 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
         //默认补差价余额
         String refundType = Optional.ofNullable(orderRefundReq.getRefundType()).orElse("balance");
         BigDecimal refundMoney = orderRefundReq.getRefundMoney();
+        BigDecimal orderRefundMoney = Optional.ofNullable(orderDon.getRefundMoney()).orElse(BigDecimal.ZERO);
+        BigDecimal orderDonRefundBalance = Optional.ofNullable(orderDon.getRefundBalance()).orElse(BigDecimal.ZERO);
+        if (refundMoney.add(orderRefundMoney).add(orderDonRefundBalance).compareTo(orderDon.getRealMoney()) >= 0) {
+            throw BusinessRuntimeException.getInstance("补差价已达到该订单付款金额");
+        }
         if ("money".equals(refundType)) {
             if (orderDon.getMoney().compareTo(BigDecimal.ZERO) == 0) {
                 throw BusinessRuntimeException.getInstance("该订单为0元订单,无法补差价至用户账户");
@@ -936,7 +941,6 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             }
             //退款
             String outNo = centerRefund(orderRefundReq, orderDon);
-            BigDecimal orderRefundMoney = Optional.ofNullable(orderDon.getRefundMoney()).orElse(BigDecimal.ZERO);
             orderDon.setRefundMoney(orderRefundMoney.add(refundMoney));
             orderDonMapper.updateById(orderDon);
 
@@ -954,7 +958,6 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             throw BusinessRuntimeException.getInstance("请输入正确的差价金额");
         }
         userBenefitsService.addUserBalance(orderDon.getUserId(), refundBalance, UserBalanceSourceRecord.Source.price_differ, orderDon.getYhsId());
-        BigDecimal orderDonRefundBalance = Optional.ofNullable(orderDon.getRefundBalance()).orElse(BigDecimal.ZERO);
         orderDon.setRefundBalance(orderDonRefundBalance.add(refundBalance));
         orderDonMapper.updateById(orderDon);
     }