update framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java.

fix: 修复商品索引无效促销活动清理逻辑,方法(executeCleanInvalidPromotions)
- 修复分页查询起始索引错误,从1改为0,避免跳过第一页数据
- 修复促销活动清洗后未同步更新到索引的问题,清洗后的promotionMap需重新序列化并设置回goodsIndex

Signed-off-by: 羚羊跳 <zxc2399897@vip.qq.com>
This commit is contained in:
羚羊跳
2025-09-11 08:49:49 +00:00
committed by Gitee
parent 7627614284
commit 93a45319ac

View File

@@ -743,7 +743,7 @@ public class EsGoodsIndexServiceImpl extends BaseElasticsearchService implements
}
private void executeCleanInvalidPromotions() {
for (int i = 1; ; i++) {
for (int i = 0; ; i++) {
org.springframework.data.domain.Page<EsGoodsIndex> all = goodsIndexRepository.findAll(PageRequest.of(i, 1000));
if (all.isEmpty()) {
break;
@@ -758,6 +758,9 @@ public class EsGoodsIndexServiceImpl extends BaseElasticsearchService implements
BasePromotions promotion = promotionJson.toBean(BasePromotions.class);
return promotion.getEndTime() != null && promotion.getEndTime().getTime() < DateUtil.date().getTime();
});
// 更新回 goodsIndex 对象
goodsIndex.setPromotionMapJson(JSONUtil.toJsonStr(promotionMap));
}
}
goodsIndexRepository.saveAll(all);