文件
jw-beauty/docs/design/02-小程序业务流程与状态机.md

210 行
4.4 KiB
Markdown

# 小程序业务流程与状态机
基于 `软件系统说明.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 或静态配置
- 我的页面是否包含售后、反馈、设置等附加入口
## 当前结论
当前说明已经给出主流程,但还没有给出完整状态机、异常流和页面交互规则。后续应优先把首页主链路和绑定/订阅规则细化清楚。