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 |   90 ++++++++++++--------------------------------
 1 files changed, 25 insertions(+), 65 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 09e56e6..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());
@@ -755,65 +760,8 @@
             apiLeaderRefundOrderDto.setItemId(mallOrderItem.getId());
             apiLeaderRefundOrderDto.setAgreeState(1);
             iApiMallTeamLeaderService.leaderRefundOrder(apiLeaderRefundOrderDto);
-
-//            //退款订单编号
-//            String orderNo = mallOrderInfo.getOrderNo();
-//            //退款退款编号
-//            String refundNo = mallRefundEntity.getRefundNo();
-//            //退款订单金额
-//            BigDecimal orderAmount = mallOrderInfo.getAmount();
-//            BigDecimal aa = new BigDecimal(100);
-//            int orderMoney = orderAmount.multiply(aa).intValue();
-//
-//            //退款退款金额
-//            BigDecimal refundAmount = mallRefundEntity.getAmount();
-//            BigDecimal bb = new BigDecimal(100);
-//            int refundMoney = refundAmount.multiply(bb).intValue();
-//
-//            Long refundId = mallRefundEntity.getId();
-//            MallRefundEntity mallRefundOld = mallRefundMapper.selectById(refundId);
-//            MallOrderInfo mallOrderInfoOld = this.baseMapper.selectByOrderNo(orderNo);
-//            //余额支付退款
-//            if(OrderPayMethodEnum.BALANCE.getName().equals(mallOrderInfo.getPayMethod())){
-//                mallRefundOld.setState(1);
-//                mallRefundMapper.updateById(mallRefundOld);
-//                mallOrderInfoOld.setStatus(OrderStatusEnum.REFUNDED.getValue());
-//                this.baseMapper.updateById(mallOrderInfoOld);
-//                mallMoneyFlowService.addMoneyFlow(mallOrderInfoOld.getMemberId(), mallOrderInfoOld.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
-//                memberWalletService.add(refundAmount, member.getId(), "balance");
-//                mallOrderItemMapper.updateStateByOrderId(3,mallOrderInfoOld.getId());
-//                return new FebsResponse().success().message("退款成功");
-//            }
-//
-//            Boolean flag = false;
-//            Boolean debug = xcxProperties.getDebug();
-//            if (debug) {
-//                boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null);
-//                flag = b;
-//            } else {
-//                log.info("开始调用退款接口。。。退款编号为{}", refundNo);
-//                boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, orderMoney, refundMoney, null);
-//                flag = b;
-//            }
-//
-//            /**
-//             * 更新退款表
-//             * 更新订单表
-//             */
-//            if(flag){
-//                mallRefundOld.setState(1);
-//                mallRefundMapper.updateById(mallRefundOld);
-//                mallOrderInfoOld.setStatus(OrderStatusEnum.REFUNDED.getValue());
-//                this.baseMapper.updateById(mallOrderInfoOld);
-//                mallOrderItemMapper.updateStateByOrderId(3,mallOrderInfoOld.getId());
-//                mallMoneyFlowService.addMoneyFlow(mallOrderInfoOld.getMemberId(), mallOrderInfoOld.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
-//            }else{
-//                mallRefundOld.setState(2);
-//                mallRefundMapper.updateById(mallRefundOld);
-//                return new FebsResponse().fail().message("退款失败,请联系客服人员");
-//            }
         }
-        return new FebsResponse().success().message("退款成功");
+        return new FebsResponse().success();
     }
 
     @Override
@@ -855,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