/** 
 | 
 * Copyright (c) 2018 人人开源 All rights reserved. 
 | 
 * 
 | 
 * https://www.renren.io 
 | 
 * 
 | 
 * 版权所有,侵权必究! 
 | 
 */ 
 | 
  
 | 
package com.zt.core.sys.model; 
 | 
  
 | 
import com.alibaba.fastjson.annotation.JSONField; 
 | 
import com.baomidou.mybatisplus.annotation.FieldFill; 
 | 
import com.baomidou.mybatisplus.annotation.TableField; 
 | 
import com.baomidou.mybatisplus.annotation.TableName; 
 | 
import com.fasterxml.jackson.annotation.JsonFormat; 
 | 
import com.fasterxml.jackson.annotation.JsonIgnore; 
 | 
import com.fasterxml.jackson.annotation.JsonProperty; 
 | 
import com.zt.common.annotation.OssField; 
 | 
import com.zt.common.entity.BusiEntity; 
 | 
import com.zt.common.validator.group.DefaultGroup; 
 | 
import com.zt.core.oss.dto.OssDto; 
 | 
import io.swagger.annotations.ApiModel; 
 | 
import io.swagger.annotations.ApiModelProperty; 
 | 
import lombok.Data; 
 | 
import lombok.EqualsAndHashCode; 
 | 
import org.hibernate.validator.constraints.Range; 
 | 
import org.springframework.format.annotation.DateTimeFormat; 
 | 
  
 | 
import javax.validation.constraints.Email; 
 | 
import javax.validation.constraints.NotBlank; 
 | 
import java.util.ArrayList; 
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 系统用户 
 | 
 * 
 | 
 * @author hehz 
 | 
 */ 
 | 
@Data 
 | 
@ApiModel(value = "用户") 
 | 
@EqualsAndHashCode(callSuper = false) 
 | 
@TableName("SYS_USER") 
 | 
public class SysUser extends BusiEntity { 
 | 
    private static final long serialVersionUID = 1L; 
 | 
    @ApiModelProperty(value = "用户ID", required = false) 
 | 
    private  Long userId; 
 | 
    @ApiModelProperty(value = "员工工号", required = false) 
 | 
    // @NotBlank(message = "员工工号不能为空", groups = DefaultGroup.class) 
 | 
    private String userCode; 
 | 
  
 | 
    @ApiModelProperty(value = "用户名", required = true) 
 | 
    @NotBlank(message = "用户名不能为空", groups = DefaultGroup.class) 
 | 
    private String username; 
 | 
  
 | 
    @ApiModelProperty(value = "密码") 
 | 
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) 
 | 
    // @NotBlank(message="密码不能为空", groups = AddGroup.class) 
 | 
    @JsonIgnore 
 | 
    private String password; 
 | 
  
 | 
    @ApiModelProperty(value = "真实姓名", required = true) 
 | 
    @NotBlank(message = "真实姓名不能为空", groups = DefaultGroup.class) 
 | 
    private String realName; 
 | 
  
 | 
    @ApiModelProperty(value = "昵称") 
 | 
    private String nickName; 
 | 
  
 | 
    @ApiModelProperty(value = "姓名简拼") 
 | 
    private String simpleSpelling; 
 | 
  
 | 
    @ApiModelProperty(value = "姓名全拼") 
 | 
    private String fullSpelling; 
 | 
  
 | 
    @ApiModelProperty(value = "头像") 
 | 
    private String headUrl; 
 | 
  
 | 
    @ApiModelProperty(value = "性别   0:男   1:女    2:保密", required = false) 
 | 
    @Range(min = 0, max = 2, message = "sysuser.gender.range", groups = DefaultGroup.class) 
 | 
    private Integer gender; 
 | 
  
 | 
    @ApiModelProperty(value = "邮箱") 
 | 
    @Email(message = "邮箱格式不正确", groups = DefaultGroup.class) 
 | 
    private String email; 
 | 
  
 | 
    @ApiModelProperty(value = "手机号") 
 | 
    private String mobile; 
 | 
  
 | 
    @ApiModelProperty(value = "部门名称") 
 | 
    @TableField(exist = false) 
 | 
    private String deptName; 
 | 
  
 | 
  
 | 
    @ApiModelProperty(value = "钉钉号") 
 | 
    private String dingcode; 
 | 
  
 | 
    @ApiModelProperty(value = "微信号") 
 | 
    private String wechat; 
 | 
  
 | 
    @ApiModelProperty(value = "单点登录标识") 
 | 
    private Long openid; 
 | 
  
 | 
    @ApiModelProperty(value = "是否允许用户同时登录0:不允许 1:允许") 
 | 
    private Boolean isMulonline; 
 | 
  
 | 
    @ApiModelProperty(value = "允许登录开始时间") 
 | 
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 
 | 
    private Date gmtAllowstart; 
 | 
  
 | 
    @ApiModelProperty(value = "允许登录结束时间") 
 | 
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 
 | 
    private Date gmtAllowend; 
 | 
  
 | 
    @ApiModelProperty(value = "暂停登录开始时间") 
 | 
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 
 | 
    private Date gmtLockstart; 
 | 
  
 | 
    @ApiModelProperty(value = "暂停登录结束时间") 
 | 
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 
 | 
    private Date gmtLockend; 
 | 
  
 | 
    @ApiModelProperty(value = "排序") 
 | 
    private Integer sort; 
 | 
  
 | 
    @ApiModelProperty(value = "是否是超级管理员") 
 | 
    @JsonProperty(access = JsonProperty.Access.READ_ONLY) 
 | 
    @TableField("is_super_admin") 
 | 
    private boolean isSuperAdmin; 
 | 
  
 | 
    @ApiModelProperty(value = "状态") 
 | 
    @TableField(fill = FieldFill.INSERT) 
 | 
    private Integer status; 
 | 
  
 | 
    @ApiModelProperty(value = "最后一次登录时间") 
 | 
    @JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8") 
 | 
    @JSONField(format = "yyyy-MM-dd") 
 | 
    @DateTimeFormat(pattern = "yyyy-MM-dd") 
 | 
    private Date lastLoginErrorTime; 
 | 
  
 | 
    @ApiModelProperty(value = "登录错误计数") 
 | 
    private Integer loginErrorCount; 
 | 
  
 | 
    @ApiModelProperty(value = "是否锁定") 
 | 
    private Integer isLocked; 
 | 
  
 | 
    @OssField("用户头像") 
 | 
    @ApiModelProperty(value = "用户头像") 
 | 
    @TableField(exist = false) 
 | 
    private OssDto avatar; 
 | 
  
 | 
    @ApiModelProperty(value = "岗位ID列表") 
 | 
    @TableField(exist = false) 
 | 
    private List<Long> postIdList = new ArrayList<>(); 
 | 
  
 | 
    @ApiModelProperty(value = "职位ID列表") 
 | 
    @TableField(exist = false) 
 | 
    private List<Long> jobIdList = new ArrayList<>(); 
 | 
  
 | 
  
 | 
    @ApiModelProperty(value = "岗位ID列表") 
 | 
    @TableField(exist = false) 
 | 
    private String teamgroupIds; 
 | 
  
 | 
    @ApiModelProperty(value = "职位ID列表") 
 | 
    @TableField(exist = false) 
 | 
    private String shipIds; 
 | 
  
 | 
    @OssField("register") 
 | 
    @ApiModelProperty(value = "注册标识") 
 | 
    @TableField(exist = false) 
 | 
    private Integer register; 
 | 
  
 | 
} 
 |