feat:项目细节
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -40,4 +40,6 @@ logs/
|
||||
|
||||
### SQL Files ###
|
||||
*.sql
|
||||
*.md
|
||||
*.md
|
||||
# 允许 docs 目录下的文档
|
||||
!docs/**/*.md
|
||||
526
docs/BUSINESS_MODEL_DESIGN.md
Normal file
526
docs/BUSINESS_MODEL_DESIGN.md
Normal file
@@ -0,0 +1,526 @@
|
||||
# 业务模型设计文档
|
||||
|
||||
> **项目**: Travel (Tech Mall) - 旅游线路交易系统
|
||||
> **最后更新**: 2025-12-01
|
||||
> **状态**: 设计确认 ✅
|
||||
|
||||
---
|
||||
|
||||
## 📋 业务概述
|
||||
|
||||
本系统是一个**旅游线路预订和票务管理平台**,支持固定班次和滚动班次两种运营模式,为用户提供线路查询、在线下单、支付、电子凭证和核销等完整服务。
|
||||
|
||||
---
|
||||
|
||||
## 🎯 核心业务共识
|
||||
|
||||
### 1. 班次类型
|
||||
|
||||
#### 固定班次 (FixedSchedule)
|
||||
- 管理后台设置具体出行时间段
|
||||
- 每个班次有独立的座位限制
|
||||
- 示例:2025-12-01 08:00 出发,2025-12-01 18:00 返回
|
||||
|
||||
#### 滚动班次 (RollingSchedule)
|
||||
- 按固定频率发车(如每 5 分钟一班)
|
||||
- 配置运营时间段和单次座位数
|
||||
- 示例:08:00-18:00 运营,每 5 分钟一班,每班 20 座
|
||||
|
||||
### 2. 库存管理策略
|
||||
|
||||
**方案**: 线路级别库存 + 班次级别座位限制
|
||||
|
||||
```
|
||||
线路总库存池: 100 张
|
||||
├── 固定班次 A (08:00): 座位限制 40 座
|
||||
├── 固定班次 B (14:00): 座位限制 40 座
|
||||
└── 滚动班次: 单次座位 20 座
|
||||
```
|
||||
|
||||
**规则**:
|
||||
- ✅ 线路维护总库存池
|
||||
- ✅ 固定班次设置座位上限(不能超过线路库存)
|
||||
- ✅ 滚动班次按单次座位数消耗库存
|
||||
- ✅ 所有班次共享线路库存池
|
||||
- ✅ 库存操作需记录日志(锁定、扣减、释放、退还)
|
||||
|
||||
### 3. 票种系统
|
||||
|
||||
支持多种票种,每种票种价格不同:
|
||||
|
||||
| 票种代码 | 票种名称 | 价格策略 | 适用人群 |
|
||||
|---------|---------|---------|---------|
|
||||
| ADULT | 成人票 | 基准价格 100% | 成年人 |
|
||||
| CHILD | 儿童票 | 基准价格 50% | 儿童 |
|
||||
| STUDENT | 学生票 | 基准价格 70% | 学生 |
|
||||
| SENIOR | 老人票 | 基准价格 80% | 老年人 |
|
||||
|
||||
### 4. 座位管理
|
||||
|
||||
**明确**: 本系统**不提供座位选择功能**
|
||||
- 无需座位号管理
|
||||
- 先到先得原则
|
||||
- 仅控制总人数
|
||||
|
||||
### 5. 购票流程
|
||||
|
||||
用户购票时必须选择:
|
||||
1. **出行日期** - 具体哪一天出行
|
||||
2. **班次** - 选择固定班次或滚动班次
|
||||
3. **票种** - 成人/儿童/学生/老人
|
||||
4. **购买数量** - 购买张数
|
||||
|
||||
### 6. 多租户
|
||||
|
||||
**明确**: 系统**不需要考虑多租户**架构
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ 领域模型
|
||||
|
||||
### 核心实体关系
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "线路域 Route Domain"
|
||||
R[线路 Route<br/>- 线路编码<br/>- 线路名称<br/>- 起止点<br/>- 总库存]
|
||||
FS[固定班次 FixedSchedule<br/>- 班次编号<br/>- 出发/到达时间<br/>- 座位限制<br/>- 票价配置]
|
||||
RS[滚动班次 RollingSchedule<br/>- 滚动班次编号<br/>- 运营时间段<br/>- 发车间隔<br/>- 单次座位数<br/>- 票价配置]
|
||||
IL[库存日志 InventoryLog<br/>- 操作类型<br/>- 操作数量<br/>- 关联订单]
|
||||
|
||||
R --> FS
|
||||
R --> RS
|
||||
R --> IL
|
||||
end
|
||||
|
||||
subgraph "交易域 Trade Domain"
|
||||
O[订单 Order<br/>- 订单号<br/>- 用户编号<br/>- 班次信息<br/>- 票种/数量<br/>- 订单状态<br/>- 金额]
|
||||
P[支付 Payment<br/>- 支付单号<br/>- 支付方式<br/>- 支付状态<br/>- 支付金额]
|
||||
RF[退款 Refund<br/>- 退款单号<br/>- 退款状态<br/>- 退款金额]
|
||||
|
||||
O --> P
|
||||
O --> RF
|
||||
end
|
||||
|
||||
subgraph "履约域 Perform Domain"
|
||||
T[凭证 Ticket<br/>- 凭证号<br/>- 订单号<br/>- 票种<br/>- 凭证状态<br/>- 可用日期]
|
||||
V[核销记录 Verification<br/>- 凭证号<br/>- 核销时间<br/>- 核销地点]
|
||||
|
||||
T --> V
|
||||
end
|
||||
|
||||
FS -.订购.-> O
|
||||
RS -.订购.-> O
|
||||
O -.生成.-> T
|
||||
|
||||
style R fill:#e1f5ff
|
||||
style O fill:#fff4e1
|
||||
style T fill:#f0ffe1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 核心实体详细设计
|
||||
|
||||
### 1. 线路 (Route)
|
||||
|
||||
**表名**: `route`
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|-----|------|-----|
|
||||
| id | BIGINT | 主键 |
|
||||
| route_code | VARCHAR(50) | 线路编码,唯一 |
|
||||
| route_name | VARCHAR(200) | 线路名称 |
|
||||
| start_point | VARCHAR(100) | 出发地 |
|
||||
| end_point | VARCHAR(100) | 目的地 |
|
||||
| route_type | VARCHAR(20) | 线路类型:SHORT/MEDIUM/LONG |
|
||||
| total_inventory | INT | 总库存数量 |
|
||||
| remaining_inventory | INT | 剩余库存数量 |
|
||||
| responsible_user | VARCHAR(50) | 责任用户 |
|
||||
| status | VARCHAR(20) | 状态:ACTIVE/INACTIVE |
|
||||
| create_time | DATETIME | 创建时间 |
|
||||
| update_time | DATETIME | 更新时间 |
|
||||
| deleted | TINYINT | 逻辑删除标识 |
|
||||
|
||||
---
|
||||
|
||||
### 2. 固定班次 (FixedSchedule)
|
||||
|
||||
**表名**: `fixed_schedule`
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|-----|------|-----|
|
||||
| id | BIGINT | 主键 |
|
||||
| schedule_code | VARCHAR(50) | 班次编号,唯一 |
|
||||
| route_code | VARCHAR(50) | 关联线路编码 |
|
||||
| departure_time | DATETIME | 出发时间 |
|
||||
| arrival_time | DATETIME | 到达时间 |
|
||||
| seat_limit | INT | 座位限制 |
|
||||
| remaining_seats | INT | 剩余座位 |
|
||||
| adult_price | DECIMAL(10,2) | 成人票价 |
|
||||
| child_price | DECIMAL(10,2) | 儿童票价 |
|
||||
| student_price | DECIMAL(10,2) | 学生票价 |
|
||||
| senior_price | DECIMAL(10,2) | 老人票价 |
|
||||
| status | VARCHAR(20) | 状态:AVAILABLE/FULL/CANCELLED |
|
||||
| create_time | DATETIME | 创建时间 |
|
||||
| update_time | DATETIME | 更新时间 |
|
||||
| deleted | TINYINT | 逻辑删除标识 |
|
||||
|
||||
---
|
||||
|
||||
### 3. 滚动班次 (RollingSchedule)
|
||||
|
||||
**表名**: `rolling_schedule`
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|-----|------|-----|
|
||||
| id | BIGINT | 主键 |
|
||||
| rolling_schedule_code | VARCHAR(50) | 滚动班次编号,唯一 |
|
||||
| route_code | VARCHAR(50) | 关联线路编码 |
|
||||
| operation_mode | VARCHAR(20) | 运营模式:FIXED_INTERVAL |
|
||||
| operation_start_time | TIME | 运营开始时间 |
|
||||
| operation_end_time | TIME | 运营结束时间 |
|
||||
| interval_minutes | INT | 发车间隔(分钟) |
|
||||
| seats_per_batch | INT | 单次座位数 |
|
||||
| adult_price | DECIMAL(10,2) | 成人票价 |
|
||||
| child_price | DECIMAL(10,2) | 儿童票价 |
|
||||
| student_price | DECIMAL(10,2) | 学生票价 |
|
||||
| senior_price | DECIMAL(10,2) | 老人票价 |
|
||||
| status | VARCHAR(20) | 状态:ACTIVE/INACTIVE |
|
||||
| create_time | DATETIME | 创建时间 |
|
||||
| update_time | DATETIME | 更新时间 |
|
||||
| deleted | TINYINT | 逻辑删除标识 |
|
||||
|
||||
---
|
||||
|
||||
### 4. 订单 (Order)
|
||||
|
||||
**表名**: `order`
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|-----|------|-----|
|
||||
| id | BIGINT | 主键 |
|
||||
| order_no | VARCHAR(50) | 订单号,唯一 |
|
||||
| user_no | VARCHAR(50) | 用户编号 |
|
||||
| route_code | VARCHAR(50) | 线路编码 |
|
||||
| order_type | VARCHAR(20) | 订单类型:FIXED/ROLLING |
|
||||
| schedule_code | VARCHAR(50) | 固定班次编号(固定班次时) |
|
||||
| rolling_schedule_code | VARCHAR(50) | 滚动班次编号(滚动班次时) |
|
||||
| travel_date | DATE | 出行日期 |
|
||||
| ticket_type | VARCHAR(20) | 票种:ADULT/CHILD/STUDENT/SENIOR |
|
||||
| quantity | INT | 购买数量 |
|
||||
| unit_price | DECIMAL(10,2) | 单价 |
|
||||
| original_amount | DECIMAL(10,2) | 原始金额 |
|
||||
| actual_amount | DECIMAL(10,2) | 实付金额 |
|
||||
| order_status | VARCHAR(20) | 订单状态 |
|
||||
| create_time | DATETIME | 创建时间 |
|
||||
| expire_time | DATETIME | 支付超时时间 |
|
||||
| pay_time | DATETIME | 支付时间 |
|
||||
| update_time | DATETIME | 更新时间 |
|
||||
| deleted | TINYINT | 逻辑删除标识 |
|
||||
|
||||
**订单状态枚举** (OrderStatus):
|
||||
- `PENDING_PAYMENT` - 待支付
|
||||
- `PAID` - 已支付
|
||||
- `COMPLETED` - 已完成
|
||||
- `CANCELLED` - 已取消
|
||||
- `REFUNDING` - 退款中
|
||||
- `REFUNDED` - 已退款
|
||||
|
||||
---
|
||||
|
||||
### 5. 支付 (Payment)
|
||||
|
||||
**表名**: `payment`
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|-----|------|-----|
|
||||
| id | BIGINT | 主键 |
|
||||
| payment_no | VARCHAR(50) | 支付单号,唯一 |
|
||||
| order_no | VARCHAR(50) | 关联订单号 |
|
||||
| payment_method | VARCHAR(20) | 支付方式:ALIPAY/WECHAT/BANK |
|
||||
| payment_amount | DECIMAL(10,2) | 支付金额 |
|
||||
| payment_status | VARCHAR(20) | 支付状态 |
|
||||
| third_party_no | VARCHAR(100) | 第三方支付流水号 |
|
||||
| create_time | DATETIME | 创建时间 |
|
||||
| pay_time | DATETIME | 支付完成时间 |
|
||||
| update_time | DATETIME | 更新时间 |
|
||||
| deleted | TINYINT | 逻辑删除标识 |
|
||||
|
||||
---
|
||||
|
||||
### 6. 退款 (Refund)
|
||||
|
||||
**表名**: `refund`
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|-----|------|-----|
|
||||
| id | BIGINT | 主键 |
|
||||
| refund_no | VARCHAR(50) | 退款单号,唯一 |
|
||||
| order_no | VARCHAR(50) | 关联订单号 |
|
||||
| payment_no | VARCHAR(50) | 关联支付单号 |
|
||||
| refund_amount | DECIMAL(10,2) | 退款金额 |
|
||||
| refund_reason | VARCHAR(500) | 退款原因 |
|
||||
| refund_status | VARCHAR(20) | 退款状态 |
|
||||
| third_party_refund_no | VARCHAR(100) | 第三方退款流水号 |
|
||||
| create_time | DATETIME | 创建时间 |
|
||||
| refund_time | DATETIME | 退款完成时间 |
|
||||
| update_time | DATETIME | 更新时间 |
|
||||
| deleted | TINYINT | 逻辑删除标识 |
|
||||
|
||||
> **TODO**: 退款详细规则待定
|
||||
> - 退款时效限制(出行前多久可退?)
|
||||
> - 退款手续费计算规则
|
||||
> - 部分退票支持
|
||||
> - 库存回退处理
|
||||
> - 凭证状态更新
|
||||
|
||||
---
|
||||
|
||||
### 7. 凭证 (Ticket)
|
||||
|
||||
**表名**: `ticket`
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|-----|------|-----|
|
||||
| id | BIGINT | 主键 |
|
||||
| ticket_no | VARCHAR(50) | 凭证号,唯一 |
|
||||
| order_no | VARCHAR(50) | 关联订单号 |
|
||||
| route_code | VARCHAR(50) | 线路编码 |
|
||||
| schedule_info | VARCHAR(200) | 班次信息(具体时间) |
|
||||
| ticket_type | VARCHAR(20) | 票种 |
|
||||
| ticket_status | VARCHAR(20) | 凭证状态 |
|
||||
| issue_time | DATETIME | 出票时间 |
|
||||
| usable_date | DATE | 可用日期 |
|
||||
| verification_time | DATETIME | 核销时间 |
|
||||
| create_time | DATETIME | 创建时间 |
|
||||
| update_time | DATETIME | 更新时间 |
|
||||
| deleted | TINYINT | 逻辑删除标识 |
|
||||
|
||||
**凭证状态枚举** (TicketStatus):
|
||||
- `UNUSED` - 未使用
|
||||
- `USED` - 已使用
|
||||
- `REFUNDED` - 已退票
|
||||
- `EXPIRED` - 已过期
|
||||
|
||||
---
|
||||
|
||||
### 8. 核销记录 (TicketVerification)
|
||||
|
||||
**表名**: `ticket_verification`
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|-----|------|-----|
|
||||
| id | BIGINT | 主键 |
|
||||
| ticket_no | VARCHAR(50) | 凭证号 |
|
||||
| verification_time | DATETIME | 核销时间 |
|
||||
| verification_location | VARCHAR(100) | 核销地点 |
|
||||
| operator | VARCHAR(50) | 操作人 |
|
||||
| create_time | DATETIME | 创建时间 |
|
||||
| deleted | TINYINT | 逻辑删除标识 |
|
||||
|
||||
---
|
||||
|
||||
### 9. 库存日志 (InventoryLog)
|
||||
|
||||
**表名**: `inventory_log`
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|-----|------|-----|
|
||||
| id | BIGINT | 主键 |
|
||||
| route_code | VARCHAR(50) | 线路编码 |
|
||||
| operation_type | VARCHAR(20) | 操作类型:LOCK/DEDUCT/RELEASE/REFUND |
|
||||
| related_order_no | VARCHAR(50) | 关联订单号 |
|
||||
| quantity | INT | 操作数量 |
|
||||
| before_amount | INT | 操作前库存 |
|
||||
| after_amount | INT | 操作后库存 |
|
||||
| operation_time | DATETIME | 操作时间 |
|
||||
| operator | VARCHAR(50) | 操作人 |
|
||||
| remark | VARCHAR(500) | 备注 |
|
||||
| create_time | DATETIME | 创建时间 |
|
||||
| deleted | TINYINT | 逻辑删除标识 |
|
||||
|
||||
**操作类型枚举** (OperationType):
|
||||
- `LOCK` - 锁定库存(下单时)
|
||||
- `DEDUCT` - 扣减库存(支付成功)
|
||||
- `RELEASE` - 释放库存(订单取消/超时)
|
||||
- `REFUND` - 退还库存(退款成功)
|
||||
|
||||
---
|
||||
|
||||
## 🔄 核心业务流程
|
||||
|
||||
### 购票流程
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant U as 用户
|
||||
participant TC as Trade Controller
|
||||
participant TS as Trade Service
|
||||
participant RS as Route Service
|
||||
participant MQ as RocketMQ
|
||||
participant PS as Perform Service
|
||||
|
||||
U->>TC: 1. 创建订单请求
|
||||
TC->>TS: 2. 处理订单
|
||||
|
||||
rect rgb(240, 248, 255)
|
||||
Note over TS: LiteFlow 流程编排
|
||||
TS->>TS: 3. 参数校验
|
||||
TS->>RS: 4. 检查线路库存
|
||||
RS-->>TS: 库存充足
|
||||
TS->>RS: 5. 锁定库存
|
||||
RS->>RS: 记录库存日志(LOCK)
|
||||
RS-->>TS: 锁定成功
|
||||
TS->>TS: 6. 创建订单(PENDING_PAYMENT)
|
||||
end
|
||||
|
||||
TS-->>U: 7. 返回订单信息
|
||||
|
||||
U->>TC: 8. 支付订单
|
||||
TC->>TS: 9. 处理支付
|
||||
TS->>TS: 10. 更新订单状态(PAID)
|
||||
TS->>RS: 11. 扣减库存
|
||||
RS->>RS: 记录库存日志(DEDUCT)
|
||||
TS->>MQ: 12. 发送支付成功消息
|
||||
|
||||
MQ->>PS: 13. 监听支付成功
|
||||
PS->>PS: 14. 生成电子凭证
|
||||
PS-->>U: 凭证生成完成
|
||||
```
|
||||
|
||||
### 核销流程
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant D as 检票设备/APP
|
||||
participant PS as Perform Service
|
||||
|
||||
D->>PS: 1. 扫描凭证号
|
||||
PS->>PS: 2. 查询凭证信息
|
||||
|
||||
alt 凭证状态 = UNUSED
|
||||
PS->>PS: 3. 更新凭证状态(USED)
|
||||
PS->>PS: 4. 记录核销日志
|
||||
PS-->>D: ✅ 核销成功
|
||||
else 凭证状态 = USED
|
||||
PS-->>D: ❌ 凭证已使用
|
||||
else 凭证状态 = REFUNDED
|
||||
PS-->>D: ❌ 凭证已退票
|
||||
else 凭证状态 = EXPIRED
|
||||
PS-->>D: ❌ 凭证已过期
|
||||
end
|
||||
```
|
||||
|
||||
### 订单超时取消流程
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant T as 定时任务
|
||||
participant TS as Trade Service
|
||||
participant RS as Route Service
|
||||
|
||||
T->>TS: 1. 扫描超时订单
|
||||
TS->>TS: 2. 查询 PENDING_PAYMENT 订单
|
||||
|
||||
loop 每个超时订单
|
||||
TS->>TS: 3. 更新订单状态(CANCELLED)
|
||||
TS->>RS: 4. 释放库存
|
||||
RS->>RS: 5. 记录库存日志(RELEASE)
|
||||
end
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 业务规则清单
|
||||
|
||||
### 库存规则
|
||||
1. ✅ 线路总库存 ≥ 所有固定班次座位限制之和
|
||||
2. ✅ 下单时先锁定库存,支付成功后扣减库存
|
||||
3. ✅ 订单取消/超时,释放已锁定库存
|
||||
4. ✅ 退款成功,退还已扣减库存
|
||||
5. ✅ 所有库存操作必须记录日志
|
||||
|
||||
### 订单规则
|
||||
1. ✅ 订单创建后 30 分钟内未支付自动取消
|
||||
2. ✅ 订单状态流转:待支付 → 已支付 → 已完成
|
||||
3. ✅ 订单支付后才能生成凭证
|
||||
4. ✅ 一个订单对应多张凭证(根据购买数量)
|
||||
|
||||
### 凭证规则
|
||||
1. ✅ 凭证号全局唯一
|
||||
2. ✅ 凭证绑定出行日期和班次信息
|
||||
3. ✅ 未使用的凭证才能核销
|
||||
4. ✅ 凭证核销后不可重复使用
|
||||
|
||||
### 票种规则
|
||||
1. ✅ 每个班次配置各票种价格
|
||||
2. ✅ 一个订单只能购买一种票种
|
||||
3. ✅ 票种价格独立设置,不强制比例
|
||||
|
||||
---
|
||||
|
||||
## 🎨 枚举类型定义
|
||||
|
||||
### OrderTypeEnum (订单类型)
|
||||
```java
|
||||
FIXED("FIXED", "固定班次订单"),
|
||||
ROLLING("ROLLING", "滚动班次订单");
|
||||
```
|
||||
|
||||
### TicketTypeEnum (票种类型)
|
||||
```java
|
||||
ADULT("ADULT", "成人票"),
|
||||
CHILD("CHILD", "儿童票"),
|
||||
STUDENT("STUDENT", "学生票"),
|
||||
SENIOR("SENIOR", "老人票");
|
||||
```
|
||||
|
||||
### OrderStatusEnum (订单状态)
|
||||
```java
|
||||
PENDING_PAYMENT("PENDING_PAYMENT", "待支付"),
|
||||
PAID("PAID", "已支付"),
|
||||
COMPLETED("COMPLETED", "已完成"),
|
||||
CANCELLED("CANCELLED", "已取消"),
|
||||
REFUNDING("REFUNDING", "退款中"),
|
||||
REFUNDED("REFUNDED", "已退款");
|
||||
```
|
||||
|
||||
### TicketStatusEnum (凭证状态)
|
||||
```java
|
||||
UNUSED("UNUSED", "未使用"),
|
||||
USED("USED", "已使用"),
|
||||
REFUNDED("REFUNDED", "已退票"),
|
||||
EXPIRED("EXPIRED", "已过期");
|
||||
```
|
||||
|
||||
### OperationTypeEnum (库存操作类型)
|
||||
```java
|
||||
LOCK("LOCK", "锁定库存"),
|
||||
DEDUCT("DEDUCT", "扣减库存"),
|
||||
RELEASE("RELEASE", "释放库存"),
|
||||
REFUND("REFUND", "退还库存");
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 后续待办事项
|
||||
|
||||
### 业务规则待明确
|
||||
- [ ] 退款时效规则(出行前多久可退?)
|
||||
- [ ] 退款手续费计算规则
|
||||
- [ ] 是否支持部分退票
|
||||
- [ ] 凭证有效期规则
|
||||
- [ ] 库存预警机制
|
||||
|
||||
### 技术实现待补充
|
||||
- [ ] 分布式锁实现(防止超卖)
|
||||
- [ ] 定时任务实现(订单超时取消)
|
||||
- [ ] 消息幂等性处理
|
||||
- [ ] 分布式事务处理方案
|
||||
|
||||
---
|
||||
|
||||
> **文档维护**: 本文档应随业务演进持续更新
|
||||
> **最后审核**: 2025-12-01
|
||||
> **审核状态**: ✅ 业务方案已确认
|
||||
Reference in New Issue
Block a user