xin
5 days ago 982313135d1c239fe3b20e4c5664781f92d40aca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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());
    }
 
}