package errors // 应用错误码 const ( CodeSuccess = 0 // 成功 CodeInternalError = 1000 // 内部服务器错误 CodeMissingToken = 1001 // 缺失认证令牌 CodeInvalidToken = 1002 // 令牌无效或已过期 CodeTooManyRequests = 1003 // 请求过于频繁(限流) CodeAuthServiceUnavailable = 1004 // 认证服务不可用(Redis 宕机) CodeNotFound = 1005 // 资源不存在 CodeBadRequest = 1006 // 请求参数错误 CodeUnauthorized = 1007 // 未授权 CodeForbidden = 1008 // 禁止访问 ) // ErrorMessage 表示双语错误消息 type ErrorMessage struct { EN string ZH string } // errorMessages 将错误码映射到双语消息 var errorMessages = map[int]ErrorMessage{ CodeSuccess: {"Success", "成功"}, CodeInternalError: {"Internal server error", "内部服务器错误"}, CodeMissingToken: {"Missing authentication token", "缺失认证令牌"}, CodeInvalidToken: {"Invalid or expired token", "令牌无效或已过期"}, CodeTooManyRequests: {"Too many requests", "请求过于频繁"}, CodeAuthServiceUnavailable: {"Authentication service unavailable", "认证服务不可用"}, CodeNotFound: {"Resource not found", "资源不存在"}, CodeBadRequest: {"Bad request", "请求参数错误"}, CodeUnauthorized: {"Unauthorized", "未授权"}, CodeForbidden: {"Forbidden", "禁止访问"}, } // GetMessage 根据错误码和语言返回错误消息 func GetMessage(code int, lang string) string { msg, ok := errorMessages[code] if !ok { return "Unknown error" } if lang == "zh" || lang == "zh-CN" { return msg.ZH } return msg.EN }