user.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package model
  2. import (
  3. "dy-admin/internal/pcmserver/common"
  4. "gorm.io/gorm"
  5. )
  6. type User struct {
  7. UserID int `gorm:"primaryKey;autoIncrement;comment:编码" json:"userId"`
  8. UUID string `json:"uuid" gorm:"index;comment:用户UUID"`
  9. Username string `json:"username" gorm:"size:64;comment:用户名"`
  10. Password string `json:"-" gorm:"size:128;comment:密码"`
  11. NickName string `json:"nickName" gorm:"size:128;comment:昵称"`
  12. Phone string `json:"phone" gorm:"size:11;comment:手机号"`
  13. Salt string `json:"-" gorm:"size:255;comment:加盐"`
  14. Avatar string `json:"avatar" gorm:"size:255;comment:头像"`
  15. Sex string `json:"sex" gorm:"size:255;comment:性别"`
  16. Email string `json:"email" gorm:"size:128;comment:邮箱"`
  17. DeptId int `json:"deptId" gorm:"size:20;comment:部门"`
  18. Remark string `json:"remark" gorm:"size:255;comment:备注"`
  19. Status string `json:"status" gorm:"size:4;comment:状态"`
  20. RoleIds []int `json:"roleIds" gorm:"-"`
  21. Roles []Role `json:"roles" gorm:"many2many:sys_user_role;foreignKey:UserID;joinForeignKey:UserID;References:RoleID;joinReferences:RoleID"`
  22. Dept Dept `json:"dept" gorm:"-"`
  23. common.ControlBy
  24. common.ModelTime
  25. }
  26. func (u *User) TableName() string {
  27. return "sys_users"
  28. }
  29. func (u *User) AfterFind(db *gorm.DB) error {
  30. roleIds := make([]int, 0, len(u.Roles))
  31. for _, role := range u.Roles {
  32. roleIds = append(roleIds, role.RoleID)
  33. }
  34. u.RoleIds = roleIds
  35. if u.DeptId != 0 {
  36. var dept Dept
  37. err := db.Where("dept_id = ?", u.DeptId).First(&dept).Error
  38. if err != nil && err != gorm.ErrRecordNotFound {
  39. return err
  40. }
  41. u.Dept = dept
  42. }
  43. return nil
  44. }