kra-new/internal/README.md

43 lines
2.8 KiB
Markdown
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.

# System Module
系统模块承载当前管理后台的完整业务边界。`internal` 顶层只保留有明确
生命周期或分层职责的包:
- `modules`:静态模块 catalog按 system/integration/task/payment 维护 Definition
- `biz/system`:用户、权限、菜单、审计、媒体和系统配置领域
- `biz/payment`:支付订单、支付流程、支付接口和支付日志
- `biz/integration`:集成配置定义、校验和连接测试边界
- `biz/task`:定时任务模型、用例和任务注册协议
- `config`Viper 配置模型、加载、快照和热更新
- `data`:共享数据库生命周期;仓储按 `data/system`、`data/integration`、`data/task`、`data/payment` 隔离
- `initialize`:数据库首次初始化和系统种子数据编排
- `integration`Redis、邮件、对象存储、支付、WebSocket、EMQX、Kafka 和 RabbitMQ 适配器
- `routecatalog`:统一声明 HTTP 路由的公开性、操作审计、请求体策略和 API 元数据
- `server`Gin server 组合与生命周期;横切 HTTP 代码按子包维护:
`server/handler`、`server/middleware`、`server/router`、`server/staticfiles`
通用响应和 Cookie 工具位于 `server/httpx`
- `service`:按 `system`、`payment`、`integration`、`task` 分模块的应用服务、
DTO 与领域对象转换DTO 集中在 `service/dto`,根包仅聚合 Wire ProviderSet
- `worker`:定时任务执行与调度
目录代表边界模块文件按资源命名。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()` 提供通信集成菜单/APItask 通过
`modules/task.Definition()` 提供定时任务迁移和默认任务;
payment 通过 `modules/payment.Definition()` 提供支付迁移及支付菜单/API。两者通过
`worker.TaskMethods` 提供依赖系统用例的任务实现,通过 `server/router.Routes` 提供
路由。静态模块贡献可由 catalog 汇总;带构造依赖的路由和任务仍需在 cmd/Wire
中显式装配,不应误认为只添加 Definition 就能自动发现。