Files

109 lines
4.9 KiB
Go

package v1
import "github.com/gogf/gf/v2/frame/g"
// AdminUserListReq 管理员列表请求
type AdminUserListReq struct {
g.Meta `path:"/users" method:"get" mime:"json" tags:"管理后台-用户管理" summary:"管理员列表"`
Page int `json:"page" d:"1" dc:"页码"`
PageSize int `json:"page_size" d:"20" dc:"每页数量"`
Keyword string `json:"keyword" dc:"搜索关键词(用户名/邮箱)"`
Role string `json:"role" dc:"角色筛选"`
Status string `json:"status" dc:"状态筛选"`
}
type AdminUserListRes struct {
List []AdminUserItem `json:"list"`
Total int `json:"total"`
Page int `json:"page"`
PageSize int `json:"page_size"`
}
type AdminUserItem struct {
ID int64 `json:"id"`
Username string `json:"username"`
Email string `json:"email"`
DisplayName string `json:"display_name"`
Role string `json:"role"`
Status string `json:"status"`
LastLoginAt string `json:"last_login_at"`
LastLoginIp string `json:"last_login_ip"`
LockedUntil string `json:"locked_until"`
CreatedAt string `json:"created_at"`
// Roles 是该账号已分配的角色。role=super_admin 时为空数组(超管权限来自账号属性,
// 不通过角色授予);非超管且为空数组表示「未分配角色」=零权限,界面应醒目提示。
Roles []AdminRoleBrief `json:"roles"`
}
// AdminUserCreateReq 创建管理员请求
type AdminUserCreateReq struct {
g.Meta `path:"/users" method:"post" mime:"json" tags:"管理后台-用户管理" summary:"创建管理员"`
Username string `json:"username" v:"required|length:3,50#请输入用户名|用户名长度为3-50位" dc:"用户名"`
Password string `json:"password" v:"required|length:8,64#请输入密码|密码长度为8-64位" dc:"密码"`
Email string `json:"email" v:"email#邮箱格式不正确" dc:"邮箱"`
Role string `json:"role" d:"admin" v:"in:super_admin,admin#角色只能是 super_admin 或 admin" dc:"角色:super_admin / admin"`
// RoleIDs 在创建时一并分配角色。不传则账号无任何角色(0 权限,只能访问自助接口),
// 这是安全的默认值,但界面应提示「未分配角色」。role=super_admin 时本字段忽略。
RoleIDs []int64 `json:"role_ids" dc:"分配的角色ID列表"`
}
type AdminUserCreateRes struct {
ID int64 `json:"id"`
}
// AdminUserUpdateReq 更新管理员请求
type AdminUserUpdateReq struct {
g.Meta `path:"/users/{id}" method:"put" mime:"json" tags:"管理后台-用户管理" summary:"更新管理员"`
Id int64 `json:"id" in:"path" v:"required" dc:"管理员ID"`
DisplayName *string `json:"display_name" dc:"显示名称"`
Email *string `json:"email" dc:"邮箱"`
Role *string `json:"role" v:"in:super_admin,admin#角色只能是 super_admin 或 admin" dc:"角色"`
}
type AdminUserUpdateRes struct{}
// AdminUserDeleteReq 删除管理员请求
type AdminUserDeleteReq struct {
g.Meta `path:"/users/{id}" method:"delete" mime:"json" tags:"管理后台-用户管理" summary:"删除管理员"`
Id int64 `json:"id" in:"path" v:"required" dc:"管理员ID"`
}
type AdminUserDeleteRes struct{}
// AdminUserUpdateStatusReq 启用/禁用管理员请求
type AdminUserUpdateStatusReq struct {
g.Meta `path:"/users/{id}/status" method:"put" mime:"json" tags:"管理后台-用户管理" summary:"启用/禁用管理员"`
Id int64 `json:"id" in:"path" v:"required" dc:"管理员ID"`
Status string `json:"status" v:"required|in:active,disabled#请选择状态|状态值无效" dc:"状态:active / disabled"`
}
type AdminUserUpdateStatusRes struct{}
// AdminUserResetPasswordReq 重置管理员密码请求
type AdminUserResetPasswordReq struct {
g.Meta `path:"/users/{id}/reset-password" method:"put" mime:"json" tags:"管理后台-用户管理" summary:"重置管理员密码"`
Id int64 `json:"id" in:"path" v:"required" dc:"管理员ID"`
NewPassword string `json:"new_password" v:"required|length:8,64#请输入新密码|密码长度为8-64位" dc:"新密码"`
}
type AdminUserResetPasswordRes struct{}
// AdminUserUnlockReq 解除管理员登录锁定请求
type AdminUserUnlockReq struct {
g.Meta `path:"/users/{id}/unlock" method:"put" mime:"json" tags:"管理后台-用户管理" summary:"解除管理员登录锁定"`
Id int64 `json:"id" in:"path" v:"required" dc:"管理员ID"`
}
type AdminUserUnlockRes struct{}
// AdminUserExportReq 导出用户列表请求
type AdminUserExportReq struct {
g.Meta `path:"/users/export" method:"get" mime:"json" tags:"管理后台-用户管理" summary:"导出用户列表"`
Format string `json:"format" in:"query" d:"csv" v:"in:csv,xlsx" dc:"导出格式:csv / xlsx"`
Keyword string `json:"keyword" in:"query" dc:"搜索关键词(用户名/邮箱)"`
Role string `json:"role" in:"query" dc:"角色筛选"`
Status string `json:"status" in:"query" dc:"状态筛选"`
}
type AdminUserExportRes struct{}