lishiqiang 2 недель назад
Родитель
Сommit
bf053fe400

+ 9 - 8
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/refund/impl/TradeRefundServiceImpl.java

@@ -842,10 +842,10 @@ public class TradeRefundServiceImpl implements TradeRefundService {
             fee = fee.add(tradeRefundDetailBO.getRefundDetailDO().getFee());
             originRefundPrice = originRefundPrice.add(tradeRefundDetailBO.getRefundDetailDO().getOriginAmount());
         }
-
+        fee = tradeOrderDO.getPayAmount().subtract(refundDO.getRefundAmount());
         if (ObjectUtils.equalsAny(refundDO.getRefundChannel(), RefundChannelEnum.MINI_APP.getType())) {
             //小程序需要验证前台传入的退款金额
-            Asserts.isTrue(refundDO.getRefundAmount().compareTo(refundAmount) == 0, "退款金额不正确{},{}", refundDO.getRefundAmount(), refundAmount);
+//            Asserts.isTrue(refundDO.getRefundAmount().compareTo(refundAmount) == 0, "退款金额不正确{},{}", refundDO.getRefundAmount(), refundAmount);
         }
         //ota 、otc 退款渠道 退款金额重置
         if (ObjectUtils.equalsAny(refundDO.getRefundChannel(), RefundChannelEnum.OTA.getType(), RefundChannelEnum.OTC.getType())) {
@@ -869,7 +869,7 @@ public class TradeRefundServiceImpl implements TradeRefundService {
         Asserts.isTrue(NumberUtil.isGreaterOrEqual(canRefundAmount, refundDO.getRefundAmount()), "订单退款金额发生变更,请重新发起退款{}", tradeOrderDO.getOrderNo());
         //如果是正常退,退款金额必须一致
         if (refundDO.getRefundMethod() == REFUND_METHOD_NORMAL) {
-            Asserts.isTrue(NumberUtil.equals(refundAmount, refundDO.getRefundAmount()), "退款申请金额与明细金额不一致,请重新发起退款{}", tradeOrderDO.getOrderNo());
+//            Asserts.isTrue(NumberUtil.equals(refundAmount, refundDO.getRefundAmount()), "退款申请金额与明细金额不一致,请重新发起退款{}", tradeOrderDO.getOrderNo());
         }
         //如果是强退,此时可以改价,如果价格不同,则认为是改价
         if (applyAmount != null && refundDO.getRefundMethod() == REFUND_METHOD_FORCE && refundAmount.compareTo(applyAmount) != 0) {
@@ -934,8 +934,9 @@ public class TradeRefundServiceImpl implements TradeRefundService {
 
     private TradeRefundCalculateRespDTO.RefundItem calculateRefundDetailPrice(TradeOrderDO tradeOrderDO, TradeDetailBO tradeDetail, ProductSpuRespDTO product, TradeRefundCreateReqDTO.RefundItem refundItem) {
         BigDecimal originRefundPrice = BigDecimal.ZERO;
-        BigDecimal fee;
+        BigDecimal fee = tradeOrderDO.getDamaged();
         BigDecimal refundAmount;
+
         TradeRefundCalculateRespDTO.RefundItem calculateRefundItem = new TradeRefundCalculateRespDTO.RefundItem();
         calculateRefundItem.setOrderDetailId(tradeDetail.getId());
         calculateRefundItem.setVoucherCode(tradeDetail.getVoucherCode());
@@ -1519,11 +1520,11 @@ public class TradeRefundServiceImpl implements TradeRefundService {
                 Long refundCount = refundCountMap.get("refundCount");
                 TradeOrderDO tradeOrderDO = new TradeOrderDO();
                 tradeOrderDO.setId(refundDO.getOrderId());
-                if (ObjectUtil.equal(totalCount, refundCount)) {
+//                if (ObjectUtil.equal(totalCount, refundCount)) {
                     tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.ALL_REFUND.getStatus());
-                } else {
-                    tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.PARTIAL_REFUND.getStatus());
-                }
+//                } else {
+//                    tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.PARTIAL_REFUND.getStatus());
+//                }
                 tradeOrderRepositoryService.updateOrderStatus(tradeOrderDO);
 
                 afterRefundAmountSuccess(tradeOrderDO.getId(), refundDO.getId(), refundDO.getRefundAmount());