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

4.4 KiB

小程序业务流程与状态机

基于 软件系统说明.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 或静态配置
  • 我的页面是否包含售后、反馈、设置等附加入口

当前结论

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