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.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; 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.time.ZonedDateTime; /** * @author lzp * @date 2025-04-21 **/ @Data @TableName("pc_store") public class Store implements Serializable { @TableId(value = "store_id", type = IdType.AUTO) @ApiModelProperty(value = "唯一标识") 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 = "状态:1000-草稿 1002-正常 1003-暂停营业 1004-关闭") private Integer status; @NotBlank @ApiModelProperty(value = "店铺logo图片") private Long logoImageId; @NotBlank @ApiModelProperty(value = "店铺封面图") private Long coverImageId; @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; @NotNull @ApiModelProperty(value = "创建人") private Long createBy; @NotNull @ApiModelProperty(value = "创建日期") private ZonedDateTime createTime; @NotNull @ApiModelProperty(value = "修改人") private Long updateBy; @NotNull @ApiModelProperty(value = "修改时间") private ZonedDateTime updateTime; public void copy(Store source) { BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true)); } }