zepengdev
2025-07-14 43315000b2840313a5aff96bf314b3c061e4616d
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,25 @@
    @ApiModelProperty(value = "商户ID", example = "1")
    private Long merchantId;
    private Long storeId;
    private Long platformCategoryId;
    private String storeName;
    private Integer status;
    private Integer businessStatus;
    private String blurry;
    private Double longitude; // 中心点经度
    private Double latitude;  // 中心点纬度
    private Integer radius = 50000000; // 搜索半径(米)
    private Integer limit = 20; // 返回数量限制
    @ApiModelProperty(value = "页码", example = "1")
    private Integer page = 1;
@@ -25,7 +43,20 @@
    @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("businessStatus=" + businessStatus);
        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());
    }
}