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