54 lines
2.4 KiB
Go
54 lines
2.4 KiB
Go
package user
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
const (
|
|
//AccountNormal = 1 // 正常
|
|
AccountFrozen = 2 // 冻结
|
|
AccountBanned = 3 // 封禁
|
|
)
|
|
|
|
// 玩家账户表
|
|
type UserAccount struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
Username string `gorm:"type:varchar(32);uniqueIndex;not null" json:"username"` // 用户名
|
|
Password string `gorm:"type:varchar(255);not null" json:"password"` // 密码哈希
|
|
Email string `gorm:"type:varchar(100)" json:"email"` // 邮箱(可选)
|
|
Phone string `gorm:"type:varchar(20)" json:"phone"` // 手机号(可选)
|
|
DeviceID string `gorm:"type:varchar(64);index" json:"device_id"` // 设备ID
|
|
LastLoginIP string `gorm:"type:varchar(45)" json:"last_login_ip"` // 最后登录IP(支持IPv6)
|
|
LastLoginTime time.Time `json:"last_login_time"` // 最后登录时间
|
|
Status int `gorm:"type:tinyint;default:1" json:"status"` // 账号状态 1-正常 2-冻结 3-封禁
|
|
RegisterIP string `gorm:"type:varchar(45)" json:"register_ip"` // 注册IP
|
|
RegisterTime time.Time `gorm:"type:TIMESTAMP;default:CURRENT_TIMESTAMP" json:"register_time"` // 注册时间
|
|
}
|
|
|
|
func (u UserAccount) GetId() uint {
|
|
return u.ID
|
|
}
|
|
|
|
func (u UserAccount) TableName() string {
|
|
return "user_account"
|
|
}
|
|
|
|
// 玩家登录记录表
|
|
type UserLoginLog struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
UID uint `gorm:"index" json:"uid"` // 关联玩家ID
|
|
LoginIP string `gorm:"type:varchar(45);not null" json:"login_ip"` // 登录IP
|
|
LoginTime time.Time `gorm:"type:TIMESTAMP;default:CURRENT_TIMESTAMP" json:"login_time"` // 登录时间
|
|
DeviceInfo string `gorm:"type:varchar(255)" json:"device_info"` // 设备信息(JSON格式)
|
|
LoginResult bool `json:"login_result"` // 登录结果 true-成功 false-失败
|
|
FailReason string `gorm:"type:varchar(100)" json:"fail_reason"` // 失败原因
|
|
}
|
|
|
|
func (u UserLoginLog) GetId() uint {
|
|
return u.ID
|
|
}
|
|
|
|
func (u UserLoginLog) TableName() string {
|
|
return "user_login_log"
|
|
}
|