package com.dy.pmsGlobal.pojoBa; 
 | 
  
 | 
import com.alibaba.fastjson2.annotation.JSONField; 
 | 
import com.alibaba.fastjson2.writer.ObjectWriterImplToString; 
 | 
import com.baomidou.mybatisplus.annotation.*; 
 | 
import com.dy.common.po.BaseEntity; 
 | 
import com.fasterxml.jackson.annotation.JsonFormat; 
 | 
import jakarta.validation.constraints.NotEmpty; 
 | 
import lombok.*; 
 | 
import org.hibernate.validator.constraints.Length; 
 | 
  
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 用户 
 | 
 */ 
 | 
//2024-04-12下面TableName不用配置表名称(value="BaUser"或“ba_user”) 
 | 
//只要通过驼峰命名法则类名与表名对应起来就可以了,如果不能对应起来,需要指定表名称 
 | 
//例如@TableName(value="TestUser" autoResultMap = true) 
 | 
@TableName(value="ba_user", autoResultMap = true) 
 | 
@Data 
 | 
@Builder 
 | 
@ToString 
 | 
@NoArgsConstructor 
 | 
@AllArgsConstructor 
 | 
public class BaUser implements BaseEntity { 
 | 
  
 | 
    public static final long serialVersionUID = 202404121347001L; 
 | 
    /** 
 | 
     * 主键 
 | 
     */ 
 | 
    /* 如果不明确 type类型,MP将自动为其赋值(雪花ID) 
 | 
    IdType: 
 | 
    AUTO(0),  //自增 
 | 
    NONE(1), //未设置主键 
 | 
    INPUT(2), //手动输入 
 | 
    ASSIGN_ID(3),  //默认全局唯一ID 
 | 
    ASSIGN_UUID(4), //全局唯一的 uuid 
 | 
    */ 
 | 
    @JSONField(serializeUsing= ObjectWriterImplToString.class) 
 | 
    @TableId(value = "id", type = IdType.INPUT) 
 | 
    public Long id; 
 | 
  
 | 
    /** 
 | 
     * 姓名 
 | 
     */ 
 | 
    @NotEmpty(message = "姓名不能为空") //不能为空也不能为null 
 | 
    @Length(message = "姓名不大于{max}字,不小于{min}字", min = 2, max = 50) 
 | 
    public String name; 
 | 
  
 | 
    /** 
 | 
     * 手机号,用于登录系统 
 | 
     */ 
 | 
    @NotEmpty(message = "手机号不能为空") //不能为空也不能为null 
 | 
    @Length(message = "手机号必须{max}位数据", min = 11, max = 11) 
 | 
    public String phone; 
 | 
  
 | 
    /** 
 | 
     * 密码,MD5加密 
 | 
     */ 
 | 
    @NotEmpty(message = "密码不能为空") //不能为空也不能为null 
 | 
    @Length(message = "密码必须{max}位数据", min = 6, max = 6) 
 | 
    @JSONField(serialize = false) 
 | 
    public String password; 
 | 
  
 | 
    /** 
 | 
     * 是否超级管理员,1是,0否 
 | 
     */ 
 | 
    @JSONField(serialize = false) 
 | 
    public Byte supperAdmin; 
 | 
  
 | 
    /** 
 | 
     * 是否禁用,1是,0否 
 | 
     */ 
 | 
    public Boolean disabled; 
 | 
  
 | 
    /** 
 | 
     * 删除标志,1是,0否 
 | 
     */ 
 | 
    @JSONField(serialize = false) 
 | 
    public Boolean deleted; 
 | 
  
 | 
    /** 
 | 
     * 创建时间 
 | 
     */ 
 | 
    @TableField(value = "dt", fill = FieldFill.INSERT) 
 | 
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 
 | 
    public Date dt; 
 | 
  
 | 
    ////////////////////////////////////// 
 | 
    // 以下不是数据库实体属性 
 | 
    ////////////////////////////////////// 
 | 
    /** 
 | 
     * 用户所关联的角色集合 
 | 
     */ 
 | 
    @TableField(exist = false) 
 | 
    public List<BaRole> roles ; 
 | 
  
 | 
    /** 
 | 
     * 前端web界面提交的用户所属角色的id,其是一个字符串数组 
 | 
     */ 
 | 
    @TableField(exist = false) 
 | 
    @JSONField(serialize = false) 
 | 
    public String[] roleIds ; 
 | 
  
 | 
    /** 
 | 
     * 用户所拥有的权限,针对单点登录应用 
 | 
     */ 
 | 
    @TableField(exist = false) 
 | 
    @JSONField(serialize = false) 
 | 
    public List<Integer> privileges; 
 | 
} 
 |