From ab6603d889f482459c1812e52ce2c5c04fe8e3e7 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 08 Sep 2022 09:53:10 +0800
Subject: [PATCH] 20220902

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   31 ++++++++++++++++++++++++-------
 1 files changed, 24 insertions(+), 7 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..fd7ac30 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
@@ -462,7 +462,8 @@
     @Override
     public OrderDetailVo findOrderDetailsById(Long id) {
         MallOrderInfo orderInfo = this.baseMapper.selectOrderDetailsById(id);
-        if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
+//        if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
+        if (ObjectUtil.isNull(orderInfo)) {
             throw new FebsException("订单不存在");
         }
 
@@ -504,6 +505,11 @@
 
         if (orderInfo.getDeliveryState() != OrderDeliveryStateEnum.DELIVERY_FINISH.getValue()) {
             throw new FebsException("还未送至自提点");
+        }
+
+        List<MallRefundEntity> mallRefundEntities = mallRefundMapper.selectByItemIdAndOrderIdAndState(null, orderInfo.getId(), 3);
+        if(CollUtil.isNotEmpty(mallRefundEntities)){
+            throw new FebsException("请先处理退款商品");
         }
 
         orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
@@ -722,9 +728,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 +743,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 +803,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