Files
junhong_cmp_fiber/pkg/errors/codes.go
huang 984ccccc63 docs(constitution): 新增数据库设计原则(v2.4.0)
在项目宪章中新增第九条原则"数据库设计原则",明确禁止使用数据库外键约束和ORM关联标签。

主要变更:
- 新增原则IX:数据库设计原则(Database Design Principles)
- 强制要求:数据库表不得使用外键约束
- 强制要求:GORM模型不得使用ORM关联标签(foreignKey、hasMany等)
- 强制要求:表关系必须通过ID字段手动维护
- 强制要求:关联数据查询必须显式编写,避免ORM魔法
- 强制要求:时间字段由GORM处理,不使用数据库触发器

设计理念:
- 提升业务逻辑灵活性(无数据库约束限制)
- 优化高并发性能(无外键检查开销)
- 增强代码可读性(显式查询,无隐式预加载)
- 简化数据库架构和迁移流程
- 支持分布式和微服务场景

版本升级:2.3.0 → 2.4.0(MINOR)
2025-11-13 13:40:19 +08:00

48 lines
1.8 KiB
Go
Raw 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 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
}