diff --git a/framework/src/main/java/cn/lili/common/enums/ResultCode.java b/framework/src/main/java/cn/lili/common/enums/ResultCode.java index e6fa993c..e871846b 100644 --- a/framework/src/main/java/cn/lili/common/enums/ResultCode.java +++ b/framework/src/main/java/cn/lili/common/enums/ResultCode.java @@ -253,6 +253,7 @@ public enum ResultCode { */ PROMOTION_GOODS_NOT_EXIT(40000, "当前促销商品不存在!"), PROMOTION_GOODS_QUANTITY_NOT_EXIT(40020, "当前促销商品库存不足!"), + PROMOTION_GOODS_DO_NOT_JOIN_WHOLESALE(40050, "批发商品无法参加促销"), PROMOTION_SAME_ACTIVE_EXIST(40001, "活动时间内已存在同类活动,请选择关闭、删除当前时段的活动"), PROMOTION_START_TIME_ERROR(40002, "活动起始时间不能小于当前时间"), PROMOTION_END_TIME_ERROR(40003, "活动结束时间不能小于当前时间"), diff --git a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java index 3a45ded2..f6a3fe26 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java @@ -419,7 +419,7 @@ public class CartServiceImpl implements CartService { cartSkuVO.setNum(num); } - if (cartSkuVO.getNum() > 99) { + if (cartSkuVO.getGoodsSku() != null && !GoodsSalesModeEnum.WHOLESALE.name().equals(cartSkuVO.getGoodsSku().getSalesModel()) && cartSkuVO.getNum() > 99) { cartSkuVO.setNum(99); } } diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionGoodsServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionGoodsServiceImpl.java index 1eda7644..cb3c1d37 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionGoodsServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionGoodsServiceImpl.java @@ -5,8 +5,11 @@ import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import cn.lili.common.enums.PromotionTypeEnum; +import cn.lili.common.enums.ResultCode; +import cn.lili.common.exception.ServiceException; import cn.lili.common.vo.PageVO; import cn.lili.modules.goods.entity.dos.GoodsSku; +import cn.lili.modules.goods.entity.enums.GoodsSalesModeEnum; import cn.lili.modules.goods.entity.vos.GoodsVO; import cn.lili.modules.goods.service.GoodsService; import cn.lili.modules.goods.service.GoodsSkuService; @@ -313,6 +316,40 @@ public class PromotionGoodsServiceImpl extends ServiceImpl entityList) { + for (PromotionGoods promotionGoods : entityList) { + this.checkGoodsSku(promotionGoods.getSkuId()); + } + return super.saveBatch(entityList); + } + + @Override + public boolean saveOrUpdateBatch(Collection entityList) { + for (PromotionGoods promotionGoods : entityList) { + this.checkGoodsSku(promotionGoods.getSkuId()); + } + return super.saveOrUpdateBatch(entityList); + } + + /** + * 检查是否为不能参加促销活动的商品 + * + * @param skuId 商品skuId + */ + private void checkGoodsSku(String skuId) { + GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(skuId); + if (goodsSku != null && GoodsSalesModeEnum.WHOLESALE.name().equals(goodsSku.getSalesModel())) { + throw new ServiceException(ResultCode.PROMOTION_GOODS_DO_NOT_JOIN_WHOLESALE, goodsSku.getGoodsName()); + } + } + private void setGoodsPromotionInfo(GoodsSku dataSku, Map.Entry promotionInfo) { JSONObject promotionsObj = JSONUtil.parseObj(promotionInfo.getValue()); PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams();