zepengdev
4 days ago fc0128242f812e476470dc9bada901d36ae09daf
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
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.fasterxml.jackson.annotation.JsonFormat;
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.Date;
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 String contactPhone;
 
    @ApiModelProperty(value = "营业开始时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
    private LocalTime openTime;
 
    @ApiModelProperty(value = "营业结束时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
    private LocalTime closeTime;
 
    @ApiModelProperty(value = "营业状态")
    private Integer businessStatus;
 
    @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;
 
    @ApiModelProperty(value = "审核状态")
    private Integer auditStatus;
 
    @TableField(exist = false)
    @ApiModelProperty(value = "评分")
    private Double score = 0d;
 
    @ApiModelProperty(value = "包装费用")
    private BigDecimal packagingFee;
 
    @ApiModelProperty(value = "配送费用")
    private BigDecimal deliveryFee;
 
    @ApiModelProperty(value = "起送金额")
    private BigDecimal deliveryMinimum;
 
    @TableField(exist = false)
    @ApiModelProperty(value = "配送距离")
    private Integer deliveryDuration = 0;
 
    @TableField(exist = false)
    @ApiModelProperty(value = "配送时长")
    private Integer deliveryTime = 0;
 
    @TableField(exist = false)
    @ApiModelProperty(value = "销量")
    private Integer totalUnitsSold = 0;
 
    @TableField(exist = false)
    @ApiModelProperty(value = "月销售量")
    private Integer monthlyUnitsSold = 0;
 
    @NotNull
    @ApiModelProperty(value = "版本号")
    private Long version;
 
    @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));
    }
}