Przeglądaj źródła

docs(计划): 勾上 Task 4 / Task 5 —— 读数写进计划,不写「已完成」三个字

计划的复选框本身是二手描述,所以每一勾后面都带**当场量到的读数**:
变异组数与方向、还原用的基线 sha256、ts:check 的前后集合 sha 与时序、
产物 chunk 名与 dist mtime、以及「哪些改、哪些**有意**不改」的判据。

Task 5 第 1 项顺带记了一处**换谓词**:原计划写的是 grep 接口名
(`collection_qrcode`),实际改查本页独有的中文字面量。理由:接口名是路径串,
改了名它不一定会变,而操作员看到的是那几句中文 —— 后者才是「页面进没进产物」
这个问题的同谓词量具。

Task 5 第 3 项记了改名的判据(「操作员会不会在界面上读到这个旧名字」)
与两处**有意保留**的旧名,免得后来者把它当成漏改。
alphaH 3 tygodni temu
rodzic
commit
848fd7de30
1 zmienionych plików z 31 dodań i 7 usunięć
  1. 31 7
      .claude/plan/2026-09-23-lsy-simple-flow.md

+ 31 - 7
.claude/plan/2026-09-23-lsy-simple-flow.md

@@ -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("未配置商户号")`,
+      子串不含菜单名)⇒ 改名不需要动任何测试。
 
 
 ---
 ---