oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCustomerQueryCriteria.java
@@ -1,16 +1,49 @@
package com.oying.modules.pc.store.domain.dto;
import com.oying.utils.StringUtils;
import lombok.Data;
import org.springframework.util.DigestUtils;
import javax.validation.constraints.NotNull;
import java.util.StringJoiner;
@Data
public class StoreCustomerQueryCriteria {
    private Long StoreId;
    private Long storeId;
    private Long platformCategoryId;
    private String blurry;
    private Double longitude; // 中心点经度
    private Double latitude;  // 中心点纬度
    private Integer radius = 10000; // 搜索半径(米)
    private Integer limit = 20; // 返回数量限制
    private Integer page = 1;
    private Integer size = 10;
    public String buildConditionCacheKey() {
        StringJoiner baseKeyJoiner = new StringJoiner("|");
        if (platformCategoryId != null) {
            baseKeyJoiner.add("platformCategoryId=" + platformCategoryId);
        }
        if (StringUtils.isNotEmpty(blurry)) {
            baseKeyJoiner.add("blurry=" + blurry);
        }
        if (longitude != null && latitude != null) {
            baseKeyJoiner.add("longitude=" + longitude);
            baseKeyJoiner.add("latitude=" + latitude);
        }
        if (StringUtils.isNotEmpty(blurry)) {
            baseKeyJoiner.add("radius=" + radius);
        }
        // 使用MD5或SHA缩短键长度
        return "store:search:page:" + DigestUtils.md5DigestAsHex(baseKeyJoiner.toString().getBytes());
    }
}