sys_user.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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:"type:varchar(64);comment:用户名"`
  10. Password string `json:"-" gorm:"type:varchar(128);comment:密码"`
  11. NickName string `json:"nickName" gorm:"type:varchar(128);comment:昵称"`
  12. Phone string `json:"phone" gorm:"type:varchar(11);comment:手机号"`
  13. RoleId int `json:"roleId" gorm:"type:bigint;comment:角色ID"`
  14. Salt string `json:"-" gorm:"type:varchar(255);comment:加盐"`
  15. Avatar string `json:"avatar" gorm:"type:varchar(255);comment:头像"`
  16. Sex string `json:"sex" gorm:"type:varchar(255);comment:性别"`
  17. Email string `json:"email" gorm:"type:varchar(128);comment:邮箱"`
  18. OrgId int `json:"orgId" gorm:"type:bigint;comment:部门"`
  19. PostId int `json:"postId" gorm:"type:bigint;comment:岗位"`
  20. Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"`
  21. Status string `json:"status" gorm:"type:varchar(4);comment:状态"`
  22. models.ControlBy
  23. models.ModelTime
  24. }
  25. func (*SysUser) TableName() string {
  26. return "sys_user"
  27. }
  28. // Encrypt 加密
  29. func (e *SysUser) Encrypt() (err error) {
  30. if e.Password == "" {
  31. return
  32. }
  33. var hash []byte
  34. if hash, err = bcrypt.GenerateFromPassword([]byte(e.Password), bcrypt.DefaultCost); err != nil {
  35. return
  36. } else {
  37. e.Password = string(hash)
  38. return
  39. }
  40. }
  41. func (e *SysUser) BeforeCreate(_ *gorm.DB) error {
  42. return e.Encrypt()
  43. }