From 109cbb50d48867083e1a2c746a7ebc3c95cf3569 Mon Sep 17 00:00:00 2001
From: zepengdev <lzpsmith@outlook.com>
Date: Thu, 26 Jun 2025 22:54:12 +0800
Subject: [PATCH] fix: 修正分页查询返回错误总数的问题

---
 oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreQueryCriteria.java |   34 +++++++++++++++++++++++++++++++---
 1 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreQueryCriteria.java
index 2d86a34..f2791d4 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreQueryCriteria.java
@@ -1,9 +1,11 @@
 package com.oying.modules.pc.store.domain.dto;
 
-import lombok.Data;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.util.DigestUtils;
 
 import java.io.Serializable;
+import java.util.StringJoiner;
 
 /**
  * @author lzp
@@ -15,9 +17,23 @@
     @ApiModelProperty(value = "商户ID", example = "1")
     private Long merchantId;
 
+    private Long storeId;
+
+    private Long platformCategoryId;
+
     private String storeName;
 
     private Integer status;
+
+    private String blurry;
+
+    private Double longitude; // 中心点经度
+
+    private Double latitude;  // 中心点纬度
+
+    private Integer radius = 10000; // 搜索半径(米)
+
+    private Integer limit = 20; // 返回数量限制
 
     @ApiModelProperty(value = "页码", example = "1")
     private Integer page = 1;
@@ -25,7 +41,19 @@
     @ApiModelProperty(value = "每页数据量", example = "10")
     private Integer size = 10;
 
-    @ApiModelProperty(value = "偏移量", hidden = true)
-    private long offset;
+    public String buildConditionCacheKey() {
+        StringJoiner baseKeyJoiner = new StringJoiner("|");
+        baseKeyJoiner.add("merchantId=" + merchantId);
+        baseKeyJoiner.add("storeId=" + storeId);
+        baseKeyJoiner.add("platformCategoryId=" + platformCategoryId);
+        baseKeyJoiner.add("storeName=" + storeName);
+        baseKeyJoiner.add("status=" + status);
+        baseKeyJoiner.add("blurry=" + blurry);
+        baseKeyJoiner.add("longitude=" + longitude);
+        baseKeyJoiner.add("latitude=" + latitude);
+        baseKeyJoiner.add("radius=" + radius);
+        // 使用MD5或SHA缩短键长度
+        return "store:search:page:" + DigestUtils.md5DigestAsHex(baseKeyJoiner.toString().getBytes());
+    }
 
 }

--
Gitblit v1.9.3