100 lines
2.1 KiB
Go
100 lines
2.1 KiB
Go
package models
|
|
|
|
// Response 统一响应结构
|
|
type Response struct {
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
Data interface{} `json:"data,omitempty"`
|
|
}
|
|
|
|
// PageResponse 分页响应结构
|
|
type PageResponse struct {
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
Data interface{} `json:"data,omitempty"`
|
|
Total int64 `json:"total"`
|
|
Page int `json:"page"`
|
|
Size int `json:"size"`
|
|
}
|
|
|
|
// LoginResponse 登录响应
|
|
type LoginResponse struct {
|
|
Token string `json:"token"`
|
|
User User `json:"user"`
|
|
ExpireAt int64 `json:"expireAt"`
|
|
}
|
|
|
|
// UserListResponse 用户列表响应
|
|
type UserListResponse struct {
|
|
Users []User `json:"users"`
|
|
Total int64 `json:"total"`
|
|
}
|
|
|
|
// PageTreeResponse 页面树响应
|
|
type PageTreeResponse struct {
|
|
Pages []Page `json:"pages"`
|
|
}
|
|
|
|
// SystemConfigResponse 系统配置响应
|
|
type SystemConfigResponse struct {
|
|
Configs []SystemConfig `json:"configs"`
|
|
}
|
|
|
|
// 响应码常量
|
|
const (
|
|
CodeSuccess = 200
|
|
CodeError = 500
|
|
CodeInvalid = 400
|
|
CodeUnauthorized = 401
|
|
CodeForbidden = 403
|
|
CodeNotFound = 404
|
|
)
|
|
|
|
// 响应消息常量
|
|
const (
|
|
MsgSuccess = "操作成功"
|
|
MsgError = "操作失败"
|
|
MsgInvalid = "参数错误"
|
|
MsgUnauthorized = "未授权"
|
|
MsgForbidden = "禁止访问"
|
|
MsgNotFound = "资源不存在"
|
|
)
|
|
|
|
// NewResponse 创建响应
|
|
func NewResponse(code int, message string, data interface{}) *Response {
|
|
return &Response{
|
|
Code: code,
|
|
Message: message,
|
|
Data: data,
|
|
}
|
|
}
|
|
|
|
// NewSuccessResponse 创建成功响应
|
|
func NewSuccessResponse(data interface{}) *Response {
|
|
return &Response{
|
|
Code: CodeSuccess,
|
|
Message: MsgSuccess,
|
|
Data: data,
|
|
}
|
|
}
|
|
|
|
// NewErrorResponse 创建错误响应
|
|
func NewErrorResponse(message string) *Response {
|
|
return &Response{
|
|
Code: CodeError,
|
|
Message: message,
|
|
}
|
|
}
|
|
|
|
// NewPageResponse 创建分页响应
|
|
func NewPageResponse(data interface{}, total int64, page, size int) *PageResponse {
|
|
return &PageResponse{
|
|
Code: CodeSuccess,
|
|
Message: MsgSuccess,
|
|
Data: data,
|
|
Total: total,
|
|
Page: page,
|
|
Size: size,
|
|
}
|
|
}
|