# 小程序业务流程与状态机

基于 `软件系统说明.docx` 整理。本文档用于把现有流程描述收敛成可继续细化的页面与状态框架，不补充未经确认的产品规则。

## 已确认范围

### 技术边界

- 小程序技术栈：微信原生 `WXML / WXSS / JS`
- 与设备通过 `BLE 5.0 GATT` 通信
- 与云端通过 `HTTPS/MQTT` 通信

### 页面范围

- 首页：设备连接、治疗开始
- 护理历史：记录和统计
- 发现：美容百科、公告
- 我的：用户中心、订阅管理

### 已确认流程

首次使用：

1. 扫码
2. 蓝牙授权
3. 设备绑定
4. 获得 7 天试用
5. 确认佩戴
6. 自动扫描
7. 开始治疗

日常使用：

1. 打开小程序
2. 连接设备
3. 确认佩戴
4. 自动扫描
5. 开始治疗

## 建议页面职责

### 首页

承载主链路：

- 设备连接状态展示
- 设备连接入口
- 佩戴确认结果
- 自动扫描结果或状态
- 开始治疗入口
- 治疗中状态展示

### 护理历史

承载治疗结果查询：

- 历史记录列表
- 单次治疗摘要
- 与云端同步状态

### 发现

承载弱业务内容：

- 美容百科
- 公告

### 我的

承载账号与订阅信息：

- 用户信息
- 设备绑定信息
- 订阅状态
- 试用状态

## 建议最小状态机

以下状态用于支撑第一阶段开发，不代表最终产品态。

| 状态 | 含义 | 是否由文档直接确认 |
| --- | --- | --- |
| `UNAUTHORIZED_BLE` | 未完成蓝牙授权 | 是 |
| `DISCONNECTED` | 未连接设备 | 是 |
| `CONNECTED_UNBOUND` | 已连接但未绑定 | 间接确认 |
| `BOUND_IDLE` | 已绑定，待治疗 | 间接确认 |
| `WEARING_CHECK` | 佩戴确认中 | 是 |
| `AUTO_SCAN` | 自动扫描中 | 是 |
| `READY_TO_TREAT` | 可开始治疗 | 间接确认 |
| `TREATING` | 治疗中 | 是 |
| `SYNC_PENDING` | 治疗完成待同步 | 间接确认 |
| `SYNC_FAILED` | 记录同步失败 | 间接确认 |

## 首次使用流程拆解

### 1. 扫码

已知：首次使用从扫码开始。

待确认：

- 扫码内容是设备 SN、激活码、绑定码还是 URL
- 扫码失败后的兜底方式

### 2. 蓝牙授权

已知：首次使用要求蓝牙授权。

待确认：

- 是否还需要定位权限
- 拒绝授权后的引导方式

### 3. 设备绑定

已知：首次使用需要绑定设备。

待确认：

- 绑定前是否必须先 BLE 连接成功
- 绑定成功由本地判断还是服务端返回
- 一人多设备/一设备多用户规则

### 4. 获得 7 天试用

已知：首次使用绑定后获得 7 天试用。

待确认：

- 试用按用户发还是按设备发
- 是否有领取次数限制
- 试用到期后的处理

### 5. 确认佩戴

已知：治疗前要确认佩戴。

待确认：

- 由设备自动判断还是用户手动确认
- 失败时的提示和重试机制

### 6. 自动扫描

已知：佩戴确认后进入自动扫描。

待确认：

- 自动扫描的业务含义
- 扫描结果是否决定治疗参数

### 7. 开始治疗

已知：自动扫描后可以开始治疗。

待确认：

- 是否允许用户手动调节模式、时长、档位
- 是否需要先校验订阅状态

## 日常使用流程拆解

日常使用与首次流程的区别在于不再强调扫码、绑定和试用发放，因此可视为：

1. 恢复登录态
2. 连接已绑定设备
3. 佩戴确认
4. 自动扫描
5. 开始治疗
6. 记录同步

## 异常流清单

以下异常流文档尚未定义，但开发前必须明确：

- 蓝牙授权被拒绝
- 扫描不到设备
- 设备连接中断
- 设备已被他人绑定
- 试用已到期
- 订阅无效
- 佩戴确认失败
- 自动扫描失败
- 治疗中断
- 记录同步失败

## 页面与状态的最低接口需求

为了让小程序能继续设计，云端和 BLE 至少需要提供这些能力：

- 查询当前用户信息
- 查询当前绑定设备
- 绑定/解绑设备
- 查询订阅状态
- 同步治疗记录
- BLE 读取设备状态
- BLE 执行佩戴确认、自动扫描、开始治疗

## 待确认问题

- 小程序是否直接使用 MQTT
- 首页是否需要展示实时传感器数据
- 护理历史中的“统计”是本地统计还是云端聚合统计
- 发现页内容是否来自 CMS 或静态配置
- 我的页面是否包含售后、反馈、设置等附加入口

## 当前结论

当前说明已经给出主流程，但还没有给出完整状态机、异常流和页面交互规则。后续应优先把首页主链路和绑定/订阅规则细化清楚。
