From aebfaf5c2ee60b28192750f7b057413ac80fb9d6 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 24 Sep 2021 16:10:15 +0800
Subject: [PATCH] fix order refund express

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java |  104 +++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 91 insertions(+), 13 deletions(-)

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 27f02ca..3de0c88 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
@@ -5,19 +5,11 @@
 import cc.mrbird.febs.mall.dto.DeliverGoodsDto;
 import cc.mrbird.febs.mall.dto.MallOrderInfoDto;
 import cc.mrbird.febs.mall.dto.MallOrderRefundDto;
-import cc.mrbird.febs.mall.entity.MallExpressInfo;
-import cc.mrbird.febs.mall.entity.MallOrderInfo;
-import cc.mrbird.febs.mall.entity.MallOrderItem;
-import cc.mrbird.febs.mall.entity.MallOrderRefund;
-import cc.mrbird.febs.mall.mapper.MallExpressInfoMapper;
-import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
-import cc.mrbird.febs.mall.mapper.MallOrderItemMapper;
-import cc.mrbird.febs.mall.mapper.MallOrderRefundMapper;
+import cc.mrbird.febs.mall.entity.*;
+import cc.mrbird.febs.mall.mapper.*;
 import cc.mrbird.febs.mall.service.IAdminMallOrderService;
-import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo;
-import cc.mrbird.febs.mall.vo.AdminMallOrderRefundVo;
-import cc.mrbird.febs.mall.vo.AdminMallOrderVo;
-import cc.mrbird.febs.mall.vo.AdminOrderDetailVo;
+import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
+import cc.mrbird.febs.mall.vo.*;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -42,6 +34,12 @@
     private final MallOrderItemMapper mallOrderItemMapper;
 
     private final MallOrderRefundMapper mallOrderRefundMapper;
+
+    private final MallOrderRefundOperationMapper mallOrderRefundOperationMapper;
+
+    private final MallMoneyFlowMapper mallMoneyFlowMapper;
+
+    private final IApiMallMemberWalletService iApiMallMemberWalletService;
 
     @Override
     public IPage<AdminMallOrderInfoVo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) {
@@ -74,7 +72,8 @@
             return new FebsResponse().fail().message("请输入物流公司");
         }
         MallExpressInfo mallExpressInfo = new MallExpressInfo();
-        mallExpressInfo.setMemberId(mallExpressInfo.getMemberId());
+        mallExpressInfo.setMemberId(mallOrderInfo.getMemberId());
+        mallExpressInfo.setOrderId(mallOrderInfo.getId());
         mallExpressInfo.setExpressNo(expressNo);
         mallExpressInfo.setExpressCom(expressCom);
         mallExpressInfoMapper.insert(mallExpressInfo);
@@ -113,5 +112,84 @@
         return adminMallOrderRefundVos;
     }
 
+    @Override
+    public IPage<AdminMallOrderRefundOperationVo> seeRefund(QueryRequest request, MallOrderRefund mallOrderRefund) {
+        Page<AdminMallOrderRefundOperationVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+        IPage<AdminMallOrderRefundOperationVo> adminMallOrderRefundOperationVos = mallOrderRefundOperationMapper.selectRefundOperationInPage(page, mallOrderRefund);
+        return adminMallOrderRefundOperationVos;
+    }
+
+    @Override
+    public FebsResponse agreeRefund(Long id) {
+        MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id);
+        if(ObjectUtil.isEmpty(mallOrderRefund)){
+            return new FebsResponse().fail().message("系统繁忙,请刷新重试");
+        }
+        mallOrderRefund.setStatus(2);
+        mallOrderRefundMapper.updateById(mallOrderRefund);
+
+        MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
+        mallOrderRefundOperation.setRefundId(mallOrderRefund.getId());
+        mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId());
+        mallOrderRefundOperation.setContent("已同意退款申请");
+        mallOrderRefundOperationMapper.insert(mallOrderRefundOperation);
+
+        return new FebsResponse().success();
+    }
+
+    @Override
+    public FebsResponse disagreeRefund(Long id) {
+        MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id);
+        if(ObjectUtil.isEmpty(mallOrderRefund)){
+            return new FebsResponse().fail().message("系统繁忙,请刷新重试");
+        }
+        mallOrderRefund.setStatus(3);
+        mallOrderRefundMapper.updateById(mallOrderRefund);
+
+        MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
+        mallOrderRefundOperation.setRefundId(mallOrderRefund.getId());
+        mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId());
+        mallOrderRefundOperation.setContent("不同意退款申请");
+        mallOrderRefundOperationMapper.insert(mallOrderRefundOperation);
+
+        return new FebsResponse().success();
+    }
+
+    @Override
+    public FebsResponse refundConfirm(Long id) {
+        MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id);
+        if(ObjectUtil.isEmpty(mallOrderRefund)){
+            return new FebsResponse().fail().message("系统繁忙,请刷新重试");
+        }
+        mallOrderRefund.setStatus(5);
+        mallOrderRefundMapper.updateById(mallOrderRefund);
+
+        MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
+        mallOrderRefundOperation.setRefundId(mallOrderRefund.getId());
+        mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId());
+        mallOrderRefundOperation.setContent("已退款到用户账户");
+        mallOrderRefundOperationMapper.insert(mallOrderRefundOperation);
+
+        MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(mallOrderRefund.getOrderId());
+        if(ObjectUtil.isEmpty(mallOrderInfo)){
+            return new FebsResponse().fail().message("系统繁忙,请刷新重试");
+        }
+        mallOrderInfo.setStatus(6);
+        mallOrderInfoMapper.updateById(mallOrderInfo);
+
+        //用户钱包增加对应的余额
+        iApiMallMemberWalletService.addBalance(mallOrderInfo.getAmount(),mallOrderInfo.getMemberId());
+
+        //新增一条资金流水
+        MallMoneyFlow mallMoneyFlow = new MallMoneyFlow();
+        mallMoneyFlow.setMemberId(mallOrderRefund.getMemberId());
+        mallMoneyFlow.setOrderNo(mallOrderInfo.getOrderNo());
+        mallMoneyFlow.setType(4);
+        mallMoneyFlow.setAmount(mallOrderInfo.getAmount());
+        mallMoneyFlowMapper.insert(mallMoneyFlow);
+
+        return new FebsResponse().success();
+    }
+
 
 }

--
Gitblit v1.9.1