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