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 |   51 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 44 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 ccdde6e..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);
+            }
+        }
     }
 
     /**
@@ -295,7 +317,7 @@
                 wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestData);
                 payResultStr = brandWCPayRequestData.getPrepay_id();
                 orderInfo.setPayMethod("微信支付");
-                agentProducer.sendOrderReturn(orderInfo.getId());
+//                agentProducer.sendOrderReturn(orderInfo.getId());
                 break;
             case "2":
                 if (StrUtil.isNotBlank(orderInfo.getPayOrderNo())) {
@@ -316,6 +338,7 @@
                 orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
                 orderInfo.setPayTime(new Date());
                 orderInfo.setPayResult("1");
+                orderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
 
 //                boolean hasTc = false;
 //                // 静态倍数
@@ -490,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);
@@ -713,6 +737,21 @@
         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) {
@@ -728,14 +767,12 @@
          * 更新退款表
          * 更新订单表
          */
-        Long refundId = mallRefundEntity.getId();
-        MallRefundEntity mallRefundOld = mallRefundMapper.selectById(refundId);
-        MallOrderInfo mallOrderInfoOld = this.baseMapper.selectByOrderNo(orderNo);
         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);
@@ -777,7 +814,7 @@
         mallRefundEntity.setRefundPic(applyRefundOrderDto.getRefundPic());
         mallRefundEntity.setMemberId(member.getId());
         mallRefundEntity.setState(3);
-        mallRefundEntity.setType(1);
+        mallRefundEntity.setType(applyRefundOrderDto.getType());
         mallRefundEntity.setOrderId(orderId);
         mallRefundEntity.setAmount(mallOrderItem.getAmount());
         mallRefundMapper.insert(mallRefundEntity);

--
Gitblit v1.9.1