package com.dy.pmsGlobal.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.po.BaseEntity; import jakarta.validation.constraints.NotEmpty; import lombok.*; import org.hibernate.validator.constraints.Length; 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 = 25) 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) public String password; /** * 是否超级管理员,1是,0否 */ @JSONField(serialize = false) public Byte supperAdmin; /** * 是否禁用,1是,0否 */ public Boolean disabled; /** * 删除标志,1是,0否 */ public Boolean deleted; ////////////////////////////////////// // 以下不是数据库实体属性 ////////////////////////////////////// /** * 用户所关联的角色集合 */ @TableField(exist = false) public List roles ; /** * 前端web界面提交的用户所属角色的id,其是一个字符串数组 */ @TableField(exist = false) public String[] roleIds ; /** * 用户所拥有的权限,针对单点登录应用 */ @TableField(exist = false) @JSONField(serialize = false) public List privileges; }