From c466ff02844412184c6e032c82eeca18836b4e2d Mon Sep 17 00:00:00 2001
From: zepengdev <lzpsmith@outlook.com>
Date: Mon, 23 Jun 2025 12:06:37 +0800
Subject: [PATCH] refactor(StoreQueryService): 查询优化
---
oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreQueryServiceImpl.java | 20 +++++++++++++-------
1 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreQueryServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreQueryServiceImpl.java
index b8bc400..776807d 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreQueryServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreQueryServiceImpl.java
@@ -1,4 +1,5 @@
package com.oying.modules.pc.store.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.NumberUtil;
import com.oying.modules.pc.store.domain.Store;
@@ -39,11 +40,12 @@
if (total == null || total == 0) {
// 初始化缓存
List<Long> ids = storeMapper.queryStoreIds(criteria);
+ int index = 0;
for (Long id : ids) {
- redisTemplate.opsForZSet().add(setKey, id, 1);
+ redisTemplate.opsForZSet().add(setKey, id, index++);
}
// 设置缓存过期时间
- redisTemplate.expire(setKey, 30, TimeUnit.MINUTES);
+ redisTemplate.expire(setKey, 15, TimeUnit.MINUTES);
total = (long) ids.size();
}
@@ -51,13 +53,17 @@
int current = (criteria.getPage() == null || criteria.getPage() < 1) ? 1 : criteria.getPage();
int offset = (current - 1) * criteria.getSize();
int end = offset + criteria.getSize() - 1;
- Set<Long> storeIds = Optional.ofNullable(redisTemplate.opsForZSet()
- .range(setKey, offset, end))
+ Set<Long> storeIds = Optional.ofNullable(redisTemplate.opsForZSet().range(setKey, offset, end))
.orElse(Collections.emptySet())
- .stream().map(i-> (Long) i).collect(Collectors.toSet());
+ .stream()
+ .map(i-> (Long) i)
+ .collect(Collectors.toSet());
- // 3. 获取详情数据
- List<Store> stores = Optional.ofNullable(storeService.listByIds(storeIds)).orElse(ListUtil.toList());
+ // 3. 获取详情数据]
+ List<Store> stores = Optional.of(storeIds)
+ .filter(CollectionUtil::isNotEmpty)
+ .map(storeService::listByIds)
+ .orElse(ListUtil.toList());
page.setContent(stores);
page.setTotalElements(total);
--
Gitblit v1.9.3