# 未来洞 SaaS 电竞派单系统 — 产品需求规格书

| 项 | 值 |
|---|---|
| **文档版本** | v2.0 |
| **日期** | 2026-09-16 |
| **项目基础** | 基于 v1.1.0「未来洞派单助手」升级 |
| **目标形态** | 多租户 SaaS 电竞派单平台 |
| **代码仓库** | `dispatch/` |

---

## 一、项目背景

当前系统为单机版 Express + SQLite + 原生前端，服务于单一俱乐部客服团队。随着业务扩展，需要：

1. 支持**多游戏**（三角洲行动、王者荣耀、和平精英等）
2. 引入**打手端**（抢单/报单）
3. 对接**抖店等电商平台**自动抓单
4. 建立**审核流**管控订单质量
5. **客服权限收紧**，核心状态仅管理员可改
6. 升级为可扩展的 **SaaS 架构**

---

## 二、技术架构要求

### 2.1 后端

| 项 | 现状 | 目标 |
|---|---|---|
| 框架 | Express 裸写 | NestJS / Express 分层架构 |
| 结构 | 路由扁平 | Controller → Service → Repository |
| API | 无版本 | `/api/v1/` + OpenAPI 文档 |
| 校验 | 手动 if | class-validator 统一校验 |
| 异常 | try-catch 散落 | 全局异常过滤器 |
| 实时 | 轮询 | WebSocket (Socket.IO) |
| 定时 | setInterval | node-cron / Bull 队列 |
| 日志 | 自写 | Winston/Pino 结构化日志 |

### 2.2 数据库

| 项 | 现状 | 目标 |
|---|---|---|
| 引擎 | SQLite | PostgreSQL 15+ |
| ORM | 裸 SQL | Prisma |
| 多租户 | 无 | `club_id` 贯穿所有表 |
| 迁移 | 手动 ALTER | Prisma Migrate |

**备份策略（三级）：**
1. **实时**：WAL 归档，可恢复到任意时间点
2. **小时快照**：每小时 pg_dump，保留 72 份
3. **订单触发**：每次订单创建/修改后异步增量备份

### 2.3 前端

| 项 | 现状 | 目标 |
|---|---|---|
| 框架 | 原生 HTML/JS | Vue 3 + TypeScript |
| 构建 | 无 | Vite |
| 状态 | 全局变量 | Pinia |
| UI | 手写 | Element Plus |
| 路由 | 切 div | Vue Router |
| HTTP | fetch | Axios |
| 实时 | 轮询 | Socket.IO Client |

### 2.4 部署

| 项 | 现状 | 目标 |
|---|---|---|
| 服务器 | Linux 单机 | Linux 单机(测试) → K8s(生产) |
| 客户端 | Electron | Electron + Web 浏览器 |
| 容器化 | 无 | Docker + docker-compose |

---

## 三、用户角色（5 种）

| 角色 | 标识 | 核心职责 |
|---|---|---|
| **管理员** | `admin` | 全权限，系统配置，用户管理，状态更改 |
| **审核员** | `reviewer` | 审核订单/报单，驳回/通过 |
| **客服** | `reception` | 录入订单，有限编辑，**不可更改任何状态** |
| **派单员** | `dispatch` | 派单，管理打手 |
| **打手** | `player` | 抢单，报单，查看自己的订单 |

---

## 四、功能需求（17 个模块）

---

### 模块一：派单系统

#### 保留（全保留仅升级）
- 手动录入订单（全字段表单）
- 粘贴文本解析自动填充
- 订单编号全表查重遍历
- 全字段模糊搜索
- 复制订单信息
- 作废可恢复
- 状态变更历史完整保留
- 所有操作记录保留

#### 核心规则
- **录入字段 = 全信息**（保证完整度、真实性、安全性）
- **识别字段仅作展示**，不替代录入字段
- **状态更改仅管理员可操作**

#### 升级项

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| P-01 | 智能派单推荐 | P1 | 根据打手在线/擅长地图/接单率推荐 |
| P-02 | 批量派单 | P1 | 勾选多单一键指派 |
| P-03 | 派单模板 | P2 | 常用规格存为模板 |
| P-04 | 订单关联 | P2 | 同一老板多单关联 |
| P-05 | 派单倒计时 | P1 | 录入后可视化倒计时 |
| P-06 | 多级派单 | P3 | 派给工作室 → 工作室再派给打手 |

---

### 模块二：存单系统

#### 保留
- 存单标记 + 保底目标
- 每把金额记录 + 剩余计算
- 存单原因

#### 升级项

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| C-01 | 一键存单按钮 | P1 | 主界面订单行内直接操作 |
| C-02 | 存单进度条 | P1 | 可视化 已完成/保底目标 |
| C-03 | 存单到期提醒 | P2 | 超 X 天未完成自动提醒 |
| C-04 | 存单转结单 | P1 | 达到保底后一键转结单 |
| C-05 | 批量存单 | P2 | 勾选多个批量操作 |
| C-06 | 存单浮窗 | P1 | 不离开列表页完成操作 |
| C-07 | 存单侧边看板 | P2 | 侧边栏展示所有存单进度 |

---

### 模块三：报单系统（新增）

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| B-01 | 打手报单入口 | P1 | H5/小程序上报：已接单/已完成/需要帮助 |
| B-02 | 报单模板 | P1 | 结构化：角色名 + 打了几把 + 带出金额 + 截图 |
| B-03 | 报单审核 | P1 | 客服/管理审核报单 |
| B-04 | 自动关联订单 | P1 | 通过订单号/角色名匹配 |
| B-05 | 异常标记 | P2 | 报单与预期不符自动标红 |
| B-06 | 报单统计 | P2 | 按打手统计及时率/准确率 |
| B-07 | **订单作废** | P1 | 作废仅不予以结算，数据保留 |
| B-08 | **多游戏报单** | P0 | 不同游戏不同报单字段模板 |
| B-09 | 报单截图上传 | P1 | 每次报单附带截图证据 |

**多游戏字段模板：**

| 游戏 | 报单字段 |
|---|---|
| 三角洲行动 | 角色名/地图/带出金额/保底目标/每把金额 |
| 王者荣耀 | 段位/英雄/胜率/代练类型 |
| 和平精英 | 段位/KD/代练类型 |
| 英雄联盟 | 段位/英雄/代练类型 |
| 其他 | 管理员自定义 |

---

### 模块四：管理系统

#### 升级项

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| M-01 | 多租户架构 | P0 | 多俱乐部入驻，数据隔离 |
| M-02 | RBAC 权限 | P0 | 5 种角色，见权限矩阵 |
| M-03 | 打手档案管理 | P1 | 独立 ID + 工作室归属 |
| M-04 | 工作室管理 | P1 | 工作室 CRUD |
| M-05 | 系统配置中心 | P1 | 所有可配项统一管理 |
| M-06 | 游戏管理 | P1 | 新增/编辑游戏及字段模板 |

#### 权限矩阵

| 操作 | 客服 | 派单 | 审核 | 管理 |
|---|---|---|---|---|
| 查看订单 | ✅ 自己的 | ✅ 全部 | ✅ 全部 | ✅ 全部 |
| 录入订单 | ✅ | ✅ | ❌ | ✅ |
| 编辑基本信息 | ✅ 自己录入的 | ✅ | ❌ | ✅ |
| **更改任何状态** | **❌ 禁止** | ✅ 部分 | ❌ | **✅ 全部** |
| 作废/恢复 | ❌ | ❌ | ❌ | ✅ |
| 审核 | ❌ | ❌ | ✅ | ✅ |
| 导出 | ❌ | ❌ | ❌ | ✅ |
| 用户管理 | ❌ | ❌ | ❌ | ✅ |
| 系统配置 | ❌ | ❌ | ❌ | ✅ |
| 呼叫/交接/聊天室 | ✅ | ✅ | ✅ | ✅ |
| 抢单/报单 | ❌ | ❌ | ❌ | ❌ |

> 打手仅能：抢单、报单、查看自己的订单、聊天室

---

### 模块五：抢单大厅（新增）

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| G-01 | 发布到大厅 | P1 | 派单将订单发布到抢单大厅 |
| G-02 | 打手抢单 | P1 | 先到先得 |
| G-03 | 抢单锁定 | P1 | 抢后锁定 30 秒确认，超时释放 |
| G-04 | 大厅筛选 | P1 | 按游戏/地图/金额筛选 |
| G-05 | 抢单通知 | P1 | 新单推送通知给在线打手 |
| G-06 | 抢单记录 | P2 | 完整审计 |
| G-07 | 信誉分 | P3 | 抢了不做扣分，按时完成加分 |
| G-08 | 大厅公告 | P2 | 大厅内公告栏 |

---

### 模块六：审核系统（新增）

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| A-01 | 订单审核流 | P1 | 录入 → 审核 → 派单 |
| A-02 | 规则引擎 | P2 | 金额>X/特殊渠道 → 自动需审核 |
| A-03 | 通过/驳回 | P1 | 驳回需写原因 |
| A-04 | 审核记录 | P1 | 完整链路记录 |
| A-05 | 批量审核 | P2 | 勾选多个一键通过 |
| A-06 | 审核统计 | P2 | 通过率/驳回率/平均时长 |
| A-07 | **驳回后二次申诉** | P1 | 驳回 → 报单系统二次申诉 → 重新审核 |

**审核流程：**
```
客服录入 → [审核队列] → 审核员审核
                          ↓        ↓
                        通过      驳回(写原因)
                          ↓        ↓
                       进入派单   通知打手/客服
                                     ↓
                                  二次修改+申诉
                                     ↓
                                  [审核队列] → 重新审核
                                     ↓        ↓
                                   通过      再次驳回
                                     ↓        ↓
                                  进入派单   标记争议(管理员介入)
```

---

### 模块七：抖店录入 & 订单字段自动识别（新增）

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| D-01 | 抖店 API 对接 | P0 | 抖店开放平台抓取订单 |
| D-02 | 字段自动识别 | P1 | 自动提取：订单号/金额/商品名/买家 |
| D-03 | 自动创建订单 | P1 | 抓取后自动创建，标记渠道 |
| D-04 | 去重机制 | P1 | 同一平台订单不重复创建 |
| D-05 | 状态同步 | P2 | 退款/完成状态自动同步 |
| D-06 | 多平台框架 | P0 | 统一适配器接口 |
| D-07 | 粘贴识别增强 | P1 | 平台后台复制文本自动解析 |
| D-08 | 平台授权管理 | P1 | 授权/解绑/Token |
| D-09 | **中英文标签识别** | P1 | 粘贴解析同时支持中英文 |

**支持平台：**

| 平台 | 优先级 | 对接方式 |
|---|---|---|
| 抖音/抖店 | P0 | 开放平台 API |
| 代练通 | P1 | API |
| 淘宝/天猫 | P2 | 淘宝开放平台 |
| 闲鱼 | P3 | API/爬虫 |
| 小红书 | P3 | 商家 API |
| 拼多多/京东 | P3 | 开放平台 |
| 私域 | P1 | 手动录入 |

---

### 模块八：派单提醒（升级）

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| T-01 | 多级超时提醒 | P1 | 5min黄 → 10min橙 → 15min红 → 30min闪烁+声音 |
| T-02 | 桌面通知 | P1 | Electron/浏览器 Notification |
| T-03 | 声音提醒 | P1 | 超时/新单/呼叫不同音效 |
| T-04 | 企微推送 | P2 | 超时推送到企微群 |
| T-05 | 打手接单提醒 | P2 | 抢单/接单后通知客服 |
| T-06 | 存单到期提醒 | P2 | 存单超期提醒 |

---

### 模块九：状态自动识别 / 手动更改

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| S-01 | 退款自动识别 | P1 | 平台退款回调 → 自动标记 |
| S-02 | 结单自动识别 | P1 | 确认收货 → 自动标记 |
| S-03 | 部分退款识别 | P1 | 记录部分退款金额 |
| S-04 | 付款金额识别 | P1 | 实付 vs 门店金额对比 |
| S-05 | 状态变更触发器 | P2 | 变更后自动触发后续动作 |
| S-06 | **手动覆盖保留** | P0 | 自动识别状态仍可手动改（仅管理员） |
| S-07 | 敏感状态审批 | P2 | 退款/售后变更需审批 |

**所有状态更改仅管理员可操作。**

---

### 模块十：打手 ID 识别 & 工作室归属（新增）

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| W-01 | 独立 ID 体系 | P1 | 打手有唯一 ID，不再仅文本 |
| W-02 | 打手档案 | P1 | 昵称/联系方式/擅长游戏/擅长地图/信誉分/在线状态 |
| W-03 | 工作室归属 | P1 | 工作室名下打手显示工作室名 |
| W-04 | **自营标识** | P1 | 自营打手工作室显示「**未来洞电竞**」 |
| W-05 | 打手登录 | P1 | H5/小程序独立入口 |
| W-06 | 打手绩效 | P2 | 接单量/完成率/平均时长 |
| W-07 | 上下线状态 | P2 | 打手可设在线/离线 |
| W-08 | 工作室管理后台 | P2 | 工作室管理员管名下打手 |

**数据结构：**
```
打手
├── id / name / contact / wechat
├── studio_id → 工作室
│   ├── null → 自营 → 显示「未来洞电竞」
│   └── 有值 → 显示工作室名称
├── games[] / maps[]
├── reputation / status
└── stats: { 接单量, 完成率, 平均时长 }
```

---

### 模块十一：订单渠道识别

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| R-01 | 渠道自动识别 | P1 | 从文本/URL 识别来源平台 |
| R-02 | 支持渠道列表 | P0 | 抖音/淘宝/天猫/闲鱼/小红书/私域/代练通/拼多多/京东 |
| R-03 | 渠道图标/颜色 | P2 | 不同渠道不同标识 |
| R-04 | 渠道统计 | P1 | 按渠道统计订单量/金额/退款率 |
| R-05 | 渠道配置 | P2 | 管理员可新增/编辑/禁用 |

---

### 模块十二：订单财务识别（新增）

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| F-01 | 付款金额记录 | P1 | 实付金额/支付方式/支付时间 |
| F-02 | 退款状态识别 | P1 | 未退/部分退/全额退 |
| F-03 | 部分退款金额 | P1 | 记录实际退款金额 |
| F-04 | 结单状态识别 | P1 | 未结单/已结单+结单时间 |
| F-05 | 订单生命周期 | P1 | 创建→付款→审核→派单→进行中→结单→(退款) |
| F-06 | 财务汇总 | P2 | 日/周/月收入/退款/净收入 |
| F-07 | 渠道财务对比 | P2 | 各渠道收入/退款对比 |
| F-08 | **已结算退款** | P1 | 已结算订单可从打手账户扣款做暂时退款 |

---

### 模块十三：看板功能

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| K-01 | 全源总览看板 | P1 | 所有渠道汇总 |
| K-02 | 单源筛选 | P1 | 选单一渠道查看 |
| K-03 | 实时刷新 | P1 | WebSocket 推送 |
| K-04 | 关键指标卡片 | P1 | 今日/未派/卡单/超时/退款 |
| K-05 | 趋势图 | P2 | 订单量/金额折线图 |
| K-06 | 排行榜 | P2 | 打手/工作室排行 |
| K-07 | 自定义看板 | P2 | 拖拽布局 |
| K-08 | 热力图 | P3 | 时段/渠道热力图 |

---

### 模块十四：存单便捷打开方式

> 合并至模块二，核心要点：
1. 主界面订单行内**一键存单**
2. **浮窗操作**不离开列表页
3. **快捷键**支持
4. 侧边栏**存单看板**

---

### 模块十五：当前功能全保留

| 项 | 策略 |
|---|---|
| 手动录入 | ✅ 保留，升级 Vue 3 |
| 粘贴解析 | ✅ 保留 + 英文标签识别 |
| 订单查重 | ✅ 保留，遍历全表 |
| 全字段搜索 | ✅ 保留 |
| 状态历史 | ✅ 保留，全部操作记录 |
| 聊天记录 | ✅ 保留，暴露前端 |
| 图片上传 | ✅ 升级：按订单文件夹存储 |
| 编辑订单 | ✅ 保留，仅管理员 |
| 作废/恢复 | ✅ 保留 |
| 复制信息 | ✅ 保留 |

**订单文件夹存储方案：**
```
uploads/
└── orders/
    └── {order_number}/      ← 每个订单一个文件夹
        ├── 001_screenshot.png
        ├── 002_chat.png
        └── 003_proof.jpg
```

---

### 模块十六：客服端功能限制

客服（reception）**限制清单**：

| 操作 | 限制 |
|---|---|
| 查看订单 | 仅自己录入/负责的 |
| 编辑订单 | 仅自己录入的，仅基本信息 |
| **更改任何状态** | **❌ 完全禁止** |
| 作废/恢复 | ❌ |
| 删除聊天记录 | ❌ |
| 导出数据 | ❌ |
| 全局统计 | ❌（仅自己的） |
| 发公告 | 仅「有手游/有端游」 |
| 用户管理/配置 | ❌ |

**客服可做：** 录入订单、编辑自己订单基本信息、呼叫、交接、聊天室、查看自己统计。

---

### 模块十七：多游戏支持（新增）

| ID | 需求 | 优先级 | 说明 |
|---|---|---|---|
| MG-01 | 游戏管理 | P0 | 管理员新增/编辑/禁用游戏 |
| MG-02 | 游戏字段模板 | P0 | 每个游戏配置专属报单字段 |
| MG-03 | 订单绑定游戏 | P0 | 订单增加 game_id |
| MG-04 | 游戏维度筛选 | P1 | 按游戏筛选订单/看板/统计 |
| MG-05 | 游戏专属看板 | P2 | 每个游戏独立看板 |

**预设：** 三角洲行动（主）、王者荣耀、和平精英、英雄联盟，更多由管理员添加。

---

## 五、数据模型

### 核心表清单

| 表 | 状态 | 说明 |
|---|---|---|
| `orders` | **升级** | 增加 game_id/财务字段/审核字段/抢单大厅标记 |
| `players` | **新增** | 打手独立档案 |
| `studios` | **新增** | 工作室 |
| `games` | **新增** | 游戏+字段模板 |
| `reviews` | **新增** | 审核记录 |
| `reports` | **新增** | 报单记录 |
| `hall_grabs` | **新增** | 抢单记录 |
| `platforms` | **新增** | 平台配置 |
| `users` | 升级 | 增加 reviewer/player 角色 |
| `cs_accounts` | 保留 | |
| `login_records` | 保留 | |
| `order_status_history` | 保留 | |
| `call_records` | 保留 | |
| `announcements` | 保留 | |
| `team_chat` | 保留 | |
| `handovers` | 保留 | |
| `chat_records` | 保留 | |
| `operation_logs` | 保留 | |
| `user_settings` | 保留 | |
| `configs` | 保留 | |
| `activity_counters` | 保留 | |

### 新增表结构

**打手表 (players)**
```
id, club_id, name, contact, wechat,
studio_id (FK→studios, null=自营),
games[], maps[],
reputation, status, total_orders, completed_orders, avg_time,
is_active, created_at, updated_at
```

**工作室表 (studios)**
```
id, club_id, name, contact, manager_id,
is_self_operated (true=未来洞电竞),
is_active, created_at
```

**游戏表 (games)**
```
id, club_id, name, icon,
report_fields (JSON: 字段模板),
is_active, created_at
```

**审核表 (reviews)**
```
id, club_id, target_type (order/report), target_id,
status (pending/approved/rejected/disputed),
reviewer_id, reason, appeal_count,
created_at, updated_at
```

**报单表 (reports)**
```
id, club_id, order_id, player_id, game_id,
report_type (progress/completed/help/appeal),
content (JSON), images[],
review_status, reviewed_by, reviewed_at, review_reason,
created_at
```

**抢单表 (hall_grabs)**
```
id, club_id, order_id, player_id,
status (locked/confirmed/released/expired),
locked_at, confirmed_at
```

**平台表 (platforms)**
```
id, club_id, name,
api_config (JSON), field_mapping (JSON),
sync_enabled, sync_interval, last_sync_at,
is_active
```

---

## 六、API 接口清单（v2）

### 订单
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| POST | `/api/v2/orders` | 创建 | 客服+ |
| PUT | `/api/v2/orders/:id` | 编辑 | 管理员 |
| PUT | `/api/v2/orders/:id/tags` | 改状态 | 管理员 |
| POST | `/api/v2/orders/:id/void` | 作废 | 管理员 |
| POST | `/api/v2/orders/:id/unvoid` | 恢复 | 管理员 |
| POST | `/api/v2/orders/:id/images` | 上传图片 | 客服+ |
| GET | `/api/v2/orders/:id/images` | 图片列表 | 客服+ |
| POST | `/api/v2/orders/:id/settle` | 结算 | 管理员 |
| POST | `/api/v2/orders/:id/refund-settled` | 已结算退款 | 管理员 |

### 审核
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| GET | `/api/v2/reviews` | 审核队列 | 审核员+ |
| POST | `/api/v2/reviews/:id/approve` | 通过 | 审核员+ |
| POST | `/api/v2/reviews/:id/reject` | 驳回 | 审核员+ |
| POST | `/api/v2/reviews/:id/appeal` | 二次申诉 | 客服+ |

### 报单
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| POST | `/api/v2/reports` | 打手报单 | 打手 |
| GET | `/api/v2/reports` | 报单列表 | 审核员+ |
| POST | `/api/v2/reports/:id/approve` | 通过 | 审核员+ |
| POST | `/api/v2/reports/:id/reject` | 驳回 | 审核员+ |

### 抢单
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| GET | `/api/v2/hall` | 大厅列表 | 打手 |
| POST | `/api/v2/hall/:id/publish` | 发布 | 派单+ |
| POST | `/api/v2/hall/:id/grab` | 抢单 | 打手 |
| POST | `/api/v2/hall/:id/confirm` | 确认 | 打手 |

### 打手 / 工作室 / 游戏 / 平台
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| GET/POST/PUT | `/api/v2/players` | CRUD | 管理员 |
| PUT | `/api/v2/players/:id/status` | 上下线 | 打手 |
| GET/POST/PUT | `/api/v2/studios` | CRUD | 管理员 |
| GET/POST/PUT | `/api/v2/games` | CRUD | 管理员 |
| GET/POST | `/api/v2/platforms` | CRUD | 管理员 |
| POST | `/api/v2/platforms/:id/sync` | 同步 | 管理员 |

### 看板
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| GET | `/api/v2/dashboard` | 全源看板 | 客服+ |
| GET | `/api/v2/dashboard?channel=xxx` | 单源 | 客服+ |
| GET | `/api/v2/dashboard?game_id=xxx` | 单游戏 | 客服+ |

---

## 七、开发分期

### Phase 1 — MVP（4-6 周）
- [ ] 架构改造：PostgreSQL + NestJS + Vue 3
- [ ] 多租户 + RBAC 五角色权限
- [ ] 订单管理升级（权限限制、图片按订单存储）
- [ ] 打手 ID 体系 + 工作室归属（自营「未来洞电竞」）
- [ ] 多游戏支持（游戏管理 + 字段模板）
- [ ] 粘贴解析增强（中英文标签）

### Phase 2 — 核心功能（4-6 周）
- [ ] 审核系统 + 驳回二次申诉
- [ ] 报单系统（多游戏 + 截图 + 作废仅不结算）
- [ ] 抢单大厅（锁定/通知/筛选）
- [ ] 状态自动识别（退款/结单/部分退款）
- [ ] 派单提醒升级（多级超时/声音/桌面通知）

### Phase 3 — 平台对接（4-6 周）
- [ ] 抖店 API 对接
- [ ] 多平台适配器框架
- [ ] 订单财务识别（实付/退款/已结算退款）
- [ ] 渠道自动识别

### Phase 4 — 增强（持续）
- [ ] 看板升级（实时/趋势图/排行）
- [ ] 存单便捷化
- [ ] 绩效统计
- [ ] 更多平台对接

---

## 八、兼容迁移策略

| 项 | 策略 |
|---|---|
| 现有数据 | 全量迁移到 PostgreSQL，字段兼容 |
| 现有 API | 保留 v1，新增 v2 |
| 现有前端 | 保留可用，逐步替换 Vue 3 |
| 现有功能 | 全部保留，仅升级增强 |
| Electron | 保持兼容，新功能同步 |
