package model import ( "dy-admin/internal/pcmserver/common" "gorm.io/gorm" ) type User struct { UserID int `gorm:"primaryKey;autoIncrement;comment:编码" json:"userId"` UUID string `json:"uuid" gorm:"index;comment:用户UUID"` Username string `json:"username" gorm:"size:64;comment:用户名"` Password string `json:"-" gorm:"size:128;comment:密码"` NickName string `json:"nickName" gorm:"size:128;comment:昵称"` Phone string `json:"phone" gorm:"size:11;comment:手机号"` Salt string `json:"-" gorm:"size:255;comment:加盐"` Avatar string `json:"avatar" gorm:"size:255;comment:头像"` Sex string `json:"sex" gorm:"size:255;comment:性别"` Email string `json:"email" gorm:"size:128;comment:邮箱"` DeptId int `json:"deptId" gorm:"size:20;comment:部门"` Remark string `json:"remark" gorm:"size:255;comment:备注"` Status string `json:"status" gorm:"size:4;comment:状态"` RoleIds []int `json:"roleIds" gorm:"-"` Roles []Role `json:"roles" gorm:"many2many:sys_user_role;foreignKey:UserID;joinForeignKey:UserID;References:RoleID;joinReferences:RoleID"` Dept Dept `json:"dept" gorm:"-"` common.ControlBy common.ModelTime } func (u *User) TableName() string { return "sys_users" } func (u *User) AfterFind(db *gorm.DB) error { roleIds := make([]int, 0, len(u.Roles)) for _, role := range u.Roles { roleIds = append(roleIds, role.RoleID) } u.RoleIds = roleIds if u.DeptId != 0 { var dept Dept err := db.Where("dept_id = ?", u.DeptId).First(&dept).Error if err != nil && err != gorm.ErrRecordNotFound { return err } u.Dept = dept } return nil }