菜单消费账单核对与并行支付实施计划
文件结构
- 新增
MenuBillItem 和 PaymentSessionGate。 - 新增
MenuBillCheckPop、账单弹框布局和账单行布局。 - 修改
MainActivity、字符串及尺寸资源。 - 新增账单汇总和会话门禁单元测试。
- 实现后补充同名 Markdown/HTML 变更记录。
Task 1:建立可测试的账单模型和支付会话门禁
- 编写失败测试,覆盖相同菜品汇总、不同菜品独立、首路获胜和关闭后拒绝。
- 运行
./gradlew :app:testDebugUnitTest --tests 'com.cpt.cusumption.payment.*',确认因类不存在而失败。 - 使用
LinkedHashMap、BigDecimal 和 AtomicBoolean 实现最小代码及责任注释。 - 再次运行测试,要求 0 failures。
Task 2:实现主屏菜单账单核对弹框
- 新增账单布局、行布局、字符串和尺寸资源,避免在新增代码中重复硬编码。
- 定义卡号、付款码、人脸、外部相机和取消回调。
- 设备 4 使用键盘式卡号与伟邦扫码;设备 5 使用伟邦卡码串口;设备 7 使用优卡特卡码串口;设备 3 使用米果扫码;设备 1、2 回调现有相机扫码。
- 所有入口经过一次性会话门禁,成功后先释放全部资源再回调。
- 运行
./gradlew :app:compileDebugJavaWithJavac,要求构建成功。
Task 3:接入 MainActivity 并复用现有支付链路
- 保留购物车为空判断,删除 100 元限制,直接打开账单核对弹框。
- 刷卡继续本地人员校验后调用现有支付;扫码清洗前缀后调用现有支付;人脸打开现有识别弹框;外部相机继续由
onActivityResult() 处理。 - 不调用客屏账单或支付选择界面,保留现有支付结果展示。
- 只清理
MainActivity 已废弃入口,不删除其他页面仍使用的旧支付弹框。 - 运行单元测试和 Java 编译。
Task 4:需求复核、编码检查和变更记录
- 静态确认 100 元预警已移除、主屏边界正确、门禁和人脸链路符合规格。
- 检查硬编码、责任注释、UTF-8 无 BOM 和简体中文。
- 运行
./gradlew :app:testDebugUnitTest :app:assembleDebug,要求构建成功且测试零失败。 - 生成同名 Markdown/HTML 变更记录,写明文件、设备范围和验证结果。
- 运行
git status --short 与 git diff --check;未经授权不暂存、不提交、不推送。