67 lines
2.2 KiB
Go
67 lines
2.2 KiB
Go
package model
|
||
|
||
import (
|
||
"ArmedPolice/utils"
|
||
"time"
|
||
|
||
"gorm.io/gorm"
|
||
)
|
||
|
||
type SysUser struct {
|
||
Model
|
||
ModelTenant
|
||
UUID uint64 `gorm:"column:uuid;uniqueIndex:idx_sys_user_uuid;type:int;default:0;comment:用户唯一UUID" json:"-"`
|
||
Account string `gorm:"column:account;index:idx_sys_user_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:"remark"`
|
||
Status SysUserStatus `gorm:"column:status;type:tinyint(1);default:1;comment:账号状态" json:"status"`
|
||
ModelDeleted
|
||
ModelAt
|
||
}
|
||
|
||
type SysUserAdministrator int
|
||
|
||
const (
|
||
// SysUserAdministratorForOrdinary 普通人员
|
||
SysUserAdministratorForOrdinary SysUserAdministrator = iota
|
||
// SysUserAdministratorForAdmin 管理员
|
||
SysUserAdministratorForAdmin
|
||
)
|
||
|
||
type SysUserStatus int
|
||
|
||
const (
|
||
// SysUserStatusForNormal 正常
|
||
SysUserStatusForNormal SysUserStatus = iota + 1
|
||
// SysUserStatusForDisable 禁止登陆
|
||
SysUserStatusForDisable
|
||
)
|
||
|
||
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 NewSysUser() *SysUser {
|
||
return &SysUser{}
|
||
}
|