/** * Copyright (c) 2018 人人开源 All rights reserved. *
* https://www.renren.io *
* 版权所有,侵权必究!
*/
package com.zt.life.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.BaseEntity;
import com.zt.common.entity.BusiEntity;
import com.zt.common.entity.CompanyEntity;
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 SysUserReg extends BaseEntity {
private static final long serialVersionUID = 1L;
@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