package com.dy.pipIrrGlobal.pojoBa; 
 | 
  
 | 
import com.alibaba.fastjson2.annotation.JSONField; 
 | 
import com.alibaba.fastjson2.writer.ObjectWriterImplToString; 
 | 
import com.baomidou.mybatisplus.annotation.IdType; 
 | 
import com.baomidou.mybatisplus.annotation.TableField; 
 | 
import com.baomidou.mybatisplus.annotation.TableId; 
 | 
import com.baomidou.mybatisplus.annotation.TableName; 
 | 
import com.dy.common.mybatis.envm.Deleted; 
 | 
import com.dy.common.mybatis.envm.Disabled; 
 | 
import com.dy.common.po.BaseEntity; 
 | 
import io.swagger.v3.oas.annotations.media.Schema; 
 | 
import jakarta.validation.constraints.NotEmpty; 
 | 
import lombok.*; 
 | 
import org.hibernate.validator.constraints.Length; 
 | 
  
 | 
import java.util.List; 
 | 
  
 | 
  
 | 
/** 
 | 
 * 用户实体 
 | 
 * 
 | 
 * TableName(value = “a”, autoResultMap = true) 
 | 
 * autoResultMap参数为true时,表明个别字段在查询处理的时候自动转换为对象, 
 | 
 * 只适合设置了TypeHandler、jdbcTyped的情况。autoResultMap 自动映射, 
 | 
 * 通常配合 @TableField() 一起使用,确定映射规范性。 
 | 
 * 2023-10-24经实验: 
 | 
 * 简单的@TableField("name")不用加上,即使类属性名是驼峰,数据库字段是下 
 | 
 * 划线情况,也不用加@TableField("name")。 
 | 
 */ 
 | 
//2023-10-24下面TableName不用配置表名称(value="BaUser"或“ba_user”) 
 | 
//只要通过驼峰命名法则类名与表名对应起来就可以了,如果不能对应起来,需要指定表名称 
 | 
//例如@TableName(value="TestUser" autoResultMap = true) 
 | 
@TableName(value="ba_user", autoResultMap = true) 
 | 
@Data 
 | 
@Builder 
 | 
@ToString 
 | 
@NoArgsConstructor 
 | 
@AllArgsConstructor 
 | 
@Schema(name = "用户实体") 
 | 
public class BaUser implements BaseEntity { 
 | 
  
 | 
    public static final long serialVersionUID = 202310100926001L; 
 | 
  
 | 
    /* 如果不明确 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) 
 | 
    @Schema(description = "实体id", requiredMode = Schema.RequiredMode.NOT_REQUIRED) 
 | 
    public Long userId; 
 | 
  
 | 
  
 | 
    @Schema(description = "所属片区ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) 
 | 
    @JSONField(serializeUsing= ObjectWriterImplToString.class) 
 | 
    @TableField(value = "blockId") 
 | 
    public Long blockId ; 
 | 
  
 | 
    /** 
 | 
     * 用户姓名 
 | 
     */ 
 | 
    @Schema(description = "姓名", requiredMode = Schema.RequiredMode.REQUIRED) 
 | 
    @NotEmpty(message = "姓名不能为空") //不能为空也不能为null 
 | 
    @Length(message = "姓名不大于{max}字,不小于{min}字", min = 2, max = 25) 
 | 
    public String userName; 
 | 
  
 | 
    /** 
 | 
     * 手机号,手机号用于登录系统 
 | 
     */ 
 | 
    @Schema(description = "手机号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) 
 | 
    @Length(message = "手机号必须{max}位数据", min = 11, max = 11) 
 | 
    public String phone; 
 | 
  
 | 
    /** 
 | 
     * 密码,密码的MD5加密 
 | 
     */ 
 | 
    @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED) 
 | 
    @Length(message = "密码必须{max}位数据", min = 6, max = 6) 
 | 
    public String password; 
 | 
  
 | 
    /** 
 | 
     * 供水机构标签 
 | 
     */ 
 | 
    @TableField(value = "orgTag") 
 | 
    @JSONField(serialize = false) 
 | 
    public String orgTag; 
 | 
  
 | 
    /** 
 | 
     * 是否超级管理员 1:是,0:否 
 | 
     */ 
 | 
    @Schema(hidden = true) 
 | 
    @TableField(value = "supperAdmin") 
 | 
    @JSONField(serialize = false) 
 | 
    public Byte supperAdmin; 
 | 
  
 | 
    /** 
 | 
     * 是否禁用 0:否,1:是 
 | 
     */ 
 | 
    @Schema(description = "是否禁用", requiredMode = Schema.RequiredMode.NOT_REQUIRED) 
 | 
    public Disabled disabled; 
 | 
  
 | 
    /** 
 | 
     * 是否删除: 0表示未删除  1表示删除. 
 | 
     */ 
 | 
    @Schema(description = "删除标识,表单不用填写", requiredMode = Schema.RequiredMode.NOT_REQUIRED) 
 | 
    public Deleted deleted; 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 用户所属角色Id 
 | 
     */ 
 | 
    @Schema(description = "所归角色(所属角色ID字符串数组)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) 
 | 
    @TableField(exist = false) 
 | 
    public String[] roleIds ; 
 | 
  
 | 
    /** 
 | 
     * 用户所属角色 
 | 
     */ 
 | 
    @Schema(description = "所归角色列表,用于显示,表单不用填写", requiredMode = Schema.RequiredMode.NOT_REQUIRED) 
 | 
    @TableField(exist = false) 
 | 
    public List<?> roleList ; 
 | 
  
 | 
    /** 
 | 
     * 用户所拥有的权限,针对登录应用 
 | 
     */ 
 | 
    @Schema(hidden = true) 
 | 
    @TableField(exist = false) 
 | 
    @JSONField(serialize = false) 
 | 
    public List<Integer> privileges; 
 | 
  
 | 
    /** 
 | 
     * 所属片区名称 
 | 
     */ 
 | 
    @Schema(description = "所属片区名称,用于显示,表单不用填写", requiredMode = Schema.RequiredMode.NOT_REQUIRED) 
 | 
    @TableField(exist = false) 
 | 
    public String blockName ; 
 | 
} 
 |