From 50c7e20ba6b7ade5c57bb5ddd8486ce7375cc220 Mon Sep 17 00:00:00 2001 From: misworga831 Date: Thu, 23 Nov 2023 11:16:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=EF=BC=8C=E6=B2=A1=E6=9C=89=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=95=86=E5=93=81=E4=BF=83=E9=94=80=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/AbstractPromotionsService.java | 7 +++++ .../AbstractPromotionsServiceImpl.java | 26 ++++++++++++------- .../serviceimpl/CouponServiceImpl.java | 21 ++++++++++++++- 3 files changed, 43 insertions(+), 11 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/promotion/service/AbstractPromotionsService.java b/framework/src/main/java/cn/lili/modules/promotion/service/AbstractPromotionsService.java index 18a65b7f3..59096ba35 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/service/AbstractPromotionsService.java +++ b/framework/src/main/java/cn/lili/modules/promotion/service/AbstractPromotionsService.java @@ -121,6 +121,13 @@ public interface AbstractPromotionsService extends ISe */ void updateEsGoodsIndex(T promotions); + /** + * 发送更新商品索引消息 + * + * @param promotions 促销实体 + */ + void sendUpdateEsGoodsMsg(T promotions); + /** * 当前促销类型 * diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/AbstractPromotionsServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/AbstractPromotionsServiceImpl.java index a92abfb55..3eb688cfc 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/AbstractPromotionsServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/AbstractPromotionsServiceImpl.java @@ -255,19 +255,25 @@ public abstract class AbstractPromotionsServiceImpl, T e //删除商品促销消息 applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("删除商品促销事件", rocketmqCustomProperties.getGoodsTopic(), GoodsTagsEnum.DELETE_GOODS_INDEX_PROMOTIONS.name(), JSONUtil.toJsonStr(build))); } else { - - String esPromotionKey = this.getPromotionType().name() + "-" + promotions.getId(); - Map map = new HashMap<>(); - // es促销key - map.put("esPromotionKey", esPromotionKey); - // 促销类型全路径名 - map.put("promotionsType", promotions.getClass().getName()); - // 促销实体 - map.put("promotions", promotions); - applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("更新商品索引促销事件", rocketmqCustomProperties.getGoodsTopic(), GoodsTagsEnum.UPDATE_GOODS_INDEX_PROMOTIONS.name(), JSONUtil.toJsonStr(map))); + this.sendUpdateEsGoodsMsg(promotions); } } + @Override + @Transactional(rollbackFor = Exception.class) + public void sendUpdateEsGoodsMsg(T promotions) { + + String esPromotionKey = this.getPromotionType().name() + "-" + promotions.getId(); + Map map = new HashMap<>(); + // es促销key + map.put("esPromotionKey", esPromotionKey); + // 促销类型全路径名 + map.put("promotionsType", promotions.getClass().getName()); + // 促销实体 + map.put("promotions", promotions); + applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("更新商品索引促销事件", rocketmqCustomProperties.getGoodsTopic(), GoodsTagsEnum.UPDATE_GOODS_INDEX_PROMOTIONS.name(), JSONUtil.toJsonStr(map))); + } + @Override public boolean allowExistSame() { return false; diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java index 88259b666..7e24ed944 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java @@ -1,10 +1,13 @@ package cn.lili.modules.promotion.serviceimpl; +import cn.hutool.core.map.MapBuilder; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.json.JSONUtil; import cn.lili.common.enums.PromotionTypeEnum; import cn.lili.common.enums.ResultCode; +import cn.lili.common.event.TransactionCommitSendMQEvent; import cn.lili.common.exception.ServiceException; +import cn.lili.common.properties.RocketmqCustomProperties; import cn.lili.common.utils.DateUtil; import cn.lili.common.vo.PageVO; import cn.lili.modules.goods.entity.dos.GoodsSku; @@ -24,15 +27,18 @@ import cn.lili.modules.promotion.mapper.CouponMapper; import cn.lili.modules.promotion.service.*; import cn.lili.modules.promotion.tools.PromotionTools; import cn.lili.mybatis.util.PageUtil; +import cn.lili.rocketmq.tags.GoodsTagsEnum; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -70,6 +76,12 @@ public class CouponServiceImpl extends AbstractPromotionsServiceImpl build = MapBuilder.create().put("promotionKey", this.getPromotionType() + "-" + promotions.getId()).put("scopeId", promotions.getScopeId()).build(); + //删除商品促销消息 + applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("删除商品促销事件", rocketmqCustomProperties.getGoodsTopic(), GoodsTagsEnum.DELETE_GOODS_INDEX_PROMOTIONS.name(), JSONUtil.toJsonStr(build))); + } else { + super.sendUpdateEsGoodsMsg(promotions); + } } @Override