From a7ff42959602f251537507551cd3c4150eab437a Mon Sep 17 00:00:00 2001 From: tangweijie <877588133@qq.com> Date: Tue, 14 Jul 2026 10:51:24 +0800 Subject: [PATCH] docs: record counter topup display verification --- ...-07-14-counter-topup-persistent-display.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 docs/evidence/bugfix/2026-07-14-counter-topup-persistent-display.md diff --git a/docs/evidence/bugfix/2026-07-14-counter-topup-persistent-display.md b/docs/evidence/bugfix/2026-07-14-counter-topup-persistent-display.md new file mode 100644 index 0000000..d4d635c --- /dev/null +++ b/docs/evidence/bugfix/2026-07-14-counter-topup-persistent-display.md @@ -0,0 +1,52 @@ +# 柜台预存持久回显修复验证证据 + +- 验证日期:2026-07-14 +- 后端基线:`06ed57830fe0ccd50f0a74e3e5cf02114b0ace45` +- 后端修复提交:`27c27aacc96f9ad139b966bf3ea400643859efcb` +- 前端基线:`a0239b384f7e072c11c67ae6d405980260f4af14` +- 前端修复提交:`c73a13b6e234d146ea3e667643ab7012d9078a4d` +- 设计:`docs/superpowers/specs/2026-07-13-counter-topup-persistent-display-design.md` +- 计划:`docs/superpowers/plans/2026-07-14-counter-topup-persistent-display.md` + +## 实现结果 + +1. 客户缴费历史不再截断为最新一条,按有效记录完整分页并保持汇总、导出一致。 +2. 新版缴费记录查询增加可选 `bizScene`,柜台页面用 `DEPOSIT_TOPUP` 精确查询最近有效预存。 +3. 新柜台预存先生成支付主单,再把 `paymentRecordId` 写入账户流水 `payDetailId`。 +4. 缴费历史通过账户流水展示新预存的期初、期末余额;旧记录没有可靠关联时保持空值。 +5. 无欠费客户重新查询时可从后端恢复最近预存行,不依赖前端临时缓存或浏览器存储。 +6. 恢复的历史预存行不可勾选,也不阻塞客户再次办理预存。 + +## TDD 红绿证据 + +| 场景 | 修复前失败 | 修复后结果 | +|---|---|---| +| 完整缴费历史 | 期望 `2` 条,实际仅 `1` 条 | PASS | +| 业务场景过滤 | 请求 VO 不存在 `bizScene` | PASS | +| 预存流水关联 | 支付主单在余额增加之后生成,流水 `payDetailId` 为空 | PASS | +| 余额快照 | 期望期初 `10.00`,实际为 `null` | PASS | +| 前端持久回显 | 新增契约首次执行 `0/3` 通过 | 最终 `4/4` PASS | + +## 验证结果 + +| 范围 | 命令 | 结果 | 说明 | +|---|---|---|---| +| 后端定向单测 | `mvn -q -pl sw-business/sw-business-server -am -Dtest=PaymentQueryServiceTest,ChargeServiceCounterPaymentTest,PaymentRecordServiceImplTest,CounterSettleApplicationServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false test` | PASS | 73 个测试,0 失败,0 错误 | +| 后端编译 | `mvn -q -pl sw-business/sw-business-server -am -DskipTests compile` | PASS | 退出码 `0` | +| 前端新增契约 | `node --test tests/operatingCharges/counterChargingPersistentTopup.test.mjs` | PASS | 4 个测试全部通过 | +| 前端既有柜台契约 | `pnpm test:counter-charging` | PASS | 4 个测试全部通过 | +| 前端路由恢复契约 | `node --test tests/operatingCharges/counterChargingPersistentTopup.test.mjs tests/operatingCharges/counterChargingRouteRestore.test.mjs` | PARTIAL | 6 个测试中 5 个通过;既有 URL 搜索状态持久化测试仍失败,与本次预存回显修改无关 | +| 前端构建(默认堆) | `pnpm build:dev` | FAIL | Node 默认约 4 GB 堆触发 OOM,退出码 `134`,未出现源码编译错误 | +| 前端构建(8 GB 堆) | `NODE_OPTIONS=--max-old-space-size=8192 pnpm build:dev` | PASS | 输出 `Build successful. Please see dist directory` | + +## 未使用的验证入口 + +- 不运行 `vue-tsc` / `pnpm ts:check`。用户已明确要求本项目后续不要运行 `vue-tsc`,因此不将其作为本次验收入口。 + +## 已知边界 + +- 旧预存支付记录没有可靠 `payDetailId` 时,期初、期末余额显示 `-`,不按金额和时间模糊匹配。 +- 主副卡付款户解析和柜台有效余额读取不在本次修复范围。 +- 柜台收费路由恢复测试的既有失败仍待独立任务修复。 +- 前端全量构建需要显式提高 Node 堆上限;默认堆配置仍可能 OOM。 +