sys_user.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package models
  2. import (
  3. "IotAdmin/common/models"
  4. "golang.org/x/crypto/bcrypt"
  5. "gorm.io/gorm"
  6. )
  7. type SysUser struct {
  8. UserId int `gorm:"primaryKey;autoIncrement;comment:编码" json:"userId"`
  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. RoleId int `json:"roleId" gorm:"size:20;comment:角色ID"`
  14. Salt string `json:"-" gorm:"size:255;comment:加盐"`
  15. Avatar string `json:"avatar" gorm:"size:255;comment:头像"`
  16. Sex string `json:"sex" gorm:"size:255;comment:性别"`
  17. Email string `json:"email" gorm:"size:128;comment:邮箱"`
  18. OrgId int `json:"orgId" gorm:"size:20;comment:部门"`
  19. PostId int `json:"postId" gorm:"size:20;comment:岗位"`
  20. Remark string `json:"remark" gorm:"size:255;comment:备注"`
  21. Status string `json:"status" gorm:"size:4;comment:状态"`
  22. OrgIds []int `json:"orgIds" gorm:"-"`
  23. PostIds []int `json:"postIds" gorm:"-"`
  24. RoleIds []int `json:"roleIds" gorm:"-"`
  25. Roles []SysRole `json:"roles" gorm:"-"`
  26. Posts []SysPost `json:"posts" gorm:"-"`
  27. Org *SysOrg `json:"org"`
  28. models.ControlBy
  29. models.ModelTime
  30. }
  31. func (*SysUser) TableName() string {
  32. return "sys_user"
  33. }
  34. func (e *SysUser) Generate() models.ActiveRecord {
  35. o := *e
  36. return &o
  37. }
  38. func (e *SysUser) GetId() interface{} {
  39. return e.UserId
  40. }
  41. // Encrypt 加密
  42. func (e *SysUser) Encrypt() (err error) {
  43. if e.Password == "" {
  44. return
  45. }
  46. var hash []byte
  47. if hash, err = bcrypt.GenerateFromPassword([]byte(e.Password), bcrypt.DefaultCost); err != nil {
  48. return
  49. } else {
  50. e.Password = string(hash)
  51. return
  52. }
  53. }
  54. func (e *SysUser) BeforeCreate(_ *gorm.DB) error {
  55. return e.Encrypt()
  56. }
  57. func (e *SysUser) BeforeUpdate(_ *gorm.DB) error {
  58. var err error
  59. if e.Password != "" {
  60. err = e.Encrypt()
  61. }
  62. return err
  63. }
  64. func (e *SysUser) AfterFind(_ *gorm.DB) error {
  65. e.OrgIds = []int{e.OrgId}
  66. e.PostIds = []int{e.PostId}
  67. e.RoleIds = []int{e.RoleId}
  68. return nil
  69. }