package com.iailab.module.system.dal.dataobject.user; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.iailab.framework.common.enums.CommonStatusEnum; import com.iailab.framework.tenant.core.db.TenantBaseDO; import com.iailab.module.system.enums.common.SexEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import java.time.LocalDateTime; import java.util.Set; /** * 管理后台的用户 DO * * @author iailab */ @TableName(value = "system_users", autoResultMap = true) // 由于 SQL Server 的 system_user 是关键字,所以使用 system_users @KeySequence("system_users_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class AdminUserDO extends TenantBaseDO { /** * 用户ID */ @TableId private Long id; /** * 用户账号 */ private String username; /** * 加密后的密码 * * 因为目前使用 {@link BCryptPasswordEncoder} 加密器,所以无需自己处理 salt 盐 */ private String password; /** * 用户昵称 */ private String nickname; /** * 备注 */ private String remark; /** * 部门 ID */ private Long deptId; /** * 岗位编号数组 */ @TableField(typeHandler = JacksonTypeHandler.class) private Set postIds; /** * 用户邮箱 */ private String email; /** * 手机号码 */ private String mobile; /** * 用户性别 * * 枚举类 {@link SexEnum} */ private Integer sex; /** * 用户头像 */ private String avatar; /** * 帐号状态 * * 枚举 {@link CommonStatusEnum} */ private Integer status; /** * 最后登录IP */ private String loginIp; /** * 最后登录时间 */ private LocalDateTime loginDate; }