From aff7d90dba9d9697f20b171ab7555acdb65efa52 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 24 Sep 2021 18:51:14 +0800
Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-mall

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   33 +++++++++++++++++++++++----------
 1 files changed, 23 insertions(+), 10 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 dee52ce..70da7dc 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
@@ -1,5 +1,6 @@
 package cc.mrbird.febs.mall.service.impl;
 
+import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.OrderRefundStatusEnum;
 import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
 import cc.mrbird.febs.common.exception.FebsException;
@@ -12,8 +13,10 @@
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
+import cc.mrbird.febs.mall.service.IApiMallMemberService;
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
 import cc.mrbird.febs.mall.service.IApiMallOrderInfoService;
+import cc.mrbird.febs.mall.service.MallMemberService;
 import cc.mrbird.febs.mall.vo.OrderDetailVo;
 import cc.mrbird.febs.mall.vo.OrderListVo;
 import cc.mrbird.febs.mall.vo.OrderRefundVo;
@@ -55,6 +58,7 @@
     private final MallOrderRefundMapper mallOrderRefundMapper;
     private final MallOrderRefundOperationMapper mallOrderRefundOperationMapper;
     private final MallShoppingCartMapper mallShoppingCartMapper;
+    private final IApiMallMemberService memberService;
     private final RedisUtils redisUtils;
 
     @Override
@@ -113,6 +117,7 @@
             mallOrderItemMapper.insert(orderItem);
 
             sku.setStock(sku.getStock() - item.getCnt());
+            sku.setSkuVolume(sku.getSkuVolume() + item.getCnt());
             mallGoodsSkuMapper.updateById(sku);
 
             if (addOrderDto.getType() == 1) {
@@ -160,19 +165,32 @@
             throw new FebsException("订单状态不能支付");
         }
 
+        String orderNo = "";
         switch (payOrderDto.getType()) {
             case "1":
                 // TODO 微信支付
+                orderInfo.setPayMethod("微信支付");
                 break;
             case "2":
                 // TODO 支付宝支付
+                orderInfo.setPayMethod("支付宝支付");
                 break;
             case "3":
-                return balancePay(orderInfo, payOrderDto.getTradePwd());
+                orderNo = balancePay(orderInfo, payOrderDto.getTradePwd());
+
+                orderInfo.setPayMethod("积分支付");
             default:
 
         }
-        return "";
+
+        orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
+        orderInfo.setPayTime(new Date());
+        orderInfo.setPayOrderNo(orderInfo.getOrderNo());
+        orderInfo.setPayResult("1");
+        this.baseMapper.updateById(orderInfo);
+
+        memberService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), null, null, null, null);
+        return orderNo;
     }
 
     private String balancePay(MallOrderInfo orderInfo, String tradePwd) {
@@ -192,12 +210,6 @@
 
         memberWalletService.reduceBalance(orderInfo.getAmount(), mallMember.getId());
 
-        orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
-        orderInfo.setPayTime(new Date());
-        orderInfo.setPayMethod("积分支付");
-        orderInfo.setPayOrderNo(orderInfo.getOrderNo());
-        orderInfo.setPayResult("1");
-        this.baseMapper.updateById(orderInfo);
         return orderInfo.getOrderNo();
     }
 
@@ -288,6 +300,7 @@
             throw new FebsException("该订单不能退款");
         }
 
+        Integer beforeStatus = orderInfo.getStatus();
         MallMember member = LoginUserUtil.getLoginUser();
         orderInfo.setStatus(OrderStatusEnum.REFUNDING.getValue());
         this.baseMapper.updateById(orderInfo);
@@ -301,7 +314,7 @@
             orderRefund.setReason(addRefundDto.getReason());
             orderRefund.setType(addRefundDto.getType());
             orderRefund.setRefundTime(new Date());
-            orderRefund.setBeforeStatus(orderInfo.getStatus());
+            orderRefund.setBeforeStatus(beforeStatus);
             orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue());
             mallOrderRefundMapper.insert(orderRefund);
         } else {
@@ -309,7 +322,7 @@
             orderRefund.setReason(addRefundDto.getReason());
             orderRefund.setType(addRefundDto.getType());
             orderRefund.setRefundTime(new Date());
-            orderRefund.setBeforeStatus(orderInfo.getStatus());
+            orderRefund.setBeforeStatus(beforeStatus);
             orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue());
             mallOrderRefundMapper.updateById(orderRefund);
         }

--
Gitblit v1.9.1