|
@@ -190,18 +190,42 @@
|
|
|
|
|
|
|
|
**复用**:`LsyMerchantService.requireByTenant`(找本租户默认商户)、`LsyOrderService`(下单/关单),**不抄** `LeshouyingOpenController` 的落库装配。
|
|
**复用**:`LsyMerchantService.requireByTenant`(找本租户默认商户)、`LsyOrderService`(下单/关单),**不抄** `LeshouyingOpenController` 的落库装配。
|
|
|
|
|
|
|
|
-- [ ] **Step 1** 测试先行:租户闸先于上游调用、金额校验、outTradeNo 生成、状态轮询只回本租户
|
|
|
|
|
-- [ ] **Step 2** 实现三个端点
|
|
|
|
|
-- [ ] **Step 3** 前端收款页:大金额输入 → 「收款」→ 大二维码 + 等待动画 → 轮询 3 秒 → 成功变绿 + 撤销按钮
|
|
|
|
|
-- [ ] **Step 4** 菜单 SQL(我写,用户执行)
|
|
|
|
|
|
|
+- [x] **Step 1** 测试先行:租户闸先于上游调用、金额校验、outTradeNo 生成、状态轮询只回本租户
|
|
|
|
|
+ —— `LeshouyingCashierControllerTest` 20 条,两个方向都钉住(见 Step 2 的变异读数)。
|
|
|
|
|
+- [x] **Step 2** 实现三个端点 —— `LeshouyingCashierController`(3 个端点)+ `LsyCashierCreateDTO` + `LsyCashierOrderVO`。
|
|
|
|
|
+ **两向变异 7 组全绿**(`logs/_t4-mutate-report.txt`):丢租户谓词 / 关单不加守卫 / 设上 `notify_url` /
|
|
|
|
|
+ 去掉查单节流 / 去掉上游失败降级 / 去掉终态短路 —— 六组各自**只**打红它该打红的那条;
|
|
|
|
|
+ 外加一组**无害**改动(局部变量改名)实测仍全绿。每组跑完都还原到基线
|
|
|
|
|
+ sha256 `738e01fb17b43bf69cf04664b075730ecff55cdfd1713556fc5a9cb97dce083e`。
|
|
|
|
|
+ ★ 另加**登记完备性**腿⑤(`LeshouyingAdminWiringTest`):反注册本控制器 ⇒ 红并报出
|
|
|
|
|
+ `unbacked = [module_payment:leshouying:cashier:list]`;无害地把 `MENU_SQLS` 换个顺序 ⇒ 仍绿。
|
|
|
|
|
+- [x] **Step 3** 前端收款页:大金额输入 → 「收款」→ 大二维码 + 等待动画 → 轮询 3 秒 → 成功变绿 + 撤销按钮
|
|
|
|
|
+ —— `views/module_payment/collection/cashier/index.vue`。`pnpm build` rc=0(`✓ built in 1m 11s`);
|
|
|
|
|
+ `pnpm ts:check` **前后逐行相同**(287 行,排序集 sha `00a886b38047e0e7`,时序 18:27:45 < 编辑 < 18:33:20)
|
|
|
|
|
+ ⇒ 零新增类型错误(本仓该命令恒 exit 2,不能说"跑绿了")。
|
|
|
|
|
+ 产物核对(`logs/_t5-dist-probe.py`):本页 6 条独有中文串**全部**落在同一个 chunk
|
|
|
|
|
+ `js/index.Cs2OUF6W.js` 里;同谓词正控 2 条命中、反对照 0 命中。
|
|
|
|
|
+- [x] **Step 4** 菜单 SQL(我写,用户执行)—— `db/lsy-cashier-menu.sql`,**待用户执行**(本仓约定:SQL 只由用户跑)。
|
|
|
|
|
+ `route_name`/`permission` 取自**活库只读实测**(2026-09-23)与源码现取,不是照邻页推的。
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
## Task 5:接入文档可见性核查(收尾)
|
|
## Task 5:接入文档可见性核查(收尾)
|
|
|
|
|
|
|
|
-- [ ] 确认 `dist/` 产物含收款文档(前面被打断的检查):`grep -rl collection_qrcode dist/js/` + 同谓词正控
|
|
|
|
|
-- [ ] 若产物落后 ⇒ 重新构建
|
|
|
|
|
-- [ ] 「商户映射」菜单改名「手工登记商户号」,页面顶部说明改成一句人话
|
|
|
|
|
|
|
+- [x] 确认 `dist/` 产物含收款文档(前面被打断的检查):`grep -rl collection_qrcode dist/js/` + 同谓词正控
|
|
|
|
|
+ —— 做了,但**换了个更硬的谓词**:不查接口名(`collection_qrcode` 是路径串,接口名改了它不一定变),
|
|
|
|
|
+ 改查**本页独有的中文字面量** 6 条(操作员真正看到的那几句)。读数见 Task 4 / Step 3。
|
|
|
|
|
+- [x] 若产物落后 ⇒ 重新构建 —— 重建过:`pnpm build` rc=0,dist 最新 mtime = 2026-09-23 18:29:18。
|
|
|
|
|
+- [x] 「商户映射」菜单改名「手工登记商户号」,页面顶部说明改成一句人话
|
|
|
|
|
+ —— 新增 `db/lsy-merchant-menu-rename.sql`(**待用户执行**);
|
|
|
|
|
+ 源码里跟着改的是「**引号里指名菜单**」的四处:`LsyMerchantService.java:56` / `:85`
|
|
|
|
|
+ 的 404 文案、`LsyOnboardingService.java:44` 的逐字引文(引文失真会让人以为代码没改)、
|
|
|
|
|
+ 以及该页弹窗标题与删除确认。
|
|
|
|
|
+ ★ **领域术语一律保留**(javadoc / 表注释 / 类名里的「商户映射」)—— 那里说的是事实
|
|
|
|
|
+ (确实是一条「企业 ↔ 商户号」的映射),只是不适合当菜单名。改与不改的判据是
|
|
|
|
|
+ 「**操作员会不会在界面上读到这个旧名字**」,不是「仓库里还有没有这四个字」。
|
|
|
|
|
+ ★ 实测影响面:测试里**零**断言旧菜单名(唯一两处命中是注释与 `contains("未配置商户号")`,
|
|
|
|
|
+ 子串不含菜单名)⇒ 改名不需要动任何测试。
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|