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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package com.oying.modules.pc.store.domain;
 
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.oying.base.BaseEntity;
import com.oying.modules.pc.product.domain.Product;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.geo.Point;
 
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalTime;
import java.util.List;
 
/**
 * @author lzp
 * @date 2025-04-21
 **/
@Getter
@Setter
@TableName("pc_store")
public class Store extends BaseEntity implements Serializable {
 
    @TableId(value = "store_id", type = IdType.AUTO)
    @ApiModelProperty(value = "店铺ID")
    private Long storeId;
 
    @NotNull
    @ApiModelProperty(value = "商户ID")
    private Long merchantId;
 
    @NotNull
    @ApiModelProperty(value = "平台类目")
    private Long platformCategoryId;
 
    @NotNull
    @ApiModelProperty(value = "店铺类型:1-自营 2-加盟 3-第三方")
    private Integer storeType;
 
    @ApiModelProperty(value = "店铺编码")
    private String storeCode;
 
    @NotBlank
    @ApiModelProperty(value = "店铺名称")
    private String storeName;
 
    @ApiModelProperty(value = "经营范围")
    private String businessScope;
 
    @NotNull
    @ApiModelProperty(value = "状态")
    private Integer status;
 
    @ApiModelProperty(value = "店铺logo图片")
    private Long logoImageId;
 
    @ApiModelProperty(value = "店铺logo图片Url")
    private String logoImageUrl;
 
    @ApiModelProperty(value = "店铺封面图")
    private Long coverImageId;
 
    @ApiModelProperty(value = "店铺封面图Url")
    private String coverImageUrl;
 
    @ApiModelProperty(value = "店铺描述")
    private String description;
 
    @ApiModelProperty(value = "店铺标签,逗号分隔")
    private String tags;
 
    @ApiModelProperty(value = "配送费用")
    private BigDecimal deliveryFee;
 
    @ApiModelProperty(value = "起送金额")
    private BigDecimal deliveryMinimum;
 
    @ApiModelProperty(value = "联系电话")
    private String contactPhone;
 
    @ApiModelProperty(value = "营业开始时间")
    private LocalTime openTime;
 
    @ApiModelProperty(value = "营业结束时间")
    private LocalTime closeTime;
 
    @ApiModelProperty(value = "省级代码")
    private String provinceCode;
 
    @ApiModelProperty(value = "市级代码")
    private String cityCode;
 
    @ApiModelProperty(value = "区/县级代码")
    private String districtCode;
 
    @ApiModelProperty(value = "详细地址")
    private String address;
 
    @ApiModelProperty(value = "经度")
    private Double longitude;
 
    @ApiModelProperty(value = "纬度")
    private Double latitude;
 
    @ApiModelProperty(value = "GeoHash编码")
    private String geoHash;
 
    @ApiModelProperty(value = "空间坐标")
    private Point geoPoint;
 
    @ApiModelProperty(value = "坐标系:WGS84/GCJ02/BD09/CGCS2000")
    private String coordinateSystem;
 
    @ApiModelProperty(value = "营业半径(米)")
    private Integer radius;
 
    @ApiModelProperty(value = "是否支持退货")
    private Integer returns;
 
    @ApiModelProperty(value = "是否支持自提")
    private Integer selfPickup;
 
    @NotNull
    @ApiModelProperty(value = "版本号")
    private Long version;
 
    @TableField(exist = false)
    @ApiModelProperty(value = "评分")
    private Double score = 0d;
 
    @TableField(exist = false)
    @ApiModelProperty(value = "配送距离")
    private Integer deliveryDuration = 0;
 
    @TableField(exist = false)
    @ApiModelProperty(value = "月销售量")
    private Integer monthlySales = 0;
 
    @TableField(exist = false)
    @ApiModelProperty(value = "资质")
    private List<StoreQualification> qualifications;
 
    @TableField(exist = false)
    @ApiModelProperty(value = "商品")
    private List<Product> products;
 
    public void copy(Store source) {
        BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
    }
}