57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
package system
|
|
|
|
import (
|
|
"git.echol.cn/loser/ai_proxy/server/global"
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
// SysUser 系统用户
|
|
type SysUser struct {
|
|
global.GVA_MODEL
|
|
Username string `json:"username" gorm:"comment:用户名;size:100;uniqueIndex;not null"`
|
|
Password string `json:"-" gorm:"comment:密码;size:255;not null"`
|
|
Nickname string `json:"nickname" gorm:"comment:昵称;size:100"`
|
|
Email string `json:"email" gorm:"comment:邮箱;size:100"`
|
|
Phone string `json:"phone" gorm:"comment:手机号;size:20"`
|
|
Avatar string `json:"avatar" gorm:"comment:头像;size:500"`
|
|
Role string `json:"role" gorm:"comment:角色;size:20;default:'user'"` // admin/user
|
|
Status string `json:"status" gorm:"comment:状态;size:20;default:'active'"` // active/disabled
|
|
APIKey string `json:"apiKey" gorm:"comment:API密钥;size:255;uniqueIndex"`
|
|
}
|
|
|
|
func (SysUser) TableName() string {
|
|
return "sys_users"
|
|
}
|
|
|
|
// Login 接口实现
|
|
type Login interface {
|
|
GetUUID() uuid.UUID
|
|
GetUserId() uint
|
|
GetUsername() string
|
|
GetNickname() string
|
|
GetAuthorityId() uint
|
|
}
|
|
|
|
func (s *SysUser) GetUUID() uuid.UUID {
|
|
return uuid.New()
|
|
}
|
|
|
|
func (s *SysUser) GetUserId() uint {
|
|
return s.ID
|
|
}
|
|
|
|
func (s *SysUser) GetUsername() string {
|
|
return s.Username
|
|
}
|
|
|
|
func (s *SysUser) GetNickname() string {
|
|
return s.Nickname
|
|
}
|
|
|
|
func (s *SysUser) GetAuthorityId() uint {
|
|
if s.Role == "admin" {
|
|
return 1
|
|
}
|
|
return 2
|
|
}
|