2026-08-27 消费页餐盘订单与一卡通交易变更记录
目标与来源
餐盘码到达后调用 POST /api/oneCardTerminal/acquireByPlate 获取订单号和分单位金额;订单有效后播放本地“请刷卡”,按“消费前读卡、先扣补贴、主钱包补足、消费后复读”的顺序完成交易,并持续显示订单、读卡和每笔扣款结果。
实际改动
- 新增请求/响应 DTO 和现有 Retrofit 三层网络调用,字段严格使用
plate_code、equipment_code、order_no、amount。
- 新增订单会话协调器、一次性卡交易执行器和防重复门控。
- 交易在同一 USB 实例和单线程 I/O 中依次执行前读卡、补贴优先扣款、主钱包补足和后读卡;扣款开始后不自动整单重试。
- 消费页新增六行常驻状态,分别显示订单、前后卡信息,以及补贴和主钱包两笔结果。
- 新增本地
please_swipe_card.mp3,复用现有 SoundPool 和语音开关,不使用运行时 TTS。
验证证据
- JDK 8 强制重跑全量单测和 Debug 构建:BUILD SUCCESSFUL。
- 57 个测试,0 failure,0 error,0 skipped;覆盖补贴全额、补贴加主钱包两笔、仅主钱包和余额不足。
git diff --check 与尾随空白检查通过。
- 提示音:MP3、16kHz、单声道、32kbps;后续按用户反馈从 1.00× 调整为 1.08×,文件总时长由 1.296 秒变为约 1.172 秒。
- APK:
app/build/outputs/apk/debug/app-debug.apk,63,763,774 字节。
设备与服务验收边界
新接口真实响应、扫码器放盘/移盘事件、真实双钱包扣款与 PSAM 确认、目标屏幕布局和提示音响度仍待服务端与实体样机联调。软件单测和构建成功不等于硬件验收完成。
范围与 Git 边界
未新增未提供契约的消费结果上传接口,未修改一卡通 APDU/PSAM 协议。未执行 Git 暂存、提交、推送、合并、分支切换、清理或其他写操作。
人工评审
待用户查看六行交易信息、两钱包结果文案、语音响度和样机真实扣款效果。
后续语音调整
- 2026-08-27:用户反馈“请刷卡”语速稍慢。
- 原文件按正常播放倍率 1.00× 播放,总时长 1.296 秒;MP3 不保存语音合成阶段的每分钟字数参数。
- 在保留原音色和音高的前提下使用 1.08× 时间伸缩,调整后总时长约 1.172 秒。
- 输出继续保持 MP3、16kHz、单声道、32kbps,并重新构建 Debug APK。