diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/business/OrderBusiness.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/business/OrderBusiness.java index 56b314c..0e68756 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/business/OrderBusiness.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/business/OrderBusiness.java @@ -261,9 +261,9 @@ public class OrderBusiness { } BigDecimal detailRefundAmount = orderDetail.getFinalPrice().multiply(new BigDecimal(detailParam.getQuantity())); refundAmount = refundAmount.add(detailRefundAmount); - orderDetail.setRefundAmount(detailRefundAmount); - orderDetail.setRefundNum(detailParam.getQuantity()); - if(detailParam.getQuantity().equals(orderDetail.getQuantity())){ + orderDetail.setRefundAmount(detailRefundAmount.add(orderDetail.getRefundAmount())); + orderDetail.setRefundNum(detailParam.getQuantity() + orderDetail.getRefundNum()); + if(orderDetail.getRefundNum().equals(orderDetail.getQuantity())){ orderDetail.setDetailState(OrderDetailStateEnum.REFUNDED.getKey()); }else { orderDetail.setDetailState(OrderDetailStateEnum.PART_REFUND.getKey()); @@ -278,8 +278,8 @@ public class OrderBusiness { } OrderInfo refundOrderInfo = new OrderInfo(); refundOrderInfo.setOrderId(param.getOrderId()); - refundOrderInfo.setRefundAmount(refundAmount); - if(orderInfo.getRealAmount().equals(refundAmount)){ + refundOrderInfo.setRefundAmount(refundAmount.add(orderInfo.getRefundAmount())); + if(orderInfo.getRealAmount().equals(refundOrderInfo.getRefundAmount())){ refundOrderInfo.setOrderRefundState(OrderRefundStateEnum.FINISH.getKey()); refundOrderInfo.setOrderState(OrderStateEnum.CANCEL.getKey()); }else {