package com.oying.modules.pc.store.domain.dto;
|
|
import com.oying.utils.StringUtils;
|
import lombok.Data;
|
import org.springframework.util.DigestUtils;
|
|
import java.util.StringJoiner;
|
|
@Data
|
public class StoreCustomerQueryCriteria {
|
|
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());
|
}
|
|
}
|