|
|
||
|---|---|---|
| .. | ||
| biz | ||
| config | ||
| data | ||
| initialize | ||
| integration | ||
| logging | ||
| modules | ||
| paymentkit | ||
| routecatalog | ||
| server | ||
| service | ||
| utils | ||
| worker | ||
| README.md | ||
README.md
System Module
系统模块承载当前管理后台的完整业务边界。internal 顶层只保留有明确
生命周期或分层职责的包:
modules:静态模块 catalog,按 system/integration/task/payment 维护 Definitionbiz/system:用户、权限、菜单、审计、媒体和系统配置领域biz/payment:支付订单、支付流程、支付接口和支付日志biz/integration:集成配置定义、校验和连接测试边界biz/task:定时任务模型、用例和任务注册协议config:Viper 配置模型、加载、快照和热更新data:共享数据库生命周期;仓储按data/system、data/integration、data/task、data/payment隔离initialize:数据库首次初始化和系统种子数据编排integration:Redis、邮件、对象存储、支付、WebSocket、EMQX 和 RabbitMQ 适配器routecatalog:统一声明 HTTP 路由的公开性、操作审计、请求体策略和 API 元数据server:Gin server 组合与生命周期;横切 HTTP 代码按子包维护:server/handler、server/middleware、server/router、server/staticfiles; 通用响应和 Cookie 工具位于server/httpxservice:按system、payment、integration、task分模块的应用服务、 DTO 与领域对象转换;DTO 集中在service/dto,根包仅聚合 Wire ProviderSetworker:定时任务执行与调度
目录代表边界,模块文件按资源命名。DTO、handler、中间件、路由和 HTTP
响应工具分别放在独立子包中,避免 service/server 根目录堆积几十个
文件,同时不把只有一两个文件的业务逻辑再拆成新包。system 的 module
定义位于 modules/system,后台 JWT 签发/解析位于 data/system/token.go。
internal/modules/catalog.go 是静态模块 catalog 的唯一注册点,负责按依赖顺序
汇总各模块 Definition。cmd 是应用组合根,负责依赖注入后的任务注册和路由
组合;这样新增模块只需在 modules catalog 注册一次,组合根不再重复维护模块
声明。
系统表统一使用 sys_ 前缀;业务表应由新业务模块自行命名和迁移,不要混入
本目录。
system 通过 modules/system.Definition() 提供系统迁移;integration 通过
modules/integration.Definition() 提供通信集成菜单/API;task 通过
modules/task.Definition() 提供定时任务迁移和默认任务;
payment 通过 modules/payment.Definition() 提供支付迁移及支付菜单/API。两者通过
worker.TaskMethods 提供依赖系统用例的任务实现,通过 server/router.Routes 提供
路由。静态模块贡献可由 catalog 汇总;带构造依赖的路由和任务仍需在 cmd/Wire
中显式装配,不应误认为只添加 Definition 就能自动发现。