Преглед изворни кода

Merge remote-tracking branch 'origin/zx_saas_goods' into zx_saas_goods

yuanliang пре 1 година
родитељ
комит
66b3e9022f

+ 15 - 1
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderServiceImpl.java

@@ -681,7 +681,21 @@ public class OmsOrderServiceImpl implements OmsOrderService {
 
             orderItemList.add(omsOrderItem);
         }
-
+        // 判断是否存在被删除的商品 和sku 如果有被删除的商品或者sku则不允许下单
+        List<Long> productIds = orderItemList.stream().map(OmsOrderItem::getProductId).collect(Collectors.toList());
+        PmsProductExample pmsProductExample = new PmsProductExample();
+        pmsProductExample.createCriteria().andIdIn(productIds).andDeleteStatusEqualTo(1);
+        List<PmsProduct> pmsProducts = pmsProductMapper.selectByExample(pmsProductExample);
+        if (CollUtil.isNotEmpty(pmsProducts)) {
+            throw new BizException("商品已下架");
+        }
+        List<Long> skuIds = orderItemList.stream().map(OmsOrderItem::getProductSkuId).collect(Collectors.toList());
+        PmsSkuStockExample pmsSkuStockExample = new PmsSkuStockExample();
+        pmsSkuStockExample.createCriteria().andIdIn(skuIds).andDeleteStatusEqualTo(1);
+        List<PmsSkuStock> pmsSkuStocks = skuStockMapper.selectByExample(pmsSkuStockExample);
+        if (CollUtil.isNotEmpty(pmsSkuStocks)) {
+            throw new BizException("商品已下架");
+        }
 
         // 保存数据
         if (!CollectionUtils.isEmpty(orderItemList)) {

+ 2 - 2
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/PmsProductServiceImpl.java

@@ -472,11 +472,11 @@ public class PmsProductServiceImpl implements PmsProductService {
         List<PmsSkuStockDto.PmsSkuStockStock> skuStockStocks = skuStockMapper.getSkuStockByProductIds(productIds);
 
         // Convert to map
-        Map<Long, List<PmsSkuStockDto.PmsSkuStockStock>> skuStockStockMap = skuStockStocks.stream().collect(Collectors.groupingBy(PmsSkuStockDto.PmsSkuStockStock::getProductId));
+        Map<Long, List<PmsSkuStockDto.PmsSkuStockStock>> skuStockStockMap = skuStockStocks.stream().collect(Collectors.groupingBy(PmsSkuStockDto.PmsSkuStockStock::getId));
 
         // Merge
         for (PmsProductDto pmsProduct : feignProductList) {
-            List<PmsSkuStockDto.PmsSkuStockStock> skuStockStock = skuStockStockMap.get(pmsProduct.getGoodsId());
+            List<PmsSkuStockDto.PmsSkuStockStock> skuStockStock = skuStockStockMap.get(pmsProduct.getSkuStockId().longValue());
             if (!CollectionUtils.isEmpty(skuStockStock)) {
                 pmsProduct.setStock(skuStockStock.stream().mapToInt(PmsSkuStockDto.PmsSkuStockStock::getInternalStock).sum() + skuStockStock.stream().mapToInt(PmsSkuStockDto.PmsSkuStockStock::getTaxStock).sum());
             } else {

+ 3 - 0
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsCartItemServiceImpl.java

@@ -141,6 +141,8 @@ public class OmsCartItemServiceImpl implements OmsCartItemService {
         skuExample.createCriteria().andIdIn(skuIds).andDeleteStatusEqualTo(0);
         List<PmsSkuStock> pmsSkuStocks = skuStockMapper.selectByExample(skuExample);
 
+        // id 集合
+        skuIds = pmsSkuStocks.stream().map(PmsSkuStock::getId).collect(Collectors.toList());
         pmsSkuStocks = portalProductService.updateProductSkuStock(pmsSkuStocks);
         Map<Long, List<PmsSkuStock>> collect =
                 pmsSkuStocks.stream().collect(Collectors.groupingBy(PmsSkuStock::getId));
@@ -150,6 +152,7 @@ public class OmsCartItemServiceImpl implements OmsCartItemService {
                 omsCartItem.setStock(pmsSkuStocks1.get(0).getStock());
                 omsCartItem.setLockStock(pmsSkuStocks1.get(0).getLockStock());
             }
+            omsCartItem.setHidden(skuIds.contains(omsCartItem.getProductSkuId()) ? 0 : 1);
         }
         return omsCartItems;
     }

+ 14 - 5
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPromotionServiceImpl.java

@@ -1,9 +1,7 @@
 package com.yonge.cooleshow.portal.service.impl;
 
-import com.yonge.cooleshow.mbg.model.OmsCartItem;
-import com.yonge.cooleshow.mbg.model.PmsProductFullReduction;
-import com.yonge.cooleshow.mbg.model.PmsProductLadder;
-import com.yonge.cooleshow.mbg.model.PmsSkuStock;
+import com.yonge.cooleshow.mbg.mapper.PmsSkuStockMapper;
+import com.yonge.cooleshow.mbg.model.*;
 import com.yonge.cooleshow.portal.dao.PortalProductDao;
 import com.yonge.cooleshow.portal.domain.CartPromotionItem;
 import com.yonge.cooleshow.portal.domain.PromotionProduct;
@@ -16,6 +14,7 @@ import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * Created by macro on 2018/8/27.
@@ -29,6 +28,9 @@ public class OmsPromotionServiceImpl implements OmsPromotionService {
     @Autowired
     private PmsPortalProductService portalProductService;
 
+    @Autowired
+    private PmsSkuStockMapper skuStockMapper;
+
     @Override
     public List<CartPromotionItem> calcCartPromotion(List<OmsCartItem> cartItemList) {
         //1.先根据productId对CartItem进行分组,以spu为单位进行计算优惠
@@ -142,7 +144,14 @@ public class OmsPromotionServiceImpl implements OmsPromotionService {
         }
         List<PromotionProduct> promotionProductList = portalProductDao.getPromotionProductList(productIdList);
         for (PromotionProduct promotionProduct : promotionProductList) {
-            List<PmsSkuStock> pmsSkuStocks = portalProductService.updateProductSkuStock(promotionProduct.getSkuStockList());
+            List<PmsSkuStock> skuStockList = promotionProduct.getSkuStockList();
+            // id 集合
+            List<Long> skuIds = skuStockList.stream().map(PmsSkuStock::getId).collect(Collectors.toList());
+            PmsSkuStockExample example = new PmsSkuStockExample();
+            example.createCriteria().andIdIn(skuIds);
+            List<PmsSkuStock> pmsSkuStocks = skuStockMapper.selectByExample(example);
+
+            pmsSkuStocks = portalProductService.updateProductSkuStock(pmsSkuStocks);
             promotionProduct.setSkuStockList(pmsSkuStocks);
         }
 

+ 3 - 0
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/PmsPortalProductServiceImpl.java

@@ -136,6 +136,9 @@ public class PmsPortalProductServiceImpl implements PmsPortalProductService {
                 }
                 skuStock.setStock(pmsSkuStockStocks.stream().mapToInt(item -> item.getInternalStock() + item.getTaxStock()).sum());
                 skuStock.setLockStock(0);
+            } else {
+                skuStock.setStock(0);
+                skuStock.setLockStock(0);
             }
 
         }