From a4c1caa24924c8cf989c844e3f6d33ef8f825969 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 07 Sep 2022 15:43:59 +0800
Subject: [PATCH] 20220902

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   28 ++++++++++++++++++++++------
 1 files changed, 22 insertions(+), 6 deletions(-)

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 a3c3e5f..3b7b6ca 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
@@ -506,6 +506,11 @@
             throw new FebsException("还未送至自提点");
         }
 
+        List<MallRefundEntity> mallRefundEntities = mallRefundMapper.selectByItemIdAndOrderIdAndState(null, orderInfo.getId(), 3);
+        if(CollUtil.isNotEmpty(mallRefundEntities)){
+            throw new FebsException("请先处理退款商品");
+        }
+
         orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
         orderInfo.setReceivingTime(new Date());
         this.baseMapper.updateById(orderInfo);
@@ -722,9 +727,10 @@
                 mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+mallOrderItem.getId());
                 mallRefundEntity.setMemberId(member.getId());
                 mallRefundEntity.setOrderId(mallOrderInfo.getId());
-                if("余额支付"==mallOrderInfo.getPayMethod()){
+                mallRefundEntity.setItemId(mallOrderItem.getId());
+                if("余额支付".equals(mallOrderInfo.getPayMethod())){
                     mallRefundEntity.setType(3);
-                }else if("微信支付"==mallOrderInfo.getPayMethod()){
+                }else if("微信支付".equals(mallOrderInfo.getPayMethod())){
                     mallRefundEntity.setType(1);
                 }else{
                     mallRefundEntity.setType(3);
@@ -736,14 +742,12 @@
                 if(mallRefund.getState() == 1){
                     return new FebsResponse().fail().message("订单已退款");
                 }
-                if(mallRefund.getState() == 3){
-                    return new FebsResponse().fail().message("订单退款中");
-                }
-                if(mallRefund.getState() == 2){
+                if(mallRefund.getState() == 2 || mallRefund.getState() == 3){
                     mallRefundEntity.setId(mallRefund.getId());
                     mallRefundEntity.setRefundNo(mallRefund.getRefundNo());
                     mallRefundEntity.setMemberId(mallRefund.getMemberId());
                     mallRefundEntity.setOrderId(mallRefund.getOrderId());
+                    mallRefundEntity.setItemId(mallRefund.getItemId());
                     mallRefundEntity.setType(mallRefund.getType());
                     mallRefundEntity.setState(3);
                     mallRefundEntity.setAmount(mallRefund.getAmount());
@@ -798,4 +802,16 @@
         return new FebsResponse().success().message("已申请");
     }
 
+    @Override
+    public FebsResponse cancelRefundOrder(Long id) {
+        MallRefundEntity mallRefundEntity = mallRefundMapper.selectById(id);
+        mallRefundEntity.setState(2);
+        mallRefundMapper.updateById(mallRefundEntity);
+        Long itemId = mallRefundEntity.getItemId();
+        MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId);
+        mallOrderItem.setState(1);
+        mallOrderItemMapper.updateById(mallOrderItem);
+        return new FebsResponse().success().message("已取消");
+    }
+
 }

--
Gitblit v1.9.1