This commit is contained in:
2026-08-25 11:52:25 +08:00
parent d64706e97b
commit 4fbf8bfb53
16 changed files with 1101 additions and 16 deletions
@@ -10,7 +10,7 @@
## 1. 项目定位
`baiyue-firstleg` 是国内头程业务后端仓库,采用 Maven 多模块单仓结构。仓库内包含 7 个公共模块和 11 个可独立启动、构建、制作镜像的微服务。
`baiyue-firstleg` 是国内头程与海外仓后端仓库,采用 Maven 多模块单仓结构。根 POM 聚合 22 个 Maven 模块,其中 7 个是公共/依赖模块,15 个是可独立启动、构建、制作镜像的微服务。
当前技术基线:
@@ -24,7 +24,7 @@
- SpringDoc OpenAPI / Swagger
- GitLab、Jenkins、Docker Compose
本仓库只保存头程代码。尾程业务位于独立 Git 仓库,不允许把尾程源码、数据库或配置重新放回本仓库。
国内与海外服务共享源码仓库和公共制品,但保持独立数据库、Nacos 命名空间与部署边界;跨区域业务协作使用版本化 Outbox/Inbox 事件,不共享业务数据源。
## 2. 根目录结构
@@ -39,11 +39,15 @@ baiyue-firstleg/
├─ common-event-contract/ # 国内外跨区域事件统一契约
│
├─ gateway/ # 统一 API 网关
├─ gateway-overseas/ # 海外区域 API 网关
├─ auth/ # 统一登录与账号凭据
├─ iam/ # 租户、成员、角色、权限、企业审核
├─ order/ # 头程订单中心
├─ firstleg/ # 履约任务、二期入库、测量与计费
├─ warehouse/ # 仓库主数据、托盘与库位资源
├─ finance/ # 财务账期、账单、收付款与核销
├─ lastleg-service/ # 海外尾程、入仓、库存与本土业务
├─ warehouse-overseas-service/ # 海外仓库、库位、托盘与资源锁
├─ file/ # 资质、导出与测量图片文件中心
├─ print/ # 打印中心
├─ audit-service/ # 审计日志中心
@@ -170,7 +174,7 @@ config/nacos/
└─ cn/ # 国内服务器配置模板
```
每套目录包含公共配置 `baiyue-common.yml` 和 11 个服务配置。配置模板可以提交,真实密码和第三方密钥不能提交。
`local/`、`cn/`、`overseas/` 按部署区域保存公共配置和该区域需要的服务配置。配置模板可以提交,真实密码和第三方密钥不能提交。
### `deploy/`
@@ -179,7 +183,8 @@ deploy/
├─ docker/Dockerfile # 通用 Java 17 镜像
├─ env/.env.test.example # 环境变量示例
├─ scripts/deploy-services.sh # Jenkins 增量部署脚本
├─ docker-compose.yml # 11 个业务服务编排
├─ docker-compose.yml # 国内区域服务编排
├─ docker-compose.overseas.yml # 海外区域服务编排
├─ docker-compose.rocketmq.yml # 公共导出 RocketMQ 基础设施
├─ sql/ # 测试/存量环境统一迁移入口与说明
└─ service-map.yml # 模块、JAR、端口映射
@@ -276,6 +281,6 @@ HTTP 401 / `A0401`,不得再按 HTTP 200 + 空权限处理;只有使用新
- 平台端和商户端权限分别管理,接口与按钮权限都必须由后端校验。
- Controller 负责协议转换,Service 负责业务编排,Repository/Mapper 负责持久化。
- 服务之间只传 DTO 或事件契约,不能依赖其他服务的 Entity、Mapper。
- 公共模块变化会影响多个服务,Jenkins 会自动重建全部 11 个服务。
- 公共模块变化会影响多个服务,Jenkins 会按 `service-map.yml` 覆盖的全部 15 个服务执行受影响构建。
- 单一 Git 仓库不等于单一部署单元;每个服务仍生成独立 JAR、镜像和容器。
- 头程与尾程保持两个 Git 仓库、两套数据库和两套运行环境。
- 国内头程与海外仓共享 Git 仓库,但保持两套数据库、Nacos 命名空间和部署环境。