From 2351cfc36d87f74ba1aa267e5554e16781dfb44d Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 24 Sep 2021 10:22:09 +0800
Subject: [PATCH] fix orderRefund

---
 src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java                         |    3 +++
 src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java                   |   10 ++++++++++
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |    6 +++++-
 sql/xc_mall.sql                                                                 |    5 +++++
 src/main/java/cc/mrbird/febs/mall/dto/AddRefundDto.java                         |    3 +++
 5 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/sql/xc_mall.sql b/sql/xc_mall.sql
index 5f99d0f..4877700 100644
--- a/sql/xc_mall.sql
+++ b/sql/xc_mall.sql
@@ -276,3 +276,8 @@
     PRIMARY KEY (ID)
 )  COMMENT = '退款操作明细';
 
+alter table mall_order_refund add type int null comment '1-仅退款不退货2-退款退货';
+alter table mall_order_refund add before_status int null comment '订单退款前状态';
+
+
+
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AddRefundDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AddRefundDto.java
index 1b0071f..9c1263e 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/AddRefundDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AddRefundDto.java
@@ -15,6 +15,9 @@
     @ApiModelProperty(value = "订单ID", example = "1")
     private Long id;
 
+    @ApiModelProperty(value = "退款类型", example = "1-仅退款不退货2-退款退货")
+    private Integer type;
+
     @ApiModelProperty(value = "退款原因", example = "太差了")
     private String reason;
 
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 dd56255..853977e 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java
@@ -30,4 +30,14 @@
     private String expressNo;
 
     private String expressCom;
+
+    /**
+     * 1-仅退款不退货 2-退款退货
+     */
+    private Integer type;
+
+    /**
+     * 退款前订单状态
+     */
+    private Integer beforeStatus;
 }
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 5a68f0e..36a7159 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
@@ -282,7 +282,7 @@
             throw new FebsException("已提交退款, 请勿重复提交");
         }
 
-        if (orderInfo.getStatus() == OrderStatusEnum.WAIT_PAY.getValue()) {
+        if (orderInfo.getStatus() != OrderStatusEnum.WAIT_SHIPPING.getValue() && orderInfo.getStatus() != OrderStatusEnum.WAIT_FINISH.getValue()) {
             throw new FebsException("该订单不能退款");
         }
 
@@ -297,11 +297,15 @@
             orderRefund.setMemberId(member.getId());
             orderRefund.setDesp(addRefundDto.getDesp());
             orderRefund.setReason(addRefundDto.getReason());
+            orderRefund.setType(addRefundDto.getType());
+            orderRefund.setBeforeStatus(orderInfo.getStatus());
             orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue());
             mallOrderRefundMapper.insert(orderRefund);
         } else {
             orderRefund.setDesp(addRefundDto.getDesp());
             orderRefund.setReason(addRefundDto.getReason());
+            orderRefund.setType(addRefundDto.getType());
+            orderRefund.setBeforeStatus(orderInfo.getStatus());
             orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue());
             mallOrderRefundMapper.updateById(orderRefund);
         }
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 c320147..7e00d5c 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java
@@ -24,6 +24,9 @@
     @ApiModelProperty(value = "退款状态 1-已申请 2-同意退款 3-驳回退款 4-已提交物流信息 5-已退款 6-已取消")
     private Integer status;
 
+    @ApiModelProperty(value = "1-仅退款 2-退款退货")
+    private Integer type;
+
     @ApiModelProperty(value = "物流单号")
     private String expressNo;
 

--
Gitblit v1.9.1