hyapp-admin-server
HYApp 管理后台 API,基于 Gin、GORM 和 MySQL。
当前后台后端位于 hyapp-server/server/admin,是 hyapp-server/go.work 内的独立 Go module。它只依赖 hyapp.local/api 这个 protobuf 契约 module,不直接依赖 app 后端服务实现包。
Local Run
go mod tidy
go run ./cmd/server -config configs/config.yaml
从 hyapp-server 根目录可以用 Makefile 启动:
make admin-up
依赖已经启动时,可以只启动后台进程:
make admin
默认端口:13100。本地 MySQL 对齐 app 后端,使用 127.0.0.1:23306;mysql_dsn 指向后台库 hyapp_admin,user_mysql_dsn 只读访问用户库 hyapp_user。本地 bootstrap 由 configs/config.yaml 的 bootstrap 控制,首次启动如果没有用户,会创建配置里的管理员账号。
依赖:
- MySQL:
127.0.0.1:23306 - Redis:
127.0.0.1:13379 - user-service:
127.0.0.1:13005
显式执行 bootstrap:
go run ./cmd/server -config configs/config.yaml -bootstrap
Structure
后台后端按模块化单体组织。业务代码按模块收口,每个模块内按功能拆文件:
internal/modules/<module>/routes.go:模块路由。internal/modules/<module>/handler.go:HTTP 参数和响应适配,不直接访问 repository。internal/modules/<module>/service.go:模块业务 Service。internal/modules/<module>/request.go:模块请求结构。internal/modules/<module>/response.go:模块响应 DTO 或展示转换。internal/modules/shared:跨模块的当前用户、分页参数、审计事件和少量通用 DTO。internal/service:只保留 JWT/AuthService 这类跨模块基础能力。internal/platform:后台服务自有基础设施适配,避免 import app 后端pkg。internal/response:通用响应协议,按 body、codes、page、success、error 拆分。internal/repository/*:后台库读写,按 auth、rbac、menu、audit、job 等拆分。internal/integration/*:访问 app 后端服务的 client。internal/migration:版本化 SQL migration。internal/cache:Redis 健康检查和分布式锁。internal/job:DB 租约、Redis 锁、重试和导出产物任务执行器。internal/security:密码和 token 安全工具。
关键运行策略:
environment、jwt_secret、mysql_auto_migrate、bootstrap都只来自config.yaml。- 非
local/dev环境禁止默认 JWT secret、默认 bootstrap 密码和mysql_auto_migrate。 - 数据权限通过角色的
data-scopes保存,并在后台用户列表/导出查询中执行。 - 任务产物默认写入
storage/exports,通过/api/v1/jobs/:id/artifact下载。
Verify
go test ./...