kra-new/internal
Yvan acaee94858 优化结构 2026-08-24 13:56:06 +08:00
..
app 优化结构 2026-08-24 13:25:16 +08:00
biz 优化结构 2026-08-24 13:56:06 +08:00
config 优化结构 2026-08-24 13:25:16 +08:00
data 优化结构 2026-08-24 13:56:06 +08:00
global 优化结构 2026-08-24 13:25:16 +08:00
initialize 优化结构 2026-08-24 13:56:06 +08:00
integration 优化结构 2026-08-24 13:25:16 +08:00
modules 优化结构 2026-08-23 00:38:33 +08:00
routecatalog 优化结构 2026-08-22 17:43:14 +08:00
security 优化结构 2026-08-23 00:38:33 +08:00
server 优化结构 2026-08-24 13:25:16 +08:00
service 优化结构 2026-08-23 02:36:58 +08:00
utils 优化结构 2026-08-24 13:25:16 +08:00
worker 优化结构 2026-08-24 13:25:16 +08:00
README.md 优化结构 2026-08-23 02:36:58 +08:00

README.md

System Module

系统模块承载当前管理后台的完整业务边界。internal 顶层只保留有明确 生命周期或分层职责的包:

  • app:运行时组合根,负责依赖注入后的任务/路由组合
  • modules:静态模块 catalog按 system/integration/task/payment 维护 Definition
  • biz/system:用户、权限、菜单、审计、媒体和系统配置领域
  • biz/payment:支付订单、支付流程、支付接口和支付日志
  • biz/integration:集成配置定义、校验和连接测试边界
  • biz/task:定时任务模型、用例和任务注册协议
  • conf:基础配置 proto 与运行时配置解析
  • data:共享数据库生命周期;仓储按 data/systemdata/integrationdata/taskdata/payment 隔离
  • initialize:数据库首次初始化和系统种子数据编排
  • integrationRedis、邮件、对象存储、支付、WebSocket、EMQX 和 RabbitMQ 适配器
  • routecatalog:统一声明 HTTP 路由的公开性、操作审计、请求体策略和 API 元数据
  • security:后台 JWT 等安全实现
  • serverGin server 组合与生命周期;横切 HTTP 代码按子包维护: server/handlerserver/middlewareserver/routerserver/staticfiles 通用响应和 Cookie 工具位于 pkg/httpx
  • service:按 systempaymentintegrationtask 分模块的应用服务、 DTO 与领域对象转换DTO 集中在 service/dto,根包是兼容旧调用方的类型/构造器门面
  • worker:定时任务执行与调度

目录代表边界模块文件按资源命名。DTO、handler、中间件、路由和 HTTP 响应工具分别放在独立子包中,避免 service/server 根目录堆积几十个 文件同时不把只有一两个文件的业务逻辑再拆成新包。system 的 module 定义位于 modules/systemJWT 实现集中在 securityprotobuf JSON 统一使用 pkg/protoutil

internal/modules/catalog.go 是静态模块 catalog 的唯一注册点,负责按依赖顺序 汇总各模块 Definition。internal/app/runtime.go 只负责依赖注入后的任务注册 和路由运行时组合。这样新增模块只需在 modules catalog 注册一次app 不再重复 维护模块声明。

系统表统一使用 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 就能自动发现。