pet-ai/server/plugin/wechat-integration/model/response/response.go

160 lines
5.0 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package response
// 微信小程序错误码定义
const (
// 成功
SUCCESS = 0
// 通用错误码 (1000-1999)
ERROR_COMMON = 1000 // 通用错误
ERROR_PARAM_INVALID = 1001 // 参数无效
ERROR_PARAM_MISSING = 1002 // 参数缺失
ERROR_INTERNAL = 1003 // 内部错误
ERROR_NETWORK = 1004 // 网络错误
ERROR_TIMEOUT = 1005 // 请求超时
// 认证相关错误码 (2000-2999)
ERROR_AUTH_FAILED = 2000 // 认证失败
ERROR_TOKEN_INVALID = 2001 // Token无效
ERROR_TOKEN_EXPIRED = 2002 // Token过期
ERROR_UNAUTHORIZED = 2003 // 未授权
ERROR_PERMISSION_DENIED = 2004 // 权限不足
// 微信相关错误码 (3000-3999)
ERROR_WX_CODE_INVALID = 3000 // 微信Code无效
ERROR_WX_SESSION_FAILED = 3001 // 获取微信Session失败
ERROR_WX_DECRYPT_FAILED = 3002 // 微信数据解密失败
ERROR_WX_OPENID_EMPTY = 3003 // 微信OpenID为空
ERROR_WX_SESSIONKEY_EMPTY = 3004 // 微信SessionKey为空
ERROR_WX_PHONE_DECRYPT_FAILED = 3005 // 微信手机号解密失败
ERROR_WX_PHONE_NOT_FOUND = 3006 // 解密数据中未找到手机号
// 用户相关错误码 (4000-4999)
ERROR_USER_NOT_FOUND = 4000 // 用户不存在
ERROR_USER_EXISTED = 4001 // 用户已存在
ERROR_USER_CREATE_FAILED = 4002 // 用户创建失败
ERROR_USER_UPDATE_FAILED = 4003 // 用户更新失败
ERROR_USER_DELETE_FAILED = 4004 // 用户删除失败
ERROR_USER_DISABLED = 4005 // 用户已禁用
)
// 错误信息映射
var ErrorMessages = map[int]string{
SUCCESS: "操作成功",
// 通用错误
ERROR_COMMON: "操作失败",
ERROR_PARAM_INVALID: "参数无效",
ERROR_PARAM_MISSING: "参数缺失",
ERROR_INTERNAL: "内部错误",
ERROR_NETWORK: "网络错误",
ERROR_TIMEOUT: "请求超时",
// 认证相关错误
ERROR_AUTH_FAILED: "认证失败",
ERROR_TOKEN_INVALID: "Token无效",
ERROR_TOKEN_EXPIRED: "Token已过期",
ERROR_UNAUTHORIZED: "未授权访问",
ERROR_PERMISSION_DENIED: "权限不足",
// 微信相关错误
ERROR_WX_CODE_INVALID: "微信Code无效",
ERROR_WX_SESSION_FAILED: "获取微信Session失败",
ERROR_WX_DECRYPT_FAILED: "微信数据解密失败",
ERROR_WX_OPENID_EMPTY: "微信OpenID为空",
ERROR_WX_SESSIONKEY_EMPTY: "微信SessionKey为空",
ERROR_WX_PHONE_DECRYPT_FAILED: "微信手机号解密失败",
ERROR_WX_PHONE_NOT_FOUND: "解密数据中未找到手机号",
// 用户相关错误
ERROR_USER_NOT_FOUND: "用户不存在",
ERROR_USER_EXISTED: "用户已存在",
ERROR_USER_CREATE_FAILED: "用户创建失败",
ERROR_USER_UPDATE_FAILED: "用户更新失败",
ERROR_USER_DELETE_FAILED: "用户删除失败",
ERROR_USER_DISABLED: "用户已禁用",
}
// GetErrorMessage 获取错误信息
func GetErrorMessage(code int) string {
if msg, exists := ErrorMessages[code]; exists {
return msg
}
return "未知错误"
}
// Response 标准响应结构
type Response struct {
Code int `json:"code"`
Data interface{} `json:"data"`
Msg string `json:"msg"`
}
// SuccessResponse 成功响应
func SuccessResponse(data interface{}) Response {
return Response{
Code: SUCCESS,
Data: data,
Msg: GetErrorMessage(SUCCESS),
}
}
// SuccessResponseWithMsg 带自定义消息的成功响应
func SuccessResponseWithMsg(data interface{}, msg string) Response {
return Response{
Code: SUCCESS,
Data: data,
Msg: msg,
}
}
// ErrorResponse 错误响应
func ErrorResponse(code int) Response {
return Response{
Code: code,
Data: nil,
Msg: GetErrorMessage(code),
}
}
// ErrorResponseWithMsg 带自定义消息的错误响应
func ErrorResponseWithMsg(code int, msg string) Response {
return Response{
Code: code,
Data: nil,
Msg: msg,
}
}
// MiniLoginResponse 小程序登录响应
type MiniLoginResponse struct {
OpenID string `json:"openid"` // 用户openid
UnionID *string `json:"unionid"` // 用户unionid
Token string `json:"token"` // JWT token
}
// MiniUserInfoResponse 小程序用户信息响应
type MiniUserInfoResponse struct {
NickName *string `json:"nickName"` // 用户昵称
Avatar *string `json:"avatar"` // 用户头像
Phone *string `json:"phone"` // 用户手机号
Gender *int `json:"gender"` // 性别0-未知1-男2-女
City *string `json:"city"` // 城市
Province *string `json:"province"` // 省份
Country *string `json:"country"` // 国家
NeedPhoneAuth bool `json:"needPhoneAuth"` // 是否需要授权手机号
}
// PhoneUpdateResponse 手机号更新响应
type PhoneUpdateResponse struct {
Phone string `json:"phone"` // 更新后的手机号
}
// PageResult 分页结果
type PageResult struct {
List interface{} `json:"list"` // 数据列表
Total int64 `json:"total"` // 总数
Page int `json:"page"` // 当前页
PageSize int `json:"pageSize"` // 每页数量
}