From 4a40342c20ae4fb134917e370c5fda2a4e394309 Mon Sep 17 00:00:00 2001
From: zepengdev <lzpsmith@outlook.com>
Date: Tue, 17 Jun 2025 16:00:42 +0800
Subject: [PATCH] fix(store):修复店铺分页查询异常
---
oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductMerchantServiceImpl.java | 4 ++--
oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreQueryServiceImpl.java | 14 ++++++++------
oying-system/src/main/resources/mapper/pc/product/ProductMapper.xml | 2 +-
oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java | 5 +----
4 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductMerchantServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductMerchantServiceImpl.java
index 1248406..7540a58 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductMerchantServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductMerchantServiceImpl.java
@@ -129,7 +129,7 @@
productImageService.batchUpdate(request.getUpdatedImages());
}
if (CollectionUtil.isNotEmpty(request.getNewImages())) {
- List<ProductImageCreateRequest> newImages = request.getNewImages().stream().peek(i->{i.setProductId(request.getProductId());}).collect(Collectors.toList());
+ List<ProductImageCreateRequest> newImages = request.getNewImages().stream().peek(i-> i.setProductId(request.getProductId())).collect(Collectors.toList());
productImageService.batchCreate(newImages);
}
}
@@ -142,7 +142,7 @@
productLabelService.batchUpdate(request.getUpdatedLabels());
}
if (CollectionUtil.isNotEmpty(request.getNewLabels())) {
- List<ProductLabel> newLabels = request.getNewLabels().stream().peek(i->{i.setProductId(request.getProductId());}).collect(Collectors.toList());
+ List<ProductLabel> newLabels = request.getNewLabels().stream().peek(i-> i.setProductId(request.getProductId())).collect(Collectors.toList());
productLabelService.batchCreate(newLabels);
}
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java
index 3208951..3a12592 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java
@@ -6,9 +6,6 @@
import com.oying.modules.pc.product.domain.enums.ProductStatusEnum;
import com.oying.modules.pc.product.service.ProductService;
import com.oying.modules.pc.store.domain.Store;
-import com.oying.modules.pc.store.domain.StoreQualification;
-import com.oying.modules.pc.store.domain.dto.StoreCustomerDetailDto;
-import com.oying.modules.pc.store.domain.dto.StoreQualificationQueryCriteria;
import com.oying.modules.pc.store.domain.dto.StoreQueryCriteria;
import com.oying.modules.pc.store.service.StoreQualificationService;
import com.oying.modules.pc.store.service.StoreQueryService;
@@ -54,7 +51,7 @@
for (Store store : stores) {
store.setProducts(this.getProductsByStoreId(store.getStoreId()));
}
- return ResponseEntity.ok(R.success(stores));
+ return ResponseEntity.ok(R.success(pagedStores));
}
@GetMapping(value = "/{storeId}")
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 a50b69c..b8bc400 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,5 +1,5 @@
package com.oying.modules.pc.store.service.impl;
-
+import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.NumberUtil;
import com.oying.modules.pc.store.domain.Store;
import com.oying.modules.pc.store.domain.dto.StoreQueryCriteria;
@@ -40,7 +40,7 @@
// 初始化缓存
List<Long> ids = storeMapper.queryStoreIds(criteria);
for (Long id : ids) {
- redisTemplate.opsForZSet().add(setKey, 1, id);
+ redisTemplate.opsForZSet().add(setKey, id, 1);
}
// 设置缓存过期时间
redisTemplate.expire(setKey, 30, TimeUnit.MINUTES);
@@ -48,14 +48,16 @@
}
// 2. 从ZSET获取分页ID
- Long offset = NumberUtil.mul(criteria.getPage(), criteria.getSize()).longValue();
- long end = NumberUtil.add(offset, criteria.getSize()).longValue();
+ 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 - 1)).orElse(Collections.emptySet())
+ .range(setKey, offset, end))
+ .orElse(Collections.emptySet())
.stream().map(i-> (Long) i).collect(Collectors.toSet());
// 3. 获取详情数据
- List<Store> stores = storeService.listByIds(storeIds);
+ List<Store> stores = Optional.ofNullable(storeService.listByIds(storeIds)).orElse(ListUtil.toList());
page.setContent(stores);
page.setTotalElements(total);
diff --git a/oying-system/src/main/resources/mapper/pc/product/ProductMapper.xml b/oying-system/src/main/resources/mapper/pc/product/ProductMapper.xml
index 924119b..209639f 100644
--- a/oying-system/src/main/resources/mapper/pc/product/ProductMapper.xml
+++ b/oying-system/src/main/resources/mapper/pc/product/ProductMapper.xml
@@ -60,10 +60,10 @@
and active = #{criteria.active}
</if>
</where>
+ order by product_id desc
<if test="criteria.limit != null">
limit #{criteria.limit}
</if>
- order by product_id desc
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3