diff --git a/yshop-api/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java b/yshop-api/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java index 84caf707..2f0d5795 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java +++ b/yshop-api/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java @@ -54,11 +54,7 @@ import co.yixiang.modules.shop.entity.YxStoreCart; import co.yixiang.modules.shop.entity.YxStoreCouponUser; import co.yixiang.modules.shop.mapper.YxStoreCartMapper; import co.yixiang.modules.shop.mapper.YxStoreCouponUserMapper; -import co.yixiang.modules.shop.service.YxStoreCouponUserService; -import co.yixiang.modules.shop.service.YxStoreProductReplyService; -import co.yixiang.modules.shop.service.YxStoreProductService; -import co.yixiang.modules.shop.service.YxSystemConfigService; -import co.yixiang.modules.shop.service.YxSystemStoreService; +import co.yixiang.modules.shop.service.*; import co.yixiang.modules.shop.web.vo.YxStoreCartQueryVo; import co.yixiang.modules.shop.web.vo.YxSystemStoreQueryVo; import co.yixiang.modules.user.entity.YxUser; @@ -172,7 +168,8 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl { */ YxStoreCartQueryVo getYxStoreCartById(Serializable id); - + /** + * 验证产品库存是否足够 + * @param uid 用户ID + * @param productId 产品ID + * @param cartNum 购买数量 + * @param productAttrUnique 商品属性Unique + * @param combinationId 拼团产品ID + * @param seckillId 秒杀产品ID + * @param bargainId 砍价产品ID + */ + void checkProductStock(int uid, int productId, int cartNum, String productAttrUnique, + int combinationId, int seckillId, int bargainId); } diff --git a/yshop-api/src/main/java/co/yixiang/modules/shop/service/impl/YxStoreCartServiceImpl.java b/yshop-api/src/main/java/co/yixiang/modules/shop/service/impl/YxStoreCartServiceImpl.java index 20671e48..0ff027b9 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/shop/service/impl/YxStoreCartServiceImpl.java +++ b/yshop-api/src/main/java/co/yixiang/modules/shop/service/impl/YxStoreCartServiceImpl.java @@ -268,51 +268,8 @@ public class YxStoreCartServiceImpl extends BaseServiceImpl 0){ - boolean isStock = storeCombinationService.judgeCombinationStock(combinationId - ,cartNum); - if(!isStock) throw new ErrorRequestException("该产品库存不足"); - - YxStoreCombination storeCombination = storeCombinationService.getCombination(combinationId); - if(ObjectUtil.isNull(storeCombination)) throw new ErrorRequestException("该产品已下架或删除"); - }else if(seckillId > 0){//秒杀 - YxStoreSeckill yxStoreSeckill = storeSeckillService.getSeckill(seckillId); - if(ObjectUtil.isNull(yxStoreSeckill)){ - throw new ErrorRequestException("该产品已下架或删除"); - } - if(yxStoreSeckill.getStock() < cartNum){ - throw new ErrorRequestException("该产品库存不足"); - } - int seckillOrderCount = storeOrderService.count(new QueryWrapper() - .eq("uid", uid).eq("paid",1).eq("seckill_id",seckillId)); - if(yxStoreSeckill.getNum() <= seckillOrderCount || yxStoreSeckill.getNum() < cartNum){ - throw new ErrorRequestException("每人限购:"+yxStoreSeckill.getNum()+"件"); - } - - }else if(bargainId > 0){//砍价 - YxStoreBargain yxStoreBargain = storeBargainService.getBargain(bargainId); - if(ObjectUtil.isNull(yxStoreBargain)){ - throw new ErrorRequestException("该产品已下架或删除"); - } - if(yxStoreBargain.getStock() < cartNum){ - throw new ErrorRequestException("该产品库存不足"); - } - - }else{ - YxStoreProductQueryVo productQueryVo = productService - .getYxStoreProductById(productId); - if(ObjectUtil.isNull(productQueryVo)){ - throw new ErrorRequestException("该产品已下架或删除"); - } - - int stock = productService.getProductStock(productId,productAttrUnique); - if(stock < cartNum){ - throw new ErrorRequestException("该产品库存不足"+cartNum); - } - } - + checkProductStock(uid,productId,cartNum,productAttrUnique,combinationId,seckillId,bargainId); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("uid",uid).eq("type",type).eq("is_pay",0).eq("is_del",0) .eq("product_id",productId) @@ -365,6 +322,53 @@ public class YxStoreCartServiceImpl extends BaseServiceImpl 0){ + boolean isStock = storeCombinationService.judgeCombinationStock(combinationId + ,cartNum); + if(!isStock) throw new ErrorRequestException("该产品库存不足"); + + YxStoreCombination storeCombination = storeCombinationService.getCombination(combinationId); + if(ObjectUtil.isNull(storeCombination)) throw new ErrorRequestException("该产品已下架或删除"); + }else if(seckillId > 0){//秒杀 + YxStoreSeckill yxStoreSeckill = storeSeckillService.getSeckill(seckillId); + if(ObjectUtil.isNull(yxStoreSeckill)){ + throw new ErrorRequestException("该产品已下架或删除"); + } + if(yxStoreSeckill.getStock() < cartNum){ + throw new ErrorRequestException("该产品库存不足"); + } + int seckillOrderCount = storeOrderService.count(new QueryWrapper() + .eq("uid", uid).eq("paid",1).eq("seckill_id",seckillId)); + if(yxStoreSeckill.getNum() <= seckillOrderCount || yxStoreSeckill.getNum() < cartNum){ + throw new ErrorRequestException("每人限购:"+yxStoreSeckill.getNum()+"件"); + } + + }else if(bargainId > 0){//砍价 + YxStoreBargain yxStoreBargain = storeBargainService.getBargain(bargainId); + if(ObjectUtil.isNull(yxStoreBargain)){ + throw new ErrorRequestException("该产品已下架或删除"); + } + if(yxStoreBargain.getStock() < cartNum){ + throw new ErrorRequestException("该产品库存不足"); + } + + }else{ + YxStoreProductQueryVo productQueryVo = productService + .getYxStoreProductById(productId); + if(ObjectUtil.isNull(productQueryVo)){ + throw new ErrorRequestException("该产品已下架或删除"); + } + + int stock = productService.getProductStock(productId,productAttrUnique); + if(stock < cartNum){ + throw new ErrorRequestException(productQueryVo.getStoreName()+"库存不足"+cartNum); + } + } + + } }