Browse Source

no message

FengChaoYu 7 months ago
parent
commit
57c0535123

+ 16 - 4
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/stock/MaterialGoodsStockLogic.java

@@ -14,6 +14,7 @@ import com.gree.mall.miniapp.commonmapper.MaterialMapper;
 import com.gree.mall.miniapp.commonmapper.stock.MaterialGoodsStockCMapper;
 import com.gree.mall.miniapp.constant.Constant;
 import com.gree.mall.miniapp.enums.material.PartsPushFlagEnum;
+import com.gree.mall.miniapp.enums.material.WebsitGoodsTypeEnum;
 import com.gree.mall.miniapp.exception.RemoteServiceException;
 import com.gree.mall.miniapp.logic.common.CommonLogic;
 import com.gree.mall.miniapp.plus.entity.*;
@@ -330,7 +331,7 @@ public class MaterialGoodsStockLogic {
         List<WorkerStock> existWorkerStockList = materialGoodsStockCMapper.queryExistWorkerStockList(workerStockDTO.getCompanyWechatId()
                 , workerStockDTO.getWorkerId(), stockList);
         // 全部商品库存
-        Map<String, WorkerStock> existWorkerStockMap = this.createNotExistWorkerStock(stockList, existWorkerStockList);
+        Map<String, WorkerStock> existWorkerStockMap = this.createNotExistWorkerStock(workerStockDTO.getGoodsType(), stockList, existWorkerStockList);
         // 计算商品库存
         List<WorkerStockAcc> workerStockAccList = new ArrayList<>();
         this.computeWorkerStock(stockList, existWorkerStockMap, null, workerStockAccList);
@@ -353,14 +354,25 @@ public class MaterialGoodsStockLogic {
         }
     }
 
-    private Map<String, WorkerStock> createNotExistWorkerStock(List<WorkerStockDTO> stockList, List<WorkerStock> existWorkerStockList) {
+    private Map<String, WorkerStock> createNotExistWorkerStock(String goodsType, List<WorkerStockDTO> stockList, List<WorkerStock> existWorkerStockList) {
         // 已存在的商品库存转成Map
-        Map<String, WorkerStock> existShopStockMap = existWorkerStockList.stream()
-                .collect(Collectors.toMap(WorkerStock::getGoodsId, Function.identity()));
+        Map<String, WorkerStock> existShopStockMap;
+
+        if (goodsType.equals(WebsitGoodsTypeEnum.M.toString())) {
+            existShopStockMap = existWorkerStockList.stream()
+                    .collect(Collectors.toMap(WorkerStock::getGoodsId, Function.identity()));
+        } else {
+            existShopStockMap = existWorkerStockList.stream()
+                    .collect(Collectors.toMap(o -> o.getCompanyWechatId() + o.getWebsitId() + o.getPartsWebsitId() +  o.getGoodsId(), Function.identity()));
+        }
 
         // 找出不存在的商品库存并存入新商品库存List
         for (WorkerStockDTO workerStockDTO : stockList) {
             WorkerStock workerStock = existShopStockMap.get(workerStockDTO.getGoodsId());
+            if (goodsType.equals(WebsitGoodsTypeEnum.P.toString())) {
+                workerStock = existShopStockMap.get(workerStockDTO.getCompanyWechatId() + workerStockDTO.getWebsitId() + workerStockDTO.getPartsWebsitId() +  workerStockDTO.getGoodsId());
+            }
+
             if (Objects.isNull(workerStock)) {
                 workerStock = workerStockDTO.createWorkerStock();
                 existShopStockMap.put(workerStockDTO.getGoodsId(), workerStock);

+ 16 - 4
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/stock/MaterialGoodsStockLogic.java

@@ -6,6 +6,7 @@ import com.gree.mall.manager.bean.material.stock.WorkerStockDTO;
 import com.gree.mall.manager.commonmapper.MaterialGoodsStockCMapper;
 import com.gree.mall.manager.constant.Constant;
 import com.gree.mall.manager.enums.material.DirectFlagEnum;
+import com.gree.mall.manager.enums.material.WebsitGoodsTypeEnum;
 import com.gree.mall.manager.exception.RemoteServiceException;
 import com.gree.mall.manager.plus.entity.*;
 import com.gree.mall.manager.plus.service.*;
@@ -141,7 +142,7 @@ public class MaterialGoodsStockLogic {
         List<WorkerStock> existWorkerStockList = materialGoodsStockCMapper.queryExistWorkerStockList(workerStockDTO.getCompanyWechatId(),
                 workerStockDTO.getWorkerId(), stockList);
         // 全部商品库存
-        Map<String, WorkerStock> existWorkerStockMap = this.createNotExistWorkerStock(stockList, existWorkerStockList);
+        Map<String, WorkerStock> existWorkerStockMap = this.createNotExistWorkerStock(workerStockDTO.getGoodsType(), stockList, existWorkerStockList);
         // 计算商品库存
         List<WorkerStockAcc> workerStockAccList = new ArrayList<>();
         this.computeWorkerStock(stockList, existWorkerStockMap, workerStockAccList);
@@ -164,14 +165,25 @@ public class MaterialGoodsStockLogic {
         }
     }
 
-    private Map<String, WorkerStock> createNotExistWorkerStock(List<WorkerStockDTO> stockList, List<WorkerStock> existWorkerStockList) {
+    private Map<String, WorkerStock> createNotExistWorkerStock(String goodsType, List<WorkerStockDTO> stockList, List<WorkerStock> existWorkerStockList) {
         // 已存在的商品库存转成Map
-        Map<String, WorkerStock> existShopStockMap = existWorkerStockList.stream()
-                .collect(Collectors.toMap(WorkerStock::getGoodsId, Function.identity()));
+        Map<String, WorkerStock> existShopStockMap;
+
+        if (goodsType.equals(WebsitGoodsTypeEnum.M.getKey())) {
+            existShopStockMap = existWorkerStockList.stream()
+                    .collect(Collectors.toMap(WorkerStock::getGoodsId, Function.identity()));
+        } else {
+            existShopStockMap = existWorkerStockList.stream()
+                    .collect(Collectors.toMap(o -> o.getCompanyWechatId() + o.getWebsitId() + o.getPartsWebsitId() +  o.getGoodsId(), Function.identity()));
+        }
 
         // 找出不存在的商品库存并存入新商品库存List
         for (WorkerStockDTO workerStockDTO : stockList) {
             WorkerStock workerStock = existShopStockMap.get(workerStockDTO.getGoodsId());
+            if (goodsType.equals(WebsitGoodsTypeEnum.P.getKey())) {
+                workerStock = existShopStockMap.get(workerStockDTO.getCompanyWechatId() + workerStockDTO.getWebsitId() + workerStockDTO.getPartsWebsitId() +  workerStockDTO.getGoodsId());
+            }
+
             if (Objects.isNull(workerStock)) {
                 workerStock = workerStockDTO.createWorkerStock();
                 existShopStockMap.put(workerStockDTO.getGoodsId(), workerStock);