增加检测促销商品库存
This commit is contained in:
		
							parent
							
								
									1688a7ba15
								
							
						
					
					
						commit
						0d5f871da7
					
				| @ -190,40 +190,43 @@ public class SkuPromotionRender implements CartRenderStep { | ||||
|             List<PromotionSkuVO> joinPromotion = cartSkuVO.getPriceDetailDTO().getJoinPromotion(); | ||||
|             if (!joinPromotion.isEmpty()) { | ||||
|                 for (PromotionSkuVO promotionSkuVO : joinPromotion) { | ||||
| 
 | ||||
|                     String promotionGoodsStockCacheKey = PromotionGoodsService.getPromotionGoodsStockCacheKey(PromotionTypeEnum.valueOf(promotionSkuVO.getPromotionType()), promotionSkuVO.getActivityId(), cartSkuVO.getGoodsSku().getId()); | ||||
|                     Object quantity = cache.get(promotionGoodsStockCacheKey); | ||||
| 
 | ||||
|                     if (quantity == null) { | ||||
|                         //如果促销有库存信息 | ||||
|                         PromotionTypeEnum promotionTypeEnum = PromotionTypeEnum.valueOf(promotionSkuVO.getPromotionType()); | ||||
|                         switch (promotionTypeEnum) { | ||||
|                             case KANJIA: | ||||
|                                 quantity = kanjiaActivityGoodsService.getKanjiaGoodsBySkuId(cartSkuVO.getGoodsSku().getId()).getStock(); | ||||
|                                 break; | ||||
|                             case POINTS_GOODS: | ||||
|                                 quantity = pointsGoodsService.getPointsGoodsDetailBySkuId(cartSkuVO.getGoodsSku().getId()).getActiveStock(); | ||||
|                                 break; | ||||
|                             case SECKILL: | ||||
|                             case PINTUAN: | ||||
|                                 quantity = promotionGoodsService.getPromotionGoodsStock(PromotionTypeEnum.valueOf(promotionSkuVO.getPromotionType()), promotionSkuVO.getActivityId(), cartSkuVO.getGoodsSku().getId()); | ||||
|                                 break; | ||||
|                             default: | ||||
|                                 return; | ||||
|                         } | ||||
|                     } | ||||
| 
 | ||||
| 
 | ||||
|                     if (quantity != null && cartSkuVO.getNum() > (Integer) quantity) {//设置购物车未选中 | ||||
|                         cartSkuVO.setChecked(false); | ||||
|                         //设置失效消息 | ||||
|                         cartSkuVO.setErrorMessage("促销商品库存不足,现有库存数量[" + quantity + "]"); | ||||
|                     } | ||||
|                     this.checkPromotionGoodsQuantity(cartSkuVO, promotionSkuVO); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void checkPromotionGoodsQuantity(CartSkuVO cartSkuVO, PromotionSkuVO promotionSkuVO) { | ||||
|         String promotionGoodsStockCacheKey = PromotionGoodsService.getPromotionGoodsStockCacheKey(PromotionTypeEnum.valueOf(promotionSkuVO.getPromotionType()), promotionSkuVO.getActivityId(), cartSkuVO.getGoodsSku().getId()); | ||||
|         Object quantity = cache.get(promotionGoodsStockCacheKey); | ||||
| 
 | ||||
|         if (quantity == null) { | ||||
|             //如果促销有库存信息 | ||||
|             PromotionTypeEnum promotionTypeEnum = PromotionTypeEnum.valueOf(promotionSkuVO.getPromotionType()); | ||||
|             switch (promotionTypeEnum) { | ||||
|                 case KANJIA: | ||||
|                     quantity = kanjiaActivityGoodsService.getKanjiaGoodsBySkuId(cartSkuVO.getGoodsSku().getId()).getStock(); | ||||
|                     break; | ||||
|                 case POINTS_GOODS: | ||||
|                     quantity = pointsGoodsService.getPointsGoodsDetailBySkuId(cartSkuVO.getGoodsSku().getId()).getActiveStock(); | ||||
|                     break; | ||||
|                 case SECKILL: | ||||
|                 case PINTUAN: | ||||
|                     quantity = promotionGoodsService.getPromotionGoodsStock(PromotionTypeEnum.valueOf(promotionSkuVO.getPromotionType()), promotionSkuVO.getActivityId(), cartSkuVO.getGoodsSku().getId()); | ||||
|                     break; | ||||
|                 default: | ||||
|                     return; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         if (quantity != null && cartSkuVO.getNum() > (Integer) quantity) {//设置购物车未选中 | ||||
|             cartSkuVO.setChecked(false); | ||||
|             //设置失效消息 | ||||
|             cartSkuVO.setErrorMessage("促销商品库存不足,现有库存数量[" + quantity + "]"); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 购物车促销类型 | ||||
|      */ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 paulGao
						paulGao