刘俊驰 1 anno fa
parent
commit
8578f720a3

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

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.portal.service;
 
 import com.ym.mec.auth.api.entity.SysUser;
 import com.yonge.cooleshow.mbg.model.PmsProduct;
+import com.yonge.cooleshow.mbg.model.PmsSkuStock;
 import com.yonge.cooleshow.portal.domain.PmsPortalProductDetail;
 import com.yonge.cooleshow.portal.domain.PmsProductCategoryNode;
 import com.yonge.cooleshow.portal.dto.ProductSearchConditionVo;
@@ -20,6 +21,8 @@ public interface PmsPortalProductService {
      */
     List<PmsProduct> search(String keyword, Long brandId, Long productCategoryId, Long productAttributeCategoryId, Integer pageNum, Integer pageSize, Integer sort);
 
+    List<PmsSkuStock> updateProductSkuStock(List<PmsSkuStock> skuStocks);
+
     List<PmsProduct> updateProductStock(List<PmsProduct> pmsProducts);
 
     /**

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

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.portal.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import com.beust.jcommander.internal.Lists;
 import com.ym.mec.common.exception.BizException;
 import com.yonge.cooleshow.mbg.mapper.OmsCartItemMapper;
 import com.yonge.cooleshow.mbg.mapper.PmsProductMapper;
@@ -11,6 +12,7 @@ import com.yonge.cooleshow.portal.domain.CartProduct;
 import com.yonge.cooleshow.portal.domain.CartPromotionItem;
 import com.yonge.cooleshow.portal.service.OmsCartItemService;
 import com.yonge.cooleshow.portal.service.OmsPromotionService;
+import com.yonge.cooleshow.portal.service.PmsPortalProductService;
 import com.yonge.cooleshow.portal.service.UmsMemberService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -44,6 +46,9 @@ public class OmsCartItemServiceImpl implements OmsCartItemService {
     @Autowired
     private PmsSkuStockMapper skuStockMapper;
 
+    @Autowired
+    private PmsPortalProductService portalProductService;
+
     @Override
     public OmsCartItem add(OmsCartItem cartItem) {
         UmsMember currentMember;
@@ -135,6 +140,8 @@ public class OmsCartItemServiceImpl implements OmsCartItemService {
         PmsSkuStockExample skuExample = new PmsSkuStockExample();
         skuExample.createCriteria().andIdIn(skuIds).andDeleteStatusEqualTo(0);
         List<PmsSkuStock> pmsSkuStocks = skuStockMapper.selectByExample(skuExample);
+
+        pmsSkuStocks = portalProductService.updateProductSkuStock(pmsSkuStocks);
         Map<Long, List<PmsSkuStock>> collect =
                 pmsSkuStocks.stream().collect(Collectors.groupingBy(PmsSkuStock::getId));
         for (OmsCartItem omsCartItem : omsCartItems) {
@@ -178,7 +185,8 @@ public class OmsCartItemServiceImpl implements OmsCartItemService {
         }
 
         PmsSkuStock pmsSkuStock = skuStockMapper.selectByPrimaryKey(omsCartItem.getProductSkuId());
-
+        List<PmsSkuStock> pmsSkuStocks = portalProductService.updateProductSkuStock(Lists.newArrayList(pmsSkuStock));
+        pmsSkuStock = pmsSkuStocks.get(0);
         if (pmsSkuStock.getStock() - pmsSkuStock.getLockStock() < quantity) {
             return pmsSkuStock.getStock() - pmsSkuStock.getLockStock();
         }

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

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.portal.dao.PortalProductDao;
 import com.yonge.cooleshow.portal.domain.CartPromotionItem;
 import com.yonge.cooleshow.portal.domain.PromotionProduct;
 import com.yonge.cooleshow.portal.service.OmsPromotionService;
+import com.yonge.cooleshow.portal.service.PmsPortalProductService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -25,6 +26,9 @@ public class OmsPromotionServiceImpl implements OmsPromotionService {
     @Autowired
     private PortalProductDao portalProductDao;
 
+    @Autowired
+    private PmsPortalProductService portalProductService;
+
     @Override
     public List<CartPromotionItem> calcCartPromotion(List<OmsCartItem> cartItemList) {
         //1.先根据productId对CartItem进行分组,以spu为单位进行计算优惠
@@ -136,7 +140,13 @@ public class OmsPromotionServiceImpl implements OmsPromotionService {
         for(OmsCartItem cartItem:cartItemList){
             productIdList.add(cartItem.getProductId());
         }
-        return portalProductDao.getPromotionProductList(productIdList);
+        List<PromotionProduct> promotionProductList = portalProductDao.getPromotionProductList(productIdList);
+        for (PromotionProduct promotionProduct : promotionProductList) {
+            List<PmsSkuStock> pmsSkuStocks = portalProductService.updateProductSkuStock(promotionProduct.getSkuStockList());
+            promotionProduct.setSkuStockList(pmsSkuStocks);
+        }
+
+        return promotionProductList;
     }
 
     /**

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

@@ -11,7 +11,6 @@ import com.yonge.cooleshow.mbg.model.*;
 import com.yonge.cooleshow.portal.dao.PortalProductDao;
 import com.yonge.cooleshow.portal.domain.PmsPortalProductDetail;
 import com.yonge.cooleshow.portal.domain.PmsProductCategoryNode;
-import com.yonge.cooleshow.portal.domain.ProductStock;
 import com.yonge.cooleshow.portal.dto.ProductCategorySmallVo;
 import com.yonge.cooleshow.portal.dto.ProductSearchConditionVo;
 import com.yonge.cooleshow.portal.dto.ShareProductVo;
@@ -110,6 +109,7 @@ public class PmsPortalProductServiceImpl implements PmsPortalProductService {
 
     }
 
+    @Override
     public List<PmsSkuStock> updateProductSkuStock(List<PmsSkuStock> skuStocks) {
         if (CollectionUtils.isEmpty(skuStocks)) {
             return new ArrayList<>();