4.4 KiB
4.4 KiB
小程序业务流程与状态机
基于 软件系统说明.docx 整理。本文档用于把现有流程描述收敛成可继续细化的页面与状态框架,不补充未经确认的产品规则。
已确认范围
技术边界
- 小程序技术栈:微信原生
WXML / WXSS / JS - 与设备通过
BLE 5.0 GATT通信 - 与云端通过
HTTPS/MQTT通信
页面范围
- 首页:设备连接、治疗开始
- 护理历史:记录和统计
- 发现:美容百科、公告
- 我的:用户中心、订阅管理
已确认流程
首次使用:
- 扫码
- 蓝牙授权
- 设备绑定
- 获得 7 天试用
- 确认佩戴
- 自动扫描
- 开始治疗
日常使用:
- 打开小程序
- 连接设备
- 确认佩戴
- 自动扫描
- 开始治疗
建议页面职责
首页
承载主链路:
- 设备连接状态展示
- 设备连接入口
- 佩戴确认结果
- 自动扫描结果或状态
- 开始治疗入口
- 治疗中状态展示
护理历史
承载治疗结果查询:
- 历史记录列表
- 单次治疗摘要
- 与云端同步状态
发现
承载弱业务内容:
- 美容百科
- 公告
我的
承载账号与订阅信息:
- 用户信息
- 设备绑定信息
- 订阅状态
- 试用状态
建议最小状态机
以下状态用于支撑第一阶段开发,不代表最终产品态。
| 状态 | 含义 | 是否由文档直接确认 |
|---|---|---|
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. 开始治疗
已知:自动扫描后可以开始治疗。
待确认:
- 是否允许用户手动调节模式、时长、档位
- 是否需要先校验订阅状态
日常使用流程拆解
日常使用与首次流程的区别在于不再强调扫码、绑定和试用发放,因此可视为:
- 恢复登录态
- 连接已绑定设备
- 佩戴确认
- 自动扫描
- 开始治疗
- 记录同步
异常流清单
以下异常流文档尚未定义,但开发前必须明确:
- 蓝牙授权被拒绝
- 扫描不到设备
- 设备连接中断
- 设备已被他人绑定
- 试用已到期
- 订阅无效
- 佩戴确认失败
- 自动扫描失败
- 治疗中断
- 记录同步失败
页面与状态的最低接口需求
为了让小程序能继续设计,云端和 BLE 至少需要提供这些能力:
- 查询当前用户信息
- 查询当前绑定设备
- 绑定/解绑设备
- 查询订阅状态
- 同步治疗记录
- BLE 读取设备状态
- BLE 执行佩戴确认、自动扫描、开始治疗
待确认问题
- 小程序是否直接使用 MQTT
- 首页是否需要展示实时传感器数据
- 护理历史中的“统计”是本地统计还是云端聚合统计
- 发现页内容是否来自 CMS 或静态配置
- 我的页面是否包含售后、反馈、设置等附加入口
当前结论
当前说明已经给出主流程,但还没有给出完整状态机、异常流和页面交互规则。后续应优先把首页主链路和绑定/订阅规则细化清楚。