From 7504b809da1a6188dfa03c06be3eb0f0a9fd0c8e Mon Sep 17 00:00:00 2001 From: zepengdev <lzpsmith@outlook.com> Date: Mon, 16 Jun 2025 21:39:25 +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