From 90a2ec9719019f1361f04472f5b863dbff086de2 Mon Sep 17 00:00:00 2001 From: Chopper Date: Tue, 6 Sep 2022 19:22:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E5=88=A0=E9=99=A4=E5=88=99?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=9B=B8=E5=85=B3=E4=BF=83=E9=94=80=E5=95=86?= =?UTF-8?q?=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/lili/listener/GoodsMessageListener.java | 2 ++ .../modules/promotion/service/PromotionGoodsService.java | 7 +++++++ .../lili/modules/promotion/service/PromotionService.java | 8 +++++++- .../promotion/serviceimpl/PromotionGoodsServiceImpl.java | 7 +++++++ .../promotion/serviceimpl/PromotionServiceImpl.java | 4 ++++ 5 files changed, 27 insertions(+), 1 deletion(-) 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());