feat():learning后台管理项目初始化

This commit is contained in:
yuj
2025-12-04 16:23:46 +08:00
parent 39886d50d2
commit 88e048f4d1
154 changed files with 28966 additions and 6 deletions

View File

@@ -0,0 +1,80 @@
package models
import "time"
// GoalfyMaxUser 对应 admin_goalfymax_users 表
type GoalfyMaxUser struct {
ID uint `json:"id" gorm:"primaryKey;autoIncrement;comment:主键ID"`
UserID int `json:"user_id" gorm:"not null;uniqueIndex:uk_user_id;comment:SSO用户ID"`
Username string `json:"username" gorm:"not null;type:varchar(50);comment:用户名"`
Email string `json:"email" gorm:"not null;type:varchar(100);comment:邮箱"`
Nickname string `json:"nickname" gorm:"type:varchar(50);comment:昵称"`
Avatar string `json:"avatar" gorm:"type:varchar(255);comment:头像URL"`
UserLevelCode string `json:"user_level_code" gorm:"type:varchar(50);default:'normal';comment:用户等级代码"`
IsBanned bool `json:"is_banned" gorm:"not null;default:false;comment:是否被封禁"`
BanReason string `json:"ban_reason" gorm:"type:varchar(255);comment:封禁原因"`
BannedAt *time.Time `json:"banned_at" gorm:"comment:封禁时间"`
BannedBy int `json:"banned_by" gorm:"comment:封禁操作者ID"`
LastLoginAt *time.Time `json:"last_login_at" gorm:"comment:最后登录时间"`
GoalfyHubPermission int `json:"goalfy_hub_permission" gorm:"default:0;comment:是否具备GoalfyHub权限 (0: 不具备, 1: 具备)"`
Version int `json:"version" gorm:"default:1;comment:1用户版 2观察版 3用户版和观察版"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt *time.Time `json:"-" gorm:"default:null"`
// Balance 用户余额美元从Redis查询不存储在数据库中
Balance *float64 `json:"balance,omitempty" gorm:"-"`
}
func (GoalfyMaxUser) TableName() string {
return "admin_goalfymax_users"
}
// 列表请求
type GoalfyMaxUserListRequest struct {
Username string `form:"username"`
Email string `form:"email"`
Status *int `form:"status"` // 1 正常 0 封禁(映射到 IsBanned
Page int `form:"page,default=1"`
Size int `form:"size,default=20"`
}
// 更新请求
type GoalfyMaxUserUpdateRequest struct {
Nickname string `json:"nickname"`
Email string `json:"email"`
Avatar string `json:"avatar"`
UserLevelCode string `json:"user_level_code"`
Version *int `json:"version"` // 版本1-用户版 2-观察版 3-用户版和观察版
GoalfyHubPermission *int `json:"goalfy_hub_permission"`
}
// 封禁请求
type GoalfyMaxUserBanRequest struct {
Reason string `json:"reason" binding:"required"`
}
// 增加余额请求
type GoalfyMaxUserAddBalanceRequest struct {
Amount float64 `json:"amount" binding:"required,gt=0"` // 美元金额必须大于0
}
// 新增用户请求
type GoalfyMaxUserCreateRequest struct {
Username string `json:"username" binding:"required,min=3,max=50"`
Email string `json:"email" binding:"required,email"`
Password string `json:"password" binding:"required,min=8"`
Nickname string `json:"nickname"`
Avatar string `json:"avatar"`
UserLevelCode string `json:"user_level_code"` // 默认为 normal
Version int `json:"version"` // 版本1-用户版 2-观察版 3-用户版和观察版默认为1
}
// 新增用户请求(支持字符串输入)
type GoalfyMaxUserCreateRequestString struct {
Username string `json:"username" binding:"required,min=3,max=50"`
Email string `json:"email" binding:"required,email"`
Phone string `json:"phone"`
Password string `json:"password"`
Nickname string `json:"nickname"`
Avatar string `json:"avatar"`
}