From 8000d61f1b7ecb642bb2af6ceec5d5c9a6b39881 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 16 Jun 2022 18:14:36 +0800
Subject: [PATCH] fix refund amount

---
 src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java                         |    6 ++++++
 src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java                   |    3 +++
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java       |    4 ++--
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |    7 +++++++
 4 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java
index 0989a1f..9c0d1ff 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -50,4 +51,6 @@
     private String phone;
 
     private String address;
+
+    private BigDecimal amount;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
index d3e7563..62111f4 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
@@ -155,7 +155,7 @@
         mallOrderInfoMapper.updateById(mallOrderInfo);
 
         if(!"微信支付".equals(mallOrderInfo.getPayMethod()) && !"支付宝支付".equals(mallOrderInfo.getPayMethod())){
-            BigDecimal amount = mallOrderInfo.getAmount().add(mallOrderInfo.getCarriage());
+            BigDecimal amount = mallOrderRefund.getAmount();
             //用户钱包增加对应的余额
             iApiMallMemberWalletService.addBalance(amount, mallOrderInfo.getMemberId());
 
@@ -223,7 +223,7 @@
         mallOrderInfo.setStatus(6);
         mallOrderInfoMapper.updateById(mallOrderInfo);
 
-        BigDecimal refundAmount = mallOrderInfo.getAmount();
+        BigDecimal refundAmount = mallOrderRefund.getAmount();
         //用户钱包增加对应的余额
         iApiMallMemberWalletService.addBalance(refundAmount, mallOrderInfo.getMemberId());
 
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 6cd4738..6b4d1a8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -413,6 +413,13 @@
 
         MallOrderRefund orderRefund = mallOrderRefundMapper.selectOrderRefundByOrderId(orderInfo.getId());
         if (orderRefund == null) {
+            // 未发货则退运费,发货了则不退
+            if (orderInfo.getStatus() == 2) {
+                orderRefund.setAmount(orderInfo.getAmount().add(orderInfo.getCarriage()));
+            } else {
+                orderRefund.setAmount(orderInfo.getAmount());
+            }
+
             orderRefund = new MallOrderRefund();
             orderRefund.setOrderId(orderInfo.getId());
             orderRefund.setMemberId(member.getId());
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java
index e2eb562..ad1a93f 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java
@@ -48,4 +48,10 @@
 
     @ApiModelProperty(value = "收货地址")
     private String address;
+
+    @ApiModelProperty(value = "退款前状态")
+    private Integer beforeStatus;
+
+    @ApiModelProperty(value = "退款金额")
+    private Integer amount;
 }

--
Gitblit v1.9.1