diff --git a/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java b/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java index 367c7425..97dd9636 100644 --- a/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java +++ b/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java @@ -205,6 +205,8 @@ public class GoodsMessageListener implements RocketMQListener { for (String goodsId : JSONUtil.toList(goodsIdsJsonStr, String.class)) { goodsIndexService.deleteIndex(MapUtil.builder(new HashMap()).put("goodsId", goodsId).build()); } + + promotionService.removeByGoodsIds(goodsIdsJsonStr); } catch (Exception e) { log.error("删除商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e); } diff --git a/framework/src/main/java/cn/lili/modules/promotion/service/PromotionGoodsService.java b/framework/src/main/java/cn/lili/modules/promotion/service/PromotionGoodsService.java index 4aac7c38..d7f4a4ce 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/service/PromotionGoodsService.java +++ b/framework/src/main/java/cn/lili/modules/promotion/service/PromotionGoodsService.java @@ -149,6 +149,13 @@ public interface PromotionGoodsService extends IService { */ void deletePromotionGoods(List promotionIds); + /** + * 删除商品的促销 + * + * @param goodsIds 商品id + */ + void deletePromotionGoodsByGoods(List goodsIds); + /** * 根据参数删除促销商品 * diff --git a/framework/src/main/java/cn/lili/modules/promotion/service/PromotionService.java b/framework/src/main/java/cn/lili/modules/promotion/service/PromotionService.java index 8f8b5819..600fd7b9 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/service/PromotionService.java +++ b/framework/src/main/java/cn/lili/modules/promotion/service/PromotionService.java @@ -23,10 +23,16 @@ public interface PromotionService { /** * 根据商品索引获取当前商品索引的所有促销活动信息 * - * @param storeId 店铺id + * @param storeId 店铺id * @param goodsSkuId 商品skuId * @return 当前促销活动集合 */ Map getGoodsSkuPromotionMap(String storeId, String goodsSkuId); + /** + * 删除商品,则删除相关促销信息 + * + * @param goodsIdsJsonStr + */ + void removeByGoodsIds(String goodsIdsJsonStr); } \ No newline at end of file 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..c29ef27c 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 @@ -281,6 +281,13 @@ public class PromotionGoodsServiceImpl extends ServiceImpl goodsIds) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().in(PromotionGoods::getGoodsId, goodsIds); + this.remove(queryWrapper); + } + + /** * 根据参数删除促销商品 * diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java index b50c79ce..c976d88e 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java @@ -116,6 +116,10 @@ public class PromotionServiceImpl implements PromotionService { return promotionMap; } + @Override + public void removeByGoodsIds(String goodsIdsJsonStr) { + promotionGoodsService.deletePromotionGoods(Arrays.asList(goodsIdsJsonStr.split(","))); + } private void getGoodsCurrentSeckill(String esPromotionKey, PromotionGoods promotionGoods, Map promotionMap) { Seckill seckill = seckillService.getById(promotionGoods.getPromotionId());