2021-09-28 11:47:19 +08:00
|
|
|
|
package model
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"SciencesServer/utils"
|
|
|
|
|
"fmt"
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
"gorm.io/gorm"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type SysUser struct {
|
|
|
|
|
Model
|
2021-10-12 16:53:49 +08:00
|
|
|
|
Local
|
2021-09-28 11:47:19 +08:00
|
|
|
|
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:null;comment:账户名" json:"account"`
|
|
|
|
|
Avatar string `gorm:"column:avatar;type:varchar(255);default:null;comment:头像" json:"avatar"`
|
|
|
|
|
Name string `gorm:"column:name;type:varchar(20);default:null;comment:真实姓名" json:"name"`
|
|
|
|
|
Mobile string `gorm:"column:mobile;index:idx_sys_user_mobile;type:varchar(15);default:null;comment:联系方式" json:"mobile"`
|
|
|
|
|
Email string `gorm:"column:email;type:varchar(50);default:null;comment:邮箱" json:"email"`
|
|
|
|
|
Gender
|
|
|
|
|
Password string `gorm:"column:password;type:varchar(100);default:null;comment:密码" json:"-"`
|
|
|
|
|
Salt string `gorm:"column:salt;type:varchar(10);default:null;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:null;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{}
|
|
|
|
|
}
|