2021-09-28 11:47:19 +08:00
|
|
|
|
package model
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"SciencesServer/utils"
|
|
|
|
|
"fmt"
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
"gorm.io/gorm"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type SysUser struct {
|
|
|
|
|
Model
|
2022-01-05 11:29:27 +08:00
|
|
|
|
UUID uint64 `gorm:"column:uuid;uniqueIndex:idx_sys_user_uuid;type:int;default:0;comment:用户唯一UUID" json:"-"`
|
|
|
|
|
TenantID uint64 `gorm:"column:tenant_id;type:int;default:0;comment:租户ID,0表示系统用户" 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"`
|
2021-09-28 11:47:19 +08:00
|
|
|
|
Gender
|
2021-12-03 14:18:06 +08:00
|
|
|
|
Password string `gorm:"column:password;type:varchar(100);default:'';comment:密码" json:"-"`
|
|
|
|
|
Salt string `gorm:"column:salt;type:varchar(10);default:'';comment:盐值" json:"-"`
|
2021-09-28 11:47:19 +08:00
|
|
|
|
IsAdmin SysUserAdministrator `gorm:"column:is_admin;type:tinyint(1);default:0;comment:管理员(0:普通用户,1:管理员)" json:"-"`
|
2021-12-03 14:18:06 +08:00
|
|
|
|
Remark string `gorm:"column:remark;type:varchar(255);default:'';comment:备注" json:"-"`
|
2022-01-05 11:29:27 +08:00
|
|
|
|
Status SysUserStatus `gorm:"column:status;type:tinyint(1);default:1;comment:账号状态" json:"status"`
|
2021-09-28 11:47:19 +08:00
|
|
|
|
ModelDeleted
|
|
|
|
|
ModelAt
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type SysUserAdministrator int
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
// SysUserAdministratorForOrdinary 普通人员
|
|
|
|
|
SysUserAdministratorForOrdinary SysUserAdministrator = iota
|
|
|
|
|
// SysUserAdministratorForAdmin 管理员
|
|
|
|
|
SysUserAdministratorForAdmin
|
|
|
|
|
)
|
|
|
|
|
|
2022-01-05 11:29:27 +08:00
|
|
|
|
type SysUserStatus int
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
// SysUserStatusForNormal 正常
|
|
|
|
|
SysUserStatusForNormal SysUserStatus = iota + 1
|
|
|
|
|
// SysUserStatusForDisable 禁止登陆
|
|
|
|
|
SysUserStatusForDisable
|
|
|
|
|
)
|
|
|
|
|
|
2021-09-28 11:47:19 +08:00
|
|
|
|
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{}
|
|
|
|
|
}
|