From c6889419ea24a8df72b654f30b3851f1172e3499 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 30 四月 2024 23:49:44 +0800
Subject: [PATCH] bug修复

---
 meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java |   57 ++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 42 insertions(+), 15 deletions(-)

diff --git a/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java b/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java
index e6b50bc..0039f69 100644
--- a/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java
+++ b/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java
@@ -5,6 +5,7 @@
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.enums.SqlLike;
 import com.baomidou.mybatisplus.mapper.Condition;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -38,6 +39,7 @@
 import com.sinata.modular.system.service.IRoleService;
 import java.util.Map;
 import java.util.Set;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.transaction.annotation.Transactional;
@@ -62,6 +64,7 @@
  *
  * @author goku
  */
+@Slf4j
 @Controller
 @RequestMapping("/mallOrder")
 public class MallOrderController extends BaseController {
@@ -527,24 +530,48 @@
             );
             order.setRefundPrice(refundPrice);
             order.setRefundTime(new Date());
+            //退回库存
+            List<MallOrderDetail> orderDetailList = this.mallOrderDetailService.selectList(new EntityWrapper<MallOrderDetail>().eq("order_no", orderNo));
+            log.info("----------------------------处理退款回退库存--------------------------");
+            log.info("orderDetailList:{}", JSON.toJSONString(orderDetailList));
+            if (CollectionUtils.isNotEmpty(orderDetailList)) {
+                Map<Integer, MallOrderDetail> orderDetailMap = orderDetailList.stream()
+                        .collect(Collectors.toMap(MallOrderDetail::getSkuId, e -> e));
+                Set<Integer> skuIdList = orderDetailList.stream().map(MallOrderDetail::getSkuId)
+                        .collect(Collectors.toSet());
+                List<MallGoodsSku> skuList = mallGoodsSkuService.selectList(
+                        new EntityWrapper<MallGoodsSku>().in("id", skuIdList));
+                for (MallGoodsSku mallGoodsSku : skuList) {
+                    MallOrderDetail mallOrderDetail = orderDetailMap.get(mallGoodsSku.getId());
+                    mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderDetail.getGoodsNum());
+                    mallGoodsSkuService.updateById(mallGoodsSku);
+                }
+                //退销量
+                Set<Integer> goodsIdList = orderDetailList.stream().map(MallOrderDetail::getGoodsId)
+                        .collect(Collectors.toSet());
+                Wrapper<MallGoods> wrapper = new EntityWrapper<MallGoods>().in("id", goodsIdList);
+                List<MallGoods> mallGoods = mallGoodsService.selectList(wrapper);
+                Map<Integer, MallOrderDetail> orderDetailMap2 = orderDetailList.stream()
+                        .collect(Collectors.toMap(MallOrderDetail::getGoodsId, e -> e));
+                if (CollectionUtils.isNotEmpty(mallGoods)) {
+                    for (MallGoods mallGoods1 : mallGoods) {
+                        MallOrderDetail mallOrderDetail1 = orderDetailMap2.get(mallGoods1.getId());
+                        if (Objects.nonNull(mallOrderDetail1)) {
+                            log.info("----------------------------处理退款回退销量--------------------------");
+                            log.info("mallGoods1:{}", JSON.toJSONString(mallGoods1));
+                            mallGoods1.setBuyCount(mallGoods1.getBuyCount() - mallOrderDetail1.getGoodsNum());
+                            mallGoodsService.updateById(mallGoods1);
+                        }
+                    }
+                }
+
+            }
+
+
         }
 
         this.mallOrderService.updateById(order);
-        //退回库存
-        List<MallOrderDetail> orderDetailList = this.mallOrderDetailService.selectList(new EntityWrapper<MallOrderDetail>().eq("order_no", orderNo));
-        if (CollectionUtils.isNotEmpty(orderDetailList)) {
-            Map<Integer, MallOrderDetail> orderDetailMap = orderDetailList.stream()
-                    .collect(Collectors.toMap(MallOrderDetail::getSkuId, e -> e));
-            Set<Integer> skuIdList = orderDetailList.stream().map(MallOrderDetail::getSkuId)
-                    .collect(Collectors.toSet());
-            List<MallGoodsSku> skuList = mallGoodsSkuService.selectList(
-                    new EntityWrapper<MallGoodsSku>().in("id", skuIdList));
-            for (MallGoodsSku mallGoodsSku : skuList) {
-                MallOrderDetail mallOrderDetail = orderDetailMap.get(mallGoodsSku.getId());
-                mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderDetail.getGoodsNum());
-                mallGoodsSkuService.updateById(mallGoodsSku);
-            }
-        }
+
         return SUCCESS_TIP;
     }
 }

--
Gitblit v1.7.1