package com.oying.modules.pc.store.domain.dto;
|
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
import org.springframework.util.DigestUtils;
|
|
import java.io.Serializable;
|
import java.util.StringJoiner;
|
|
/**
|
* @author lzp
|
* @date 2025-04-22
|
**/
|
@Data
|
public class StoreQueryCriteria implements Serializable {
|
|
@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;
|
|
@ApiModelProperty(value = "每页数据量", example = "10")
|
private Integer size = 10;
|
|
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());
|
}
|
|
}
|