refactor: 将设计文档中的Mermaid图表转换为ASCII格式
为提高兼容性,避免Mermaid版本兼容问题,将所有设计文档中的 Mermaid图表转换为ASCII格式。 修改文件: - HLD-系统概要设计.md • 业务范围图 (mindmap → ASCII) • 总体架构图 (graph → ASCII) • 技术架构图 (graph → ASCII) • 部署架构图 (graph → ASCII) • 模块划分图 (graph → ASCII) • 模块交互图 (sequenceDiagram → ASCII) • 接口分组图 (graph → ASCII) - LLD-会员模块详细设计.md • 模块边界图 (graph → ASCII) • 实体关系图 (erDiagram → ASCII) - LLD-预约模块详细设计.md • 模块边界图 (graph → ASCII) • 实体关系图 (erDiagram → ASCII) - LLD-签到模块详细设计.md • 模块边界图 (graph → ASCII) • 实体关系图 (erDiagram → ASCII) 所有ASCII图表采用统一的边框样式,左右两侧对齐,提高可读性。~
This commit is contained in:
+344
-344
@@ -79,54 +79,66 @@
|
||||
|
||||
### 2.3 业务范围
|
||||
|
||||
```mermaid
|
||||
mindmap
|
||||
root((业务范围))
|
||||
会员管理
|
||||
会员注册
|
||||
会员卡管理
|
||||
权益管理
|
||||
等级管理
|
||||
预约管理
|
||||
团课预约
|
||||
私教预约
|
||||
场地预约
|
||||
线上课程
|
||||
签到管理
|
||||
扫码签到
|
||||
刷脸签到
|
||||
NFC签到
|
||||
教练代签
|
||||
课程管理
|
||||
课程类型
|
||||
课程排期
|
||||
场地管理
|
||||
价格配置
|
||||
教练管理
|
||||
教练信息
|
||||
排班管理
|
||||
课时统计
|
||||
评价管理
|
||||
财务管理
|
||||
营收统计
|
||||
账单管理
|
||||
退款管理
|
||||
对账管理
|
||||
计划中心
|
||||
训练计划
|
||||
课程排期
|
||||
会员目标
|
||||
教练排班
|
||||
数据分析
|
||||
会员分析
|
||||
课程分析
|
||||
财务分析
|
||||
运营分析
|
||||
系统管理
|
||||
租户管理
|
||||
门店管理
|
||||
权限管理
|
||||
系统配置
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ 业务范围 │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 会员管理 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 会员注册 • 会员卡管理 • 权益管理 • 等级管理 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 预约管理 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 团课预约 • 私教预约 • 场地预约 • 线上课程 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 签到管理 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 扫码签到 • 刷脸签到 • NFC签到 • 教练代签 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 课程管理 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 课程类型 • 课程排期 • 场地管理 • 价格配置 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 教练管理 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 教练信息 • 排班管理 • 课时统计 • 评价管理 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 财务管理 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 营收统计 • 账单管理 • 退款管理 • 对账管理 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 计划中心 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 训练计划 • 课程排期 • 会员目标 • 教练排班 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 数据分析 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 会员分析 • 课程分析 • 财务分析 • 运营分析 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 系统管理 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 租户管理 • 门店管理 • 权限管理 • 系统配置 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
@@ -137,186 +149,139 @@ mindmap
|
||||
|
||||
采用分层架构 + 微服务思想的模块化设计:
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph ClientLayer[客户端层]
|
||||
A1[会员小程序<br/>uniapp+Vue3]
|
||||
A2[教练端App<br/>uniapp+Vue3]
|
||||
A3[管理后台PC<br/>Vue3+Vite]
|
||||
A4[硬件设备<br/>人脸/NFC]
|
||||
end
|
||||
|
||||
subgraph Gateway[API Gateway<br/>统一网关]
|
||||
B1[路由转发]
|
||||
B2[认证鉴权]
|
||||
B3[限流熔断]
|
||||
B4[日志追踪]
|
||||
end
|
||||
|
||||
subgraph BusinessLayer[业务层]
|
||||
C1[会员服务<br/>Member Service]
|
||||
C2[预约服务<br/>Booking Service]
|
||||
C3[数据服务<br/>Data Service]
|
||||
end
|
||||
|
||||
subgraph CommonLayer[公共服务层]
|
||||
D1[认证服务]
|
||||
D2[消息服务]
|
||||
D3[文件服务]
|
||||
D4[缓存服务]
|
||||
end
|
||||
|
||||
subgraph InfraLayer[基础设施层]
|
||||
E1[PostgreSQL]
|
||||
E2[R2DBC]
|
||||
E3[Caffeine]
|
||||
E4[Redis可选]
|
||||
end
|
||||
|
||||
subgraph ExternalLayer[外部服务]
|
||||
F1[微信开放平台]
|
||||
F2[短信服务]
|
||||
F3[支付服务]
|
||||
F4[OSS存储]
|
||||
end
|
||||
|
||||
A1 --> Gateway
|
||||
A2 --> Gateway
|
||||
A3 --> Gateway
|
||||
A4 --> Gateway
|
||||
|
||||
Gateway --> C1
|
||||
Gateway --> C2
|
||||
Gateway --> C3
|
||||
|
||||
C1 --> CommonLayer
|
||||
C2 --> CommonLayer
|
||||
C3 --> CommonLayer
|
||||
|
||||
CommonLayer --> InfraLayer
|
||||
CommonLayer --> ExternalLayer
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ 总体架构 │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 客户端层 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 会员小程序 (uniapp+Vue3) │ │
|
||||
│ │ • 教练端App (uniapp+Vue3) │ │
|
||||
│ │ • 管理后台PC (Vue3+Vite) │ │
|
||||
│ │ • 硬件设备 (人脸/NFC) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ API Gateway 统一网关 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 路由转发 • 认证鉴权 • 限流熔断 • 日志追踪 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 业务层 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 会员服务 (Member Service) │ │
|
||||
│ │ • 预约服务 (Booking Service) │ │
|
||||
│ │ • 数据服务 (Data Service) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 公共服务层 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 认证服务 • 消息服务 • 文件服务 • 缓存服务 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 基础设施层 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • PostgreSQL • R2DBC • Caffeine • Redis(可选) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 外部服务层 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 微信开放平台 • 短信服务 • 支付服务 • OSS存储 │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 3.2 技术架构
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph Presentation[表现层 Presentation]
|
||||
A1[会员端 uniapp<br/>Vue3 + TS<br/>Pinia<br/>uni-ui]
|
||||
A2[教练端 uniapp<br/>Vue3 + TS<br/>Pinia<br/>uni-ui]
|
||||
A3[管理后台 Vue3<br/>Vue3 + TS<br/>Pinia<br/>Element Plus]
|
||||
end
|
||||
|
||||
subgraph Gateway[网关层 Gateway]
|
||||
B[Spring Cloud Gateway<br/>路由转发<br/>认证鉴权<br/>限流熔断<br/>日志追踪<br/>灰度发布]
|
||||
end
|
||||
|
||||
subgraph Business[业务层 Business]
|
||||
C[Spring Boot 3 + WebFlux + JDK 21]
|
||||
C1[Controller<br/>API]
|
||||
C2[Service<br/>业务逻辑]
|
||||
C3[Repository<br/>数据访问]
|
||||
C4[Model<br/>领域模型]
|
||||
end
|
||||
|
||||
subgraph Data[数据层 Data]
|
||||
D1[PostgreSQL<br/>R2DBC<br/>Flyway]
|
||||
D2[Caffeine<br/>本地缓存<br/>热点数据]
|
||||
D3[Redis可选<br/>分布式缓存<br/>分布式锁]
|
||||
end
|
||||
|
||||
A1 --> B
|
||||
A2 --> B
|
||||
A3 --> B
|
||||
B --> C
|
||||
C --> C1
|
||||
C1 --> C2
|
||||
C2 --> C3
|
||||
C3 --> C4
|
||||
C4 --> D1
|
||||
C4 --> D2
|
||||
C4 --> D3
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ 技术架构 │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 表现层 Presentation │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 会员端 uniapp (Vue3 + TS + Pinia + uni-ui) │ │
|
||||
│ │ • 教练端 uniapp (Vue3 + TS + Pinia + uni-ui) │ │
|
||||
│ │ • 管理后台 Vue3 (Vue3 + TS + Pinia + Element Plus) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 网关层 Gateway │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ Spring Cloud Gateway (路由转发/认证鉴权/限流熔断/日志追踪/灰度发布) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 业务层 Business │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ Spring Boot 3 + WebFlux + JDK 21 │ │
|
||||
│ │ • Controller (API) • Service (业务逻辑) │ │
|
||||
│ │ • Repository (数据访问) • Model (领域模型) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 数据层 Data │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • PostgreSQL (R2DBC + Flyway) │ │
|
||||
│ │ • Caffeine (本地缓存 + 热点数据) │ │
|
||||
│ │ • Redis可选 (分布式缓存 + 分布式锁) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 3.3 部署架构
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
LB[负载均衡器<br/>Nginx/ALB]
|
||||
|
||||
subgraph GatewayInstances[API Gateway集群]
|
||||
GW1[API Gateway<br/>实例1]
|
||||
GW2[API Gateway<br/>实例2]
|
||||
GW3[API Gateway<br/>实例N]
|
||||
end
|
||||
|
||||
subgraph AppInstances[应用服务集群]
|
||||
APP1[应用服务<br/>实例1]
|
||||
APP2[应用服务<br/>实例2]
|
||||
APP3[应用服务<br/>实例N]
|
||||
end
|
||||
|
||||
subgraph DBLayer[数据库层]
|
||||
PG1[PostgreSQL<br/>主库]
|
||||
PG2[PostgreSQL<br/>从库1]
|
||||
PG3[PostgreSQL<br/>从库N]
|
||||
end
|
||||
|
||||
subgraph CacheLayer[缓存层]
|
||||
REDIS1[Redis<br/>主节点]
|
||||
REDIS2[Redis<br/>从节点1]
|
||||
REDIS3[Redis<br/>从节点N]
|
||||
end
|
||||
|
||||
LB --> GW1
|
||||
LB --> GW2
|
||||
LB --> GW3
|
||||
|
||||
GW1 --> APP1
|
||||
GW2 --> APP2
|
||||
GW3 --> APP3
|
||||
|
||||
APP1 --> PG1
|
||||
APP2 --> PG1
|
||||
APP3 --> PG1
|
||||
|
||||
PG1 -.->|主从复制| PG2
|
||||
PG1 -.->|主从复制| PG3
|
||||
|
||||
APP1 --> REDIS1
|
||||
APP2 --> REDIS1
|
||||
APP3 --> REDIS1
|
||||
|
||||
REDIS1 -.->|主从复制| REDIS2
|
||||
REDIS1 -.->|主从复制| REDIS3
|
||||
```
|
||||
|
||||
│ └───────────────────┼───────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌──────────────────┼──────────────────┐ │
|
||||
│ │ │ │ │
|
||||
│ ▼ ▼ ▼ │
|
||||
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
|
||||
│ │ Application │ │ Application │ │ Application │ │
|
||||
│ │ Server (Pod1) │ │ Server (Pod2) │ │ Server (PodN) │ │
|
||||
│ └───────┬────────┘ └───────┬────────┘ └
|
||||
|
||||
```
|
||||
|
||||
───────┬────────┘ │
|
||||
│ │ │ │ │
|
||||
│ └───────────────────┼───────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌───────────────────────────┼───────────────────────────┐ │
|
||||
│ │ │ │ │
|
||||
│ ▼ ▼ ▼ │
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ PostgreSQL │ │ Redis │ │ OSS │ │
|
||||
│ │ (主从复制) │ │ (哨兵模式) │ │ (对象存储) │ │
|
||||
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
||||
│ │
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ 部署架构 │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 负载均衡器 (Nginx/ALB) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ API Gateway 集群 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • API Gateway 实例1 • API Gateway 实例2 • API Gateway 实例N │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 应用服务集群 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • 应用服务 实例1 • 应用服务 实例2 • 应用服务 实例N │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌───────────────┴───────────────┐ │
|
||||
│ ▼ ▼ │
|
||||
│ ┌─────────────────────────┐ ┌─────────────────────────┐ │
|
||||
│ │ PostgreSQL 数据库层 │ │ Redis 缓存层 │ │
|
||||
│ ├─────────────────────────┤ ├─────────────────────────┤ │
|
||||
│ │ • 主库 │ │ • 主节点 │ │
|
||||
│ │ • 从库1 (主从复制) │ │ • 从节点1 (主从复制) │ │
|
||||
│ │ • 从库N (主从复制) │ │ • 从节点N (主从复制) │ │
|
||||
│ └─────────────────────────┘ └─────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
@@ -325,59 +290,60 @@ graph TB
|
||||
|
||||
### 4.1 模块划分
|
||||
|
||||
````
|
||||
|
||||
---
|
||||
|
||||
## 四、模块设计
|
||||
|
||||
### 4.1 模块划分
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph Parent[gym-manage-server 父工程]
|
||||
subgraph Common[gym-common 公共模块]
|
||||
C1[gym-common-core<br/>核心工具类、常量、枚举]
|
||||
C2[gym-common-redis<br/>Redis配置可选]
|
||||
C3[gym-common-security<br/>安全认证公共组件]
|
||||
C4[gym-common-log<br/>日志公共组件]
|
||||
end
|
||||
|
||||
subgraph API[gym-api API网关模块]
|
||||
A1[controller<br/>HTTP接口]
|
||||
A2[dto<br/>数据传输对象]
|
||||
A3[vo<br/>视图对象]
|
||||
A4[config<br/>API配置]
|
||||
end
|
||||
|
||||
subgraph Service[gym-service 业务服务模块]
|
||||
S1[gym-service-member<br/>会员服务]
|
||||
S2[gym-service-booking<br/>预约服务]
|
||||
S3[gym-service-checkin<br/>签到服务]
|
||||
S4[gym-service-course<br/>课程服务]
|
||||
S5[gym-service-coach<br/>教练服务]
|
||||
S6[gym-service-finance<br/>财务服务]
|
||||
S7[gym-service-data<br/>数据服务]
|
||||
end
|
||||
|
||||
subgraph Domain[gym-domain 领域模型模块]
|
||||
D1[model<br/>领域模型]
|
||||
D2[event<br/>领域事件]
|
||||
D3[service<br/>领域服务]
|
||||
end
|
||||
|
||||
subgraph Infra[gym-infrastructure 基础设施模块]
|
||||
I1[repository<br/>数据仓储]
|
||||
I2[cache<br/>缓存配置]
|
||||
I3[external<br/>外部服务集成]
|
||||
I4[config<br/>基础配置]
|
||||
end
|
||||
|
||||
subgraph Starter[gym-starter 启动模块]
|
||||
ST[gym-admin<br/>管理后台启动器]
|
||||
end
|
||||
end
|
||||
````
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ gym-manage-server 父工程 │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ gym-common 公共模块 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • gym-common-core (核心工具类、常量、枚举) │ │
|
||||
│ │ • gym-common-redis (Redis配置可选) │ │
|
||||
│ │ • gym-common-security (安全认证公共组件) │ │
|
||||
│ │ • gym-common-log (日志公共组件) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ gym-api API网关模块 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • controller (HTTP接口) • dto (数据传输对象) │ │
|
||||
│ │ • vo (视图对象) • config (API配置) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ gym-service 业务服务模块 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • gym-service-member (会员服务) │ │
|
||||
│ │ • gym-service-booking (预约服务) │ │
|
||||
│ │ • gym-service-checkin (签到服务) │ │
|
||||
│ │ • gym-service-course (课程服务) │ │
|
||||
│ │ • gym-service-coach (教练服务) │ │
|
||||
│ │ • gym-service-finance (财务服务) │ │
|
||||
│ │ • gym-service-data (数据服务) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ gym-domain 领域模型模块 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • model (领域模型) • event (领域事件) • service (领域服务) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ gym-infrastructure 基础设施模块 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • repository (数据仓储) • cache (缓存配置) │ │
|
||||
│ │ • external (外部服务集成) • config (基础配置) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ gym-starter 启动模块 │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • gym-admin (管理后台启动器) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 4.2 模块职责
|
||||
|
||||
@@ -396,25 +362,54 @@ graph TB
|
||||
|
||||
### 4.3 模块交互
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant Client as 客户端
|
||||
participant API as API Layer
|
||||
participant Service as Service Layer
|
||||
participant Domain as Domain Layer
|
||||
participant Repo as Repo Layer
|
||||
participant Infra as Infrastructure
|
||||
|
||||
Client->>API: HTTP Request
|
||||
API->>Service: 调用业务逻辑
|
||||
Service->>Domain: 处理领域逻辑
|
||||
Domain->>Repo: 访问数据
|
||||
Repo->>Infra: 访问基础设施
|
||||
Infra-->>Repo: 返回结果
|
||||
Repo-->>Domain: 返回数据
|
||||
Domain-->>Service: 返回领域对象
|
||||
Service-->>API: 返回业务结果
|
||||
API-->>Client: HTTP Response
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ 模块交互流程 │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ 客户端 (Client) │
|
||||
│ │ │
|
||||
│ │ 1. HTTP Request │
|
||||
│ ▼ │
|
||||
│ API Layer │
|
||||
│ │ │
|
||||
│ │ 2. 调用业务逻辑 │
|
||||
│ ▼ │
|
||||
│ Service Layer │
|
||||
│ │ │
|
||||
│ │ 3. 处理领域逻辑 │
|
||||
│ ▼ │
|
||||
│ Domain Layer │
|
||||
│ │ │
|
||||
│ │ 4. 访问数据 │
|
||||
│ ▼ │
|
||||
│ Repo Layer │
|
||||
│ │ │
|
||||
│ │ 5. 访问基础设施 │
|
||||
│ ▼ │
|
||||
│ Infrastructure │
|
||||
│ │ │
|
||||
│ │ 6. 返回结果 │
|
||||
│ ▼ │
|
||||
│ Repo Layer ──────────────────────────────────────────────────────────┐ │
|
||||
│ │ │ │
|
||||
│ │ 7. 返回数据 │ │
|
||||
│ ▼ │ │
|
||||
│ Domain Layer ────────────────────────────────────────────────────────┤ │
|
||||
│ │ │ │
|
||||
│ │ 8. 返回领域对象 │ │
|
||||
│ ▼ │ │
|
||||
│ Service Layer ──────────────────────────────────────────────────────┤ │
|
||||
│ │ │ │
|
||||
│ │ 9. 返回业务结果 │ │
|
||||
│ ▼ │ │
|
||||
│ API Layer ──────────────────────────────────────────────────────────┤ │
|
||||
│ │ │ │
|
||||
│ │ 10. HTTP Response │ │
|
||||
│ ▼ │ │
|
||||
│ 客户端 (Client) ◀────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
@@ -499,60 +494,65 @@ HTTP方法语义:
|
||||
|
||||
### 5.2 接口分组
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph Auth[认证接口 /v1/auth]
|
||||
A1[POST /login<br/>登录]
|
||||
A2[POST /logout<br/>登出]
|
||||
A3[POST /refresh<br/>刷新Token]
|
||||
A4[POST /wechat-login<br/>微信登录]
|
||||
end
|
||||
|
||||
subgraph Members[会员接口 /v1/members]
|
||||
M1[GET /<br/>会员列表]
|
||||
M2[GET /{id}<br/>会员详情]
|
||||
M3[POST /<br/>创建会员]
|
||||
M4[PUT /{id}<br/>更新会员]
|
||||
M5[GET /{id}/cards<br/>会员卡列表]
|
||||
M6[GET /{id}/benefits<br/>权益列表]
|
||||
M7[GET /{id}/bookings<br/>预约记录]
|
||||
end
|
||||
|
||||
subgraph Courses[课程接口 /v1/courses]
|
||||
C1[GET /<br/>课程列表]
|
||||
C2[GET /{id}<br/>课程详情]
|
||||
C3[POST /<br/>创建课程]
|
||||
C4[PUT /{id}<br/>更新课程]
|
||||
C5[GET /{id}/slots<br/>可预约时段]
|
||||
end
|
||||
|
||||
subgraph Bookings[预约接口 /v1/bookings]
|
||||
B1[GET /<br/>预约列表]
|
||||
B2[GET /{id}<br/>预约详情]
|
||||
B3[POST /<br/>创建预约]
|
||||
B4[POST /{id}/cancel<br/>取消预约]
|
||||
B5[GET /my<br/>我的预约]
|
||||
end
|
||||
|
||||
subgraph Checkins[签到接口 /v1/checkins]
|
||||
CH1[GET /<br/>签到列表]
|
||||
CH2[POST /scan<br/>扫码签到]
|
||||
CH3[POST /manual<br/>手动签到]
|
||||
CH4[GET /my<br/>我的签到]
|
||||
end
|
||||
|
||||
subgraph Coaches[教练接口 /v1/coaches]
|
||||
CO1[GET /<br/>教练列表]
|
||||
CO2[GET /{id}<br/>教练详情]
|
||||
CO3[GET /{id}/schedule<br/>教练排班]
|
||||
CO4[GET /{id}/slots<br/>可预约时段]
|
||||
end
|
||||
|
||||
subgraph Dashboard[数据看板 /v1/dashboard]
|
||||
D1[GET /overview<br/>今日概览]
|
||||
D2[GET /trends<br/>趋势数据]
|
||||
D3[GET /rankings<br/>排行数据]
|
||||
end
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ 接口分组 │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 认证接口 /v1/auth │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • POST /login (登录) • POST /logout (登出) │ │
|
||||
│ │ • POST /refresh (刷新Token) • POST /wechat-login (微信登录) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 会员接口 /v1/members │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • GET / (会员列表) • GET /{id} (会员详情) │ │
|
||||
│ │ • POST / (创建会员) • PUT /{id} (更新会员) │ │
|
||||
│ │ • GET /{id}/cards (会员卡列表) • GET /{id}/benefits (权益列表)│ │
|
||||
│ │ • GET /{id}/bookings (预约记录) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 课程接口 /v1/courses │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • GET / (课程列表) • GET /{id} (课程详情) │ │
|
||||
│ │ • POST / (创建课程) • PUT /{id} (更新课程) │ │
|
||||
│ │ • GET /{id}/slots (可预约时段) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 预约接口 /v1/bookings │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • GET / (预约列表) • GET /{id} (预约详情) │ │
|
||||
│ │ • POST / (创建预约) • POST /{id}/cancel (取消预约) │ │
|
||||
│ │ • GET /my (我的预约) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 签到接口 /v1/checkins │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • GET / (签到列表) • POST /scan (扫码签到) │ │
|
||||
│ │ • POST /manual (手动签到) • GET /my (我的签到) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 教练接口 /v1/coaches │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • GET / (教练列表) • GET /{id} (教练详情) │ │
|
||||
│ │ • GET /{id}/schedule (教练排班) • GET /{id}/slots (可预约时段)│ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 数据看板 /v1/dashboard │ │
|
||||
│ ├─────────────────────────────────────────────────────────────────┤ │
|
||||
│ │ • GET /overview (今日概览) • GET /trends (趋势数据) │ │
|
||||
│ │ • GET /rankings (排行数据) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 5.3 接口版本管理
|
||||
|
||||
Reference in New Issue
Block a user