From 097f92827a7f6896dd2861ee83dcfed9204f1abc Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 05 Sep 2022 17:27:03 +0800
Subject: [PATCH] 20220902

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   27 +++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 2 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 6f08fcc..b45cace 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
@@ -85,6 +85,11 @@
             throw new FebsException("请选择自提点");
         }
 
+        MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode);
+        if(ObjectUtil.isEmpty(mallTeamLeader)){
+            throw new FebsException("请重新选择团长");
+        }
+
         String orderNo = MallUtils.getOrderNum();
         MallOrderInfo orderInfo = new MallOrderInfo();
         orderInfo.setOrderNo(orderNo);
@@ -187,9 +192,9 @@
         BigDecimal delivaryAmount = addOrderDto.getDeliveryAmount() == null ? BigDecimal.ZERO : addOrderDto.getDeliveryAmount();
         if(BigDecimal.ZERO.compareTo(delivaryAmount) < 0 && 1 == addOrderDto.getIsHome()){
             total = total.add(delivaryAmount);
+            orderInfo.setCarriage(delivaryAmount);
         }
         orderInfo.setAmount(total);
-        orderInfo.setCarriage(carriage);
 
         MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId());
         orderInfo.setName(address.getName());
@@ -227,6 +232,23 @@
         orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
         orderInfo.setCancelType(MallOrderInfo.CANCEL_BY_SELF);
         this.baseMapper.updateById(orderInfo);
+        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
+        if(CollUtil.isNotEmpty(mallOrderItemList)){
+            for(MallOrderItem mallOrderItem : mallOrderItemList){
+                Long goodsId = mallOrderItem.getGoodsId();
+                Long skuId = mallOrderItem.getSkuId();
+                Integer cnt = mallOrderItem.getCnt();
+                MallGoods mallGoods = mallGoodsMapper.selectById(goodsId);
+                mallGoods.setVolume(mallGoods.getVolume() - cnt);
+                mallGoods.setStock(mallGoods.getStock() + cnt);
+                mallGoodsMapper.updateById(mallGoods);
+
+                MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(skuId);
+                mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - cnt);
+                mallGoodsSku.setStock(mallGoodsSku.getStock() + cnt);
+                mallGoodsSkuMapper.updateById(mallGoodsSku);
+            }
+        }
     }
 
     /**
@@ -491,7 +513,8 @@
         MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve();
         mallLeaderAchieve.setMemberId(orderInfo.getMemberId());
         mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo());
-        mallLeaderAchieve.setAmount(orderInfo.getAmount());
+        BigDecimal subtract = orderInfo.getAmount().subtract(orderInfo.getCarriage() == null ? BigDecimal.ZERO : orderInfo.getCarriage());
+        mallLeaderAchieve.setAmount(subtract);
         mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode());
         mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE);
         mallLeaderAchieveMapper.insert(mallLeaderAchieve);

--
Gitblit v1.9.1