package com.vincent.rsf.server.system.entity;
|
|
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.vincent.rsf.framework.common.Cools;
|
import com.vincent.rsf.framework.common.SpringUtils;
|
import com.vincent.rsf.server.system.service.DeptService;
|
import com.vincent.rsf.server.system.service.TenantService;
|
import com.vincent.rsf.server.system.service.UserRoleService;
|
import com.vincent.rsf.server.system.service.UserService;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.security.core.userdetails.UserDetails;
|
|
import java.io.Serializable;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
|
@Data
|
@TableName("sys_user")
|
public class User implements Serializable, UserDetails {
|
|
private static final long serialVersionUID = 1L;
|
|
/**
|
* ID
|
*/
|
@ApiModelProperty(value= "ID")
|
@TableId(value = "id", type = IdType.AUTO)
|
private Long id;
|
|
/**
|
* 账号
|
*/
|
@ApiModelProperty(value= "账号")
|
private String username;
|
|
/**
|
* 密码
|
*/
|
@ApiModelProperty(value= "密码")
|
private String password;
|
|
/**
|
* 昵称
|
*/
|
@ApiModelProperty(value= "昵称")
|
private String nickname;
|
|
/**
|
* 头像
|
*/
|
@ApiModelProperty(value= "头像")
|
private String avatar;
|
|
/**
|
* 工号
|
*/
|
@ApiModelProperty(value= "工号")
|
private String code;
|
|
/**
|
* 性别 0: 未知 1: 男 2: 女
|
*/
|
@ApiModelProperty(value= "性别 0: 未知 1: 男 2: 女 ")
|
private Integer sex;
|
|
/**
|
* 手机号
|
*/
|
@ApiModelProperty(value= "手机号")
|
private String phone;
|
|
/**
|
* 邮箱
|
*/
|
@ApiModelProperty(value= "邮箱")
|
private String email;
|
|
/**
|
* 邮箱验证 0: 否 1: 是
|
*/
|
@ApiModelProperty(value= "邮箱验证 0: 否 1: 是 ")
|
private Integer emailVerified;
|
|
/**
|
* 所属部门
|
*/
|
@ApiModelProperty(value= "所属部门")
|
private Long deptId;
|
|
/**
|
* 真实姓名
|
*/
|
@ApiModelProperty(value= "真实姓名")
|
private String realName;
|
|
/**
|
* 身份证号
|
*/
|
@ApiModelProperty(value= "身份证号")
|
private String idCard;
|
|
/**
|
* 出生日期
|
*/
|
@ApiModelProperty(value= "出生日期")
|
private String birthday;
|
|
/**
|
* 个人简介
|
*/
|
@ApiModelProperty(value= "个人简介")
|
private String introduction;
|
|
/**
|
* 所属机构
|
*/
|
@ApiModelProperty(value= "所属机构")
|
private Long tenantId;
|
|
/**
|
* 状态 1: 正常 0: 禁用
|
*/
|
@ApiModelProperty(value= "状态 1: 正常 0: 禁用 ")
|
private Integer status;
|
|
/**
|
* 是否删除 1: 是 0: 否
|
*/
|
@ApiModelProperty(value= "是否删除 1: 是 0: 否 ")
|
@TableLogic
|
private Integer deleted;
|
|
/**
|
* 添加时间
|
*/
|
@ApiModelProperty(value= "添加时间")
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
private Date createTime;
|
|
/**
|
* 添加人员
|
*/
|
@ApiModelProperty(value= "添加人员")
|
private Long createBy;
|
|
/**
|
* 修改时间
|
*/
|
@ApiModelProperty(value= "修改时间")
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
private Date updateTime;
|
|
/**
|
* 修改人员
|
*/
|
@ApiModelProperty(value= "修改人员")
|
private Long updateBy;
|
|
/**
|
* 备注
|
*/
|
@ApiModelProperty(value= "备注")
|
private String memo;
|
|
@TableField(exist = false)
|
private Long[] roleIds;
|
|
@TableField(exist = false)
|
private List<Role> roles;
|
|
@TableField(exist = false)
|
private List<Menu> authorities;
|
|
public User() {}
|
|
|
public String getSex$(){
|
if (null == this.sex){ return null; }
|
switch (this.sex){
|
case 0:
|
return "未知";
|
case 1:
|
return "男";
|
case 2:
|
return "女";
|
default:
|
return String.valueOf(this.sex);
|
}
|
}
|
|
public String getEmailVerified$(){
|
if (null == this.emailVerified){ return null; }
|
switch (this.emailVerified){
|
case 0:
|
return "否";
|
case 1:
|
return "是";
|
default:
|
return String.valueOf(this.emailVerified);
|
}
|
}
|
|
public String getDeptId$(){
|
DeptService service = SpringUtils.getBean(DeptService.class);
|
Dept dept = service.getById(this.deptId);
|
if (!Cools.isEmpty(dept)){
|
return String.valueOf(dept.getName());
|
}
|
return null;
|
}
|
|
public String getTenantId$(){
|
TenantService service = SpringUtils.getBean(TenantService.class);
|
Tenant tenant = service.getById(this.tenantId);
|
if (!Cools.isEmpty(tenant)){
|
return String.valueOf(tenant.getName());
|
}
|
return null;
|
}
|
|
public String getStatus$(){
|
if (null == this.status){ return null; }
|
switch (this.status){
|
case 1:
|
return "正常";
|
case 0:
|
return "禁用";
|
default:
|
return String.valueOf(this.status);
|
}
|
}
|
|
|
|
public String getCreateTime$(){
|
if (Cools.isEmpty(this.createTime)){
|
return "";
|
}
|
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
|
}
|
|
public String getCreateBy$(){
|
UserService service = SpringUtils.getBean(UserService.class);
|
User user = service.getById(this.createBy);
|
if (!Cools.isEmpty(user)){
|
return String.valueOf(user.getNickname());
|
}
|
return null;
|
}
|
|
public String getUpdateTime$(){
|
if (Cools.isEmpty(this.updateTime)){
|
return "";
|
}
|
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
|
}
|
|
public String getUpdateBy$(){
|
UserService service = SpringUtils.getBean(UserService.class);
|
User user = service.getById(this.updateBy);
|
if (!Cools.isEmpty(user)){
|
return String.valueOf(user.getNickname());
|
}
|
return null;
|
}
|
|
public Long[] getRoleIds() {
|
return this.roleIds;
|
}
|
|
public Long[] getUserRoleIds() {
|
UserRoleService service = SpringUtils.getBean(UserRoleService.class);
|
List<UserRole> list = service.list(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, this.id));
|
return list.stream().map(UserRole::getRoleId).toArray(Long[]::new);
|
}
|
|
@Override
|
public boolean isAccountNonExpired() {
|
return true;
|
}
|
|
@Override
|
public boolean isAccountNonLocked() {
|
return this.status != null && this.status == 1;
|
}
|
|
@Override
|
public boolean isCredentialsNonExpired() {
|
return true;
|
}
|
|
@Override
|
public boolean isEnabled() {
|
return true;
|
}
|
|
public Boolean getStatusBool(){
|
if (null == this.status){ return null; }
|
switch (this.status){
|
case 1:
|
return true;
|
case 0:
|
return false;
|
default:
|
return null;
|
}
|
}
|
|
|
|
}
|