diff --git a/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java b/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java index 45c1ea98..19a1bab4 100644 --- a/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java +++ b/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java @@ -376,20 +376,18 @@ public class GoodsMessageListener implements RocketMQListener { */ private void generatorGoodsIndex(Goods goods, List goodsSkuList) { int skuSource = 100; + List esGoodsIndices = new ArrayList<>(); for (GoodsSku goodsSku : goodsSkuList) { - EsGoodsIndex esGoodsOld = goodsIndexService.findById(goodsSku.getId()); EsGoodsIndex goodsIndex = this.settingUpGoodsIndexData(goods, goodsSku); goodsIndex.setSkuSource(skuSource--); log.info("goodsSku:{}", goodsSku); - log.info("esGoodsOld:{}", esGoodsOld); //如果商品库存不为0,并且es中有数据 - if (goodsSku.getQuantity() > 0 && esGoodsOld == null) { + if (goodsSku.getQuantity() > 0) { log.info("生成商品索引 {}", goodsIndex); - this.goodsIndexService.addIndex(goodsIndex); - } else if (goodsSku.getQuantity() > 0 && esGoodsOld != null) { - goodsIndexService.updateIndex(goodsIndex); + esGoodsIndices.add(goodsIndex); } } + this.goodsIndexService.addIndex(esGoodsIndices); } private EsGoodsIndex settingUpGoodsIndexData(Goods goods, GoodsSku goodsSku) { diff --git a/framework/src/main/java/cn/lili/modules/search/service/EsGoodsIndexService.java b/framework/src/main/java/cn/lili/modules/search/service/EsGoodsIndexService.java index e5a93839..aad7893e 100644 --- a/framework/src/main/java/cn/lili/modules/search/service/EsGoodsIndexService.java +++ b/framework/src/main/java/cn/lili/modules/search/service/EsGoodsIndexService.java @@ -38,6 +38,13 @@ public interface EsGoodsIndexService { */ void addIndex(EsGoodsIndex goods); + /** + * 添加商品索引 + * + * @param goods 商品索引信息 + */ + void addIndex(List goods); + /** * 更新商品索引 * diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java index c78a96af..0a02ea2a 100644 --- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java @@ -210,6 +210,20 @@ public class EsGoodsIndexServiceImpl extends BaseElasticsearchService implements } } + /** + * 添加商品索引 + * + * @param goods 商品索引信息 + */ + @Override + public void addIndex(List goods) { + try { + goodsIndexRepository.saveAll(goods); + } catch (Exception e) { + log.error("批量为商品生成索引异常", e); + } + } + @Override public void updateIndex(EsGoodsIndex goods) { goodsIndexRepository.save(goods);