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 90b3703b..655e4cb9 100644 --- a/framework/src/main/java/cn/lili/common/enums/ResultCode.java +++ b/framework/src/main/java/cn/lili/common/enums/ResultCode.java @@ -154,7 +154,7 @@ public enum ResultCode { * 购物车 */ CART_ERROR(30001, "读取结算页的购物车异常"), - CART_PINTUAN_NOT_EXIST_ERROR(30002, "拼团活动不存在错误"), + CART_PINTUAN_NOT_EXIST_ERROR(30002, "拼团活动已关闭,请稍后重试"), CART_PINTUAN_LIMIT_ERROR(30003, "购买数量超过拼团活动限制数量"), SHIPPING_NOT_APPLY(30005, "购物商品不支持当前收货地址配送"), @@ -449,9 +449,7 @@ public enum ResultCode { CUSTOM_WORDS_SECRET_KEY_ERROR(90002, "秘钥验证失败!"), CONNECT_NOT_EXIST(90000, "登录方式不存在!"), ELASTICSEARCH_INDEX_INIT_ERROR(90003, "索引初始化失败!"), - PURCHASE_ORDER_DEADLINE_ERROR(90004,"供求单,已超过报名截止时间") - - ; + PURCHASE_ORDER_DEADLINE_ERROR(90004, "供求单,已超过报名截止时间"); private final Integer code; private final String message; diff --git a/framework/src/main/java/cn/lili/modules/goods/service/GoodsSkuService.java b/framework/src/main/java/cn/lili/modules/goods/service/GoodsSkuService.java index a79e547c..022e7917 100644 --- a/framework/src/main/java/cn/lili/modules/goods/service/GoodsSkuService.java +++ b/framework/src/main/java/cn/lili/modules/goods/service/GoodsSkuService.java @@ -143,6 +143,13 @@ public interface GoodsSkuService extends IService { */ void updateGoodsSkuStatus(Goods goods); + /** + * 发送生成ES商品索引 + * + * @param goods 商品信息 + */ + void generateEs(Goods goods); + /** * 更新SKU库存 * diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java index 72fd03a7..ad617615 100644 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java @@ -497,7 +497,7 @@ public class GoodsSkuServiceImpl extends ServiceImpl i * * @param goods 商品信息 */ - private void generateEs(Goods goods) { + public void generateEs(Goods goods) { String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.GENERATOR_GOODS_INDEX.name(); //发送mq消息 rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(goods), RocketmqSendCallbackBuilder.commonCallback()); 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 35960d7a..52ef8c00 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 @@ -11,6 +11,7 @@ import cn.lili.common.utils.CurrencyUtil; import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.entity.enums.GoodsAuthEnum; import cn.lili.modules.goods.entity.enums.GoodsStatusEnum; +import cn.lili.modules.goods.service.GoodsService; import cn.lili.modules.goods.service.GoodsSkuService; import cn.lili.modules.member.entity.dos.MemberAddress; import cn.lili.modules.order.cart.entity.dto.MemberCouponDTO; @@ -36,6 +37,7 @@ import cn.lili.modules.promotion.entity.vos.PointsGoodsVO; import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivitySearchParams; import cn.lili.modules.promotion.service.*; import cn.lili.modules.search.entity.dos.EsGoodsIndex; +import cn.lili.modules.search.service.EsGoodsIndexService; import cn.lili.modules.search.service.EsGoodsSearchService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; @@ -92,6 +94,11 @@ public class CartServiceImpl implements CartService { */ @Autowired private EsGoodsSearchService esGoodsSearchService; + /** + * ES商品 + */ + @Autowired + private GoodsService goodsService; /** * 拼团 */ @@ -689,6 +696,8 @@ public class CartServiceImpl implements CartService { cartSkuVO.setUtilPrice(promotionGoods.getPrice()); cartSkuVO.setPurchasePrice(promotionGoods.getPrice()); } else { + //如果拼团活动被异常处理,则在这里安排mq重新写入商品索引 + goodsSkuService.generateEs(goodsService.getById(cartSkuVO.getGoodsSku().getGoodsId())); throw new ServiceException(ResultCode.CART_PINTUAN_NOT_EXIST_ERROR); } //检测拼团限购数量