罗元桥
2021-09-26 931ea9dcdf62ea348f1811b9faf95d07ab1c1ac8
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientMerchantDTO.java
New file
@@ -0,0 +1,132 @@
package com.panzhihua.common.model.dtos.community.convenient;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.Length;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panzhihua.common.enums.MerchantBusinessPeriod;
import com.panzhihua.common.validated.AddGroup;
import com.panzhihua.common.validated.PutGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @title: ConvenientMerchantDTO
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 新增/编辑便民服务商家
 * @author: hans
 * @date: 2021/09/15 17:18
 */
@Data
@ApiModel("新增/编辑便民服务商家")
public class ConvenientMerchantDTO {
    @ApiModelProperty("便民服务商家ID")
    @NotNull(groups = {PutGroup.class}, message = "便民服务商家ID不能为空")
    private Long id;
    @ApiModelProperty("商家名称")
    @NotBlank(groups = {AddGroup.class}, message = "商家名称不能为空")
    @Length(groups = {AddGroup.class}, max = 25, message = "商家名称最多支持25个字符")
    private String name;
    @ApiModelProperty("商家logo")
    private String logo;
    @ApiModelProperty("联系人")
    @NotBlank(groups = {AddGroup.class}, message = "联系人不能为空")
    private String contacts;
    @ApiModelProperty("负责人身份证号")
    @Pattern(groups = {AddGroup.class}, message = "请输入18位有效身份证号码", regexp = "(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)")
    private String idCard;
    @ApiModelProperty("咨询电话")
    @Pattern(groups = {AddGroup.class}, message = "咨询电话格式错误", regexp = "(1[3|4|5|7|8][0-9]\\d{8})|(\\d{3}-\\d{8}|\\d{4}-\\d{7})")
    private String phone;
    @ApiModelProperty("商家地址")
    @NotBlank(groups = {AddGroup.class}, message = "商家地址不能为空")
    private String address;
    @ApiModelProperty("纬度")
    @NotBlank(groups = {AddGroup.class}, message = "纬度不能为空")
    private String lat;
    @ApiModelProperty("经度")
    @NotBlank(groups = {AddGroup.class}, message = "经度不能为空")
    private String lon;
    @ApiModelProperty("营业开始时间")
    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
    @NotNull(groups = {AddGroup.class}, message = "营业开始时间不能为空")
    private Date beginAt;
    @ApiModelProperty("营业截至时间")
    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
    @NotNull(groups = {AddGroup.class}, message = "营业截至时间不能为空")
    private Date endAt;
    @ApiModelProperty(value = "营业周期", allowableValues = "EVERY_DAY,WEEKDAY,WEEKEND")
    @NotNull(groups = {AddGroup.class}, message = "营业周期不能为空")
    private MerchantBusinessPeriod period;
    @ApiModelProperty("商家介绍")
    @Size(max = 100)
    private String introduction;
    @ApiModelProperty("服务范围")
    @NotEmpty(groups = {AddGroup.class}, message = "服务范围不能为空")
    private List<Long> serviceIds;
    @ApiModelProperty("是否营业中,1.在营 0.已关闭")
    @NotNull(groups = {AddGroup.class}, message = "是否营业不能为空")
    private Integer businessStatus;
    @ApiModelProperty("管理账号")
    @Pattern(groups = {AddGroup.class}, message = "请输入6-10位管理账号,由英文或数字组成", regexp = "^[0-9A-Za-z]{6,10}$")
    private String account;
    @ApiModelProperty("登陆密码")
//    @Pattern(groups = {AddGroup.class}, message = "请输入8-12位登陆密码,由英文,数字和特殊符号组成",
//            regexp = "^(?=.*[A-Za-z])(?=.*\\d)(?=.*[$@$!%*#?&])[A-Za-z\\d$@$!%*#?&]{8,12}$")
    @Pattern(groups = {AddGroup.class}, message = "请输入8-12位登陆密码,由英文,数字和特殊符号组成",
            regexp = "^(?=.*[A-Za-z])(?=(.*[\\d]){1,})(?=(.*[\\W]){1,})(?!.*\\s).{8,}$")
    private String password;
    @ApiModelProperty(value = "所属社区id")
    @NotNull(groups = {AddGroup.class}, message = "所属社区id不能为空")
    private Long communityId;
    @ApiModelProperty(value = "创建人", hidden = true)
    private Long createdBy;
    @ApiModelProperty(value = "更新人", hidden = true)
    private Long updatedBy;
    public String getPeriod() {
        return period.name();
    }
    public void setPeriod(MerchantBusinessPeriod period) {
        this.period = period;
    }
    public Boolean getBusinessStatus() {
        return businessStatus.intValue() == 1;
    }
    public void setBusinessStatus(Boolean businessStatus) {
        this.businessStatus = businessStatus ? 1 : 0;
    }
}