熟食结算支付流程对齐实施计划
目标:让熟食结算的支付反馈、离线记账、结果展示和页面停留行为与称重结算一致。
架构:保留共享 PaymentManager,通过显式离线策略扩展熟食调用,不改变定额结算默认行为。使用独立的支付会话控制器管理当前请求,Activity 只负责界面加载态和结果弹框。
技术栈:Android Java、DialogFragment、RxJava 定时器、JUnit 4、Gradle。
Task 1:支付网络策略与会话状态
- 新增
PaymentNetworkPolicy、PaymentSessionController 和对应 JUnit 测试。
- 测试覆盖 MQTT 断网离线记账、在线断网失败、默认等待策略兼容,以及重复请求与迟到回调隔离。
- 先运行测试确认目标类缺失,再实现最小策略并确认新增测试通过。
Task 2:扩展共享支付管理器
- 增加向后兼容的
onPaymentRecorded 默认回调。
- 增加带离线策略的支付重载;旧入口继续等待超时,熟食入口允许断网立即记账。
- 离线记账保存订单、播放记账语音并返回记账结果;在线模式断网直接失败。
Task 3:熟食页面加载态和请求生命周期
- 增加消费触摸事件的全屏半透明加载遮罩和居中进度条。
- 支付开始、回调校验、完成和页面销毁统一通过会话控制器管理。
- 支付成功与记账成功使用不同标题,结果弹框消失后均停留在熟食页面。
- 支付中阻止返回、清空、再次结算、商品选择、调零和购物车编辑。
Task 4:验证与变更记录
- 使用 JDK 8 运行全部单元测试和
:app:assembleDebug。
- 执行
git diff --check 并检查硬编码及职责注释。
- 在 SellWeight 提示词工程目录写入同名 Markdown 与 HTML 变更记录。
- 不执行暂存、提交、推送或分支切换。