61 lines
1.9 KiB
Go
61 lines
1.9 KiB
Go
package model
|
||
|
||
import (
|
||
"SciencesServer/utils"
|
||
"fmt"
|
||
"time"
|
||
|
||
"gorm.io/gorm"
|
||
)
|
||
|
||
type SysUser struct {
|
||
Model
|
||
UUID uint64 `gorm:"column:uuid;uniqueIndex:idx_sys_user_uuid;type:int;default:0;comment:用户唯一UUID" json:"-"`
|
||
Account string `gorm:"column:account;type:varchar(50);default:'';comment:账户名" json:"account"`
|
||
Avatar string `gorm:"column:avatar;type:varchar(255);default:'';comment:头像" json:"avatar"`
|
||
Name string `gorm:"column:name;type:varchar(20);default:'';comment:真实姓名" json:"name"`
|
||
Mobile string `gorm:"column:mobile;index:idx_sys_user_mobile;type:varchar(15);default:'';comment:联系方式" json:"mobile"`
|
||
Email string `gorm:"column:email;type:varchar(50);default:'';comment:邮箱" json:"email"`
|
||
Gender
|
||
Password string `gorm:"column:password;type:varchar(100);default:'';comment:密码" json:"-"`
|
||
Salt string `gorm:"column:salt;type:varchar(10);default:'';comment:盐值" json:"-"`
|
||
IsAdmin SysUserAdministrator `gorm:"column:is_admin;type:tinyint(1);default:0;comment:管理员(0:普通用户,1:管理员)" json:"-"`
|
||
Remark string `gorm:"column:remark;type:varchar(255);default:'';comment:备注" json:"-"`
|
||
ModelDeleted
|
||
ModelAt
|
||
}
|
||
|
||
type SysUserAdministrator int
|
||
|
||
const (
|
||
// SysUserAdministratorForOrdinary 普通人员
|
||
SysUserAdministratorForOrdinary SysUserAdministrator = iota
|
||
// SysUserAdministratorForAdmin 管理员
|
||
SysUserAdministratorForAdmin
|
||
)
|
||
|
||
func (m *SysUser) TableName() string {
|
||
return "sys_user"
|
||
}
|
||
|
||
func (m *SysUser) BeforeCreate(db *gorm.DB) error {
|
||
m.Pass()
|
||
snowflake, _ := utils.NewSnowflake(1)
|
||
m.UUID = uint64(snowflake.GetID())
|
||
m.CreatedAt = time.Now()
|
||
return nil
|
||
}
|
||
|
||
func (m *SysUser) Pass() {
|
||
m.Salt = utils.GetRandomString(8)
|
||
m.Password = utils.HashString([]byte(utils.Md5String(m.Password, m.Salt)))
|
||
}
|
||
|
||
func (m *SysUser) UUIDString() string {
|
||
return fmt.Sprintf("%d", m.UUID)
|
||
}
|
||
|
||
func NewSysUser() *SysUser {
|
||
return &SysUser{}
|
||
}
|