package cn.lili.modules.store.entity.dos; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.lili.common.validation.Mobile; import cn.lili.common.validation.Phone; import cn.lili.modules.store.entity.dto.AdminStoreApplyDTO; import cn.lili.mybatis.BaseIdEntity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.Email; import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; import java.util.Date; /** * 店铺详细 * * @author pikachu * @since 2020-02-18 15:18:56 */ @Data @TableName("li_store_detail") @ApiModel(value = "店铺详细") @NoArgsConstructor public class StoreDetail extends BaseIdEntity { private static final long serialVersionUID = 4949782642253898816L; @NotBlank(message = "店铺不能为空") @ApiModelProperty(value = "店铺id") private String storeId; @Size(min = 2, max = 200, message = "店铺名称长度为2-200位") @NotBlank(message = "店铺名称不能为空") @ApiModelProperty(value = "店铺名称") private String storeName; @NotBlank(message = "公司名称不能为空") @Size(min = 2, max = 100, message = "公司名称错误") @ApiModelProperty(value = "公司名称") private String companyName; @NotBlank(message = "公司地址不能为空") @Size(min = 1, max = 200, message = "公司地址,长度为1-200字符") @ApiModelProperty(value = "公司地址") private String companyAddress; @ApiModelProperty(value = "公司地址地区Id") private String companyAddressIdPath; @ApiModelProperty(value = "公司地址地区") private String companyAddressPath; @Mobile @ApiModelProperty(value = "公司电话") private String companyPhone; @Email @ApiModelProperty(value = "电子邮箱") private String companyEmail; @Min(value = 1, message = "员工总数,至少一位") @ApiModelProperty(value = "员工总数") private Integer employeeNum; @Min(value = 1, message = "注册资金,至少一位") @ApiModelProperty(value = "注册资金") private Double registeredCapital; @NotBlank(message = "联系人姓名为空") @Length(min = 2, max = 20, message = "联系人长度为:2-20位字符") @ApiModelProperty(value = "联系人姓名") private String linkName; @NotBlank(message = "手机号不能为空") @Phone @ApiModelProperty(value = "联系人电话") private String linkPhone; @Size(min = 18, max = 18, message = "营业执照长度为18位字符") @ApiModelProperty(value = "营业执照号") private String licenseNum; @ApiModelProperty(value = "法定经营范围") private String scope; @NotBlank(message = "营业执照电子版不能为空") @ApiModelProperty(value = "营业执照电子版") private String licencePhoto; @NotBlank(message = "法人姓名不能为空") @Size(min = 2, max = 20, message = "法人姓名长度为2-20位字符") @ApiModelProperty(value = "法人姓名") private String legalName; @NotBlank(message = "法人身份证不能为空") @Size(min = 18, max = 18, message = "法人身份证号长度为18位") @ApiModelProperty(value = "法人身份证") private String legalId; @NotBlank(message = "法人身份证不能为空") @ApiModelProperty(value = "法人身份证照片") private String legalPhoto; @Size(min = 1, max = 200, message = "结算银行开户行名称长度为1-200位") @NotBlank(message = "结算银行开户行名称不能为空") @ApiModelProperty(value = "结算银行开户行名称") private String settlementBankAccountName; @Size(min = 1, max = 200, message = "结算银行开户账号长度为1-200位") @NotBlank(message = "结算银行开户账号不能为空") @ApiModelProperty(value = "结算银行开户账号") private String settlementBankAccountNum; @Size(min = 1, max = 200, message = "结算银行开户支行名称长度为1-200位") @NotBlank(message = "结算银行开户支行名称不能为空") @ApiModelProperty(value = "结算银行开户支行名称") private String settlementBankBranchName; @Size(min = 1, max = 50, message = "结算银行支行联行号长度为1-200位") @NotBlank(message = "结算银行支行联行号不能为空") @ApiModelProperty(value = "结算银行支行联行号") private String settlementBankJointName; @NotBlank(message = "店铺经营类目不能为空") @ApiModelProperty(value = "店铺经营类目") private String goodsManagementCategory; @ApiModelProperty(value = "结算周期") private String settlementCycle; @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "结算日", hidden = true) private Date settlementDay; @ApiModelProperty(value = "库存预警数量") private Integer stockWarning; /** * 同城配送达达店铺编码 */ @ApiModelProperty(value = "同城配送达达店铺编码") @TableField(value = "dd_code") private String ddCode; //店铺退货收件地址 @ApiModelProperty(value = "收货人姓名") private String salesConsigneeName; @ApiModelProperty(value = "收件人手机") private String salesConsigneeMobile; @ApiModelProperty(value = "地址Id, ','分割") private String salesConsigneeAddressId; @ApiModelProperty(value = "地址名称, ','分割") private String salesConsigneeAddressPath; @ApiModelProperty(value = "详细地址") private String salesConsigneeDetail; //店铺发货地址 @ApiModelProperty(value = "发货人姓名") private String salesConsignorName; @ApiModelProperty(value = "发件人手机") private String salesConsignorMobile; @ApiModelProperty(value = "发件人地址Id, ','分割") private String salesConsignorAddressId; @ApiModelProperty(value = "发件人地址名称, ','分割") private String salesConsignorAddressPath; @ApiModelProperty(value = "发件人详细地址") private String salesConsignorDetail; public StoreDetail(Store store, AdminStoreApplyDTO adminStoreApplyDTO) { this.storeId = store.getId(); //设置店铺公司信息、设置店铺银行信息、设置店铺其他信息 BeanUtil.copyProperties(adminStoreApplyDTO, this); this.settlementDay = DateUtil.date(); this.stockWarning = 10; } }