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