| package com.dy.pipIrrGlobal.pojoBa; | 
|   | 
| import com.alibaba.fastjson2.annotation.JSONField; | 
| import com.alibaba.fastjson2.writer.ObjectWriterImplToString; | 
| import com.baomidou.mybatisplus.annotation.*; | 
| 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.Max; | 
| import jakarta.validation.constraints.Min; | 
| 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(type = IdType.INPUT) | 
|     @Schema(description = "实体id", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     public Long id; | 
|   | 
|     /** | 
|      * 用户姓名 | 
|      */ | 
|     @Schema(description = "姓名", requiredMode = Schema.RequiredMode.REQUIRED) | 
|     @NotEmpty(message = "姓名不能为空") //不能为空也不能为null | 
|     @Length(message = "姓名不大于{max}字,不小于{min}字", min = 2, max = 25) | 
|     public String name; | 
|   | 
|     /** | 
|      * 手机号,手机号用于登录系统 | 
|      */ | 
|     @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:否 | 
|      */ | 
|     @TableField(value = "supperAdmin") | 
|     @JSONField(serialize = false) | 
|     public Byte supperAdmin; | 
|   | 
|     /** | 
|      * 是否禁用 0:否,1:是 | 
|      */ | 
|     @Schema(description = "是否禁用", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     @Max(message = "是否禁用只能0或1", value = 1) | 
|     @Min(message = "是否禁用只能0或1",value = 0) | 
|     public Disabled disabled; | 
|   | 
|     /** | 
|      * 是否删除: 0表示未删除  1表示删除. | 
|      */ | 
|     @Schema(description = "删除标识,表单不用填写", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     public Deleted deleted; | 
|   | 
|   | 
|     /** | 
|      * 用户所属角色 | 
|      */ | 
|     @TableField(exist = false) | 
|     public List<?> roleList ; | 
|   | 
|     /** | 
|      * 用户所拥有的权限 | 
|      */ | 
|     @TableField(exist = false) | 
|     public List<Integer> privileges; | 
|     //public transient List<Integer> privileges;//此种方式变量不存库, 也不参与序列化了 | 
| } |