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 ;
|
}
|