package com.gkhy.assess.system.domain;
|
|
import com.baomidou.mybatisplus.annotation.*;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.gkhy.assess.common.domain.BaseEntity;
|
import com.gkhy.assess.common.validate.AgencyGroup;
|
import com.gkhy.assess.common.validate.ExpertGroup;
|
import com.gkhy.assess.common.validate.MonitorGroup;
|
import com.gkhy.assess.system.domain.vo.PersonProjectVO;
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Getter;
|
import lombok.Setter;
|
import lombok.experimental.Accessors;
|
import org.hibernate.validator.constraints.Length;
|
|
import javax.validation.Valid;
|
import javax.validation.constraints.Max;
|
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.Pattern;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
|
import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
|
|
/**
|
* <p>
|
* 用户表
|
* </p>
|
*
|
* @author kzy
|
* @since 2023-10-17 14:26:29
|
*/
|
@Getter
|
@Setter
|
@TableName("sys_user")
|
@ApiModel(value = "SysUser对象", description = "用户表")
|
@Accessors(chain = true)
|
@JsonInclude(NON_NULL)
|
public class SysUser extends BaseEntity {
|
|
private static final long serialVersionUID = 1L;
|
|
@TableId(value = "id", type = IdType.AUTO)
|
private Long id;
|
|
@NotBlank(message = "用户名不能为空")
|
@ApiModelProperty(value = "用户名",required = true)
|
@Length(min=5,max=16,message = "用户名长度需要在{min}和{max}之间")
|
@Pattern(regexp = "^[A-Za-z0-9]+$",message = "用户名只能由英文字母或者数字组成!")
|
@TableField("username")
|
private String username;
|
|
@Length(min = 0, max = 20, message = "用户昵称/姓名不能超过20个字符")
|
@ApiModelProperty("用户昵称/姓名")
|
@TableField("name")
|
private String name;
|
|
@ApiModelProperty("用户身份(0代表监管用户,1代表机构用户,2代表专家用户)")
|
@TableField("identity")
|
private Integer identity;
|
|
@NotNull(message = "用户类型不能为空",groups ={MonitorGroup.class} )
|
@ApiModelProperty("用户类型(0代表工作人员,1代表领导,默认0)监管用户")
|
@TableField("user_type")
|
private Integer userType;
|
|
@ApiModelProperty("邮箱")
|
@TableField("email")
|
private String email;
|
|
@NotBlank(message = "手机号码不能为空")
|
@Length(min = 11, max = 11, message = "手机号只能为11位")
|
@Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$",message = "手机号码有误!")
|
@ApiModelProperty(value = "手机号码",required = true)
|
@TableField("phone")
|
private String phone;
|
|
@ApiModelProperty("用户性别(0男,1女,2未知,默认2)")
|
@TableField("sex")
|
private Integer sex;
|
|
@ApiModelProperty("头像路径")
|
@TableField("avatar")
|
private String avatar;
|
|
/**
|
* 密码生成规则:md5(用户名+密码+盐)
|
*/
|
@NotBlank(message = "密码不能为空")
|
@ApiModelProperty(value = "密码(base64)",required = true)
|
@TableField("password")
|
private String password;
|
|
@ApiModelProperty("盐加密")
|
@TableField("salt")
|
private String salt;
|
|
@ApiModelProperty("账号状态(0正常,1停用,默认0)")
|
@TableField("status")
|
private Integer status;
|
|
@ApiModelProperty("删除标志(0代表存在,1代表删除,默认0)")
|
@TableField("del_flag")
|
private Integer delFlag;
|
|
@NotBlank(message = "管辖区域不能为空",groups ={MonitorGroup.class} )
|
@ApiModelProperty("管辖区域")
|
@TableField("manage_region")
|
private String manageRegion;
|
|
@ApiModelProperty("机构id")
|
@TableField("agency_id")
|
private Long agencyId;
|
|
@NotNull(message = "专家类型不能为空",groups ={ExpertGroup.class} )
|
@ApiModelProperty("专家类型(专家用户)(1安全评价,2检验检测)")
|
@TableField("expert_type")
|
private Integer expertType;
|
|
|
// @ApiModelProperty("社保一致性(0代表相同,1代表不同,默认0)")
|
// @TableField("social_same")
|
// private Integer socialSame;
|
|
@NotBlank(message = "职务不能为空",groups ={ExpertGroup.class} )
|
@ApiModelProperty("职务")
|
@TableField("post")
|
private String post;
|
|
@NotBlank(message = "职称不能为空",groups ={ExpertGroup.class} )
|
@ApiModelProperty("职称")
|
@TableField("job_title")
|
private String jobTitle;
|
|
@NotBlank(message = "专业方向不能为空",groups ={ExpertGroup.class} )
|
@ApiModelProperty("专业方向,新增时传(json字符串{'专业id':'证书编号1','专业id':'证书编号2'}),查询时传字典id")
|
@TableField("major")
|
private String major;
|
|
@ApiModelProperty("审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废 默认1)")
|
@TableField("state")
|
private Integer state;
|
|
@ApiModelProperty("最后登录ip")
|
@TableField("login_ip")
|
private String loginIp;
|
|
@ApiModelProperty("最后登录时间")
|
@TableField("login_date")
|
private LocalDateTime loginDate;
|
|
@ApiModelProperty("密码最后更新时间")
|
@TableField("pwd_update_date")
|
private LocalDateTime pwdUpdateDate;
|
|
@Version
|
@ApiModelProperty("乐观锁")
|
@TableField("version")
|
private Integer version;
|
|
@ApiModelProperty("证书编号,多个证书,逗号隔开")
|
@TableField("certificate_no")
|
private String certificateNo;
|
|
@ApiModelProperty("近期证件照路径")
|
@TableField("id_photo")
|
private String idPhoto;
|
|
@ApiModelProperty("评价师等级")
|
@TableField("level")
|
private String level;
|
|
@Valid
|
@NotNull(message = "机构不能为空",groups ={AgencyGroup.class} )
|
@ApiModelProperty("机构对象,只限创建机构用户传参")
|
@TableField(exist = false)
|
private SysAgency agency;
|
|
|
@ApiModelProperty("社保照片路径列表,创建专家传参")
|
@TableField(exist = false)
|
private List<SysAttach> socialAttach;
|
|
@ApiModelProperty("医保照片路径列表,创建专家传参")
|
@TableField(exist = false)
|
private List<SysAttach> medicalAttach;
|
|
@ApiModelProperty("工资照片路径列表,创建专家传参")
|
@TableField(exist = false)
|
private List<SysAttach> salaryAttach;
|
|
@ApiModelProperty("专业列表")
|
@TableField(exist = false)
|
List<String> majorNames;
|
|
@ApiModelProperty("汇总项目信息")
|
@TableField(exist = false)
|
private PersonProjectVO personProjectVO;
|
|
@ApiModelProperty("机构名称")
|
@TableField(exist = false)
|
private String agencyName;
|
|
@ApiModelProperty(value = "机构属性(0疆内,1疆外,默认0)",required = false)
|
@TableField(exist = false)
|
private Integer attribute;
|
|
@ApiModelProperty(value = "业务类型(0全部,1安全评价,2检验检测)",required = false)
|
@TableField(exist = false)
|
private Integer businessType;
|
|
}
|