zoujiajian 2 سال پیش
والد
کامیت
bc50246d49

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/OrderDonBackView.java

@@ -116,6 +116,9 @@ public class OrderDonBackView {
 	@DbField("o.refund_money")
 	private BigDecimal refundMoney;
 
+	@DbField("o.refund_balance")
+	private BigDecimal refundBalance;
+
 	@DbField("o.status")
 	private OrderDon.Status status;
 

+ 6 - 1
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -591,6 +591,7 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             throw BusinessRuntimeException.getInstance("订单不存在");
         }
         BigDecimal orderDonRefundMoney = Optional.ofNullable(orderDon.getRefundMoney()).orElse(BigDecimal.ZERO);
+        BigDecimal orderDonRefundBalance = Optional.ofNullable(orderDon.getRefundBalance()).orElse(BigDecimal.ZERO);
         String refundType = refundReq.getRefundType();
         if (orderDon.getType() == OrderDon.Type.BALANCE && !OrderDon.Type.BALANCE.getType().equals(refundType)) {
             throw BusinessRuntimeException.getInstance("余额支付的订单不支持金额退款");
@@ -636,6 +637,7 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
         //余额退款
         if (OrderDon.Type.BALANCE.getType().equals(refundType)) {
             BigDecimal balance = orderDon.getBalance();
+            refundMoney = orderDonRefundBalance.add(refundMoney);
             if (OrderDon.Type.BALANCE == orderDon.getType() && refundMoney.compareTo(balance) > 0) {
                 throw BusinessRuntimeException.getInstance("退款余额大于订单支付余额");
             }
@@ -646,10 +648,10 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             orderDon.setRefundMoney(BigDecimal.ZERO);
         } else {
             //退金额
+            refundMoney = orderDonRefundMoney.add(refundMoney);
             if (refundMoney.compareTo(money) > 0) {
                 throw BusinessRuntimeException.getInstance("退款金额大于订单支付金额");
             }
-            refundMoney = refundMoney.add(orderDonRefundMoney);
             orderDon.setRefundMoney(refundMoney);
         }
         //礼品卡是否已使用
@@ -952,6 +954,9 @@ 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);
     }
 
     /**