|
|
@@ -11,9 +11,9 @@
|
|
|
★ 这一批**没有写计划文件**(前几批是 `.claude/plan/<日期>-<主题>.md`),需求以 docx + 上述裁定
|
|
|
为准,落地过程与读数都在 `logs/` 下的日志里 —— 这点与既有批次不同,先说明。
|
|
|
|
|
|
-## 一、提交清单(5 个,全部**未 push**)
|
|
|
+## 一、提交清单(6 个,全部**未 push**)
|
|
|
|
|
|
-`origin/java` 停在 `ed24480f`;本地 `java` 领先 5 个提交:
|
|
|
+`origin/java` 停在 `ed24480f`;本地 `java` 领先 6 个提交:
|
|
|
|
|
|
| 提交 | 内容 |
|
|
|
|---|---|
|
|
|
@@ -22,15 +22,19 @@
|
|
|
| `c47b0c63` | (三)省市目录只读端点 `GET /payment/har/region/provinces|cities` + `db/har-shop-region.sql` |
|
|
|
| `8e352e7e` | (四)前端:门店表单省→市选择器、列表「地区」列、详情一行;开放 API 文档 §10.1 同步 |
|
|
|
| `ccc34414` | 文档 markdown 空行修正(引用块贴着 `---` 会被当成懒惰续行) |
|
|
|
+| `300a27f9` | (五)编码填错统一 400:`HarShopService#requireKnownCity` 两处单参 `BusinessException`(默认码 500)改显式 400;两条地区拒收用例补码断言(先红后绿);开放文档 §10.1 补码值 |
|
|
|
|
|
|
★ **`b1c8f6fb` 里夹带了一份 `支付宝支付接口接入规范261008(1).docx`(87512 字节)** ——
|
|
|
那是开工时会话开始前就已经 `git add` 进索引的文件,提交时没有指定路径,于是跟着这一刀进去了。
|
|
|
-**我没有改写历史**(改写会动到你已经能看到的提交),要不要摘出来请你定:留着无功能影响,
|
|
|
-摘掉需要 rebase/改写。后续提交都改成「显式路径 `git add` + `git commit -F <msg> -- <显式路径>`」。
|
|
|
+**我没有改写历史**(改写会动到你已经能看到的提交)。**你的裁定是保持现状**(2026-10-08),
|
|
|
+本批不再动它:留着无功能影响,摘掉需要 rebase/改写。后续提交都改成
|
|
|
+「显式路径 `git add` + `git commit -F <msg> -- <显式路径>`」。
|
|
|
|
|
|
## 二、验证读数(本机实测,不是推断)
|
|
|
|
|
|
-- 整包 `mvn test`:**1212 条,0 失败 0 错误 0 跳过,BUILD SUCCESS**(12:44:08;
|
|
|
+- 整包 `mvn test`:**1212 条,0 失败 0 错误 0 跳过,BUILD SUCCESS**
|
|
|
+ (★ 两条读数:第一条 12:44:08 在 `300a27f9` 之前;400 订正后 **12:47 复跑同数**
|
|
|
+ = 1212/0/0/0,21.4s,日志 `logs/_mvn-full-region-code-400.txt`;
|
|
|
`HarCheckoutControllerTest` 24 + `HarRegionControllerTest` 5 都在内)
|
|
|
- 两向变异(每条都先确认变异体生效,还原后 sha256 复核回基线):
|
|
|
|
|
|
@@ -49,12 +53,19 @@
|
|
|
- Element Plus 用法对着**装好的包**核过(2.14.0 `select.mjs`):`loading: Boolean`
|
|
|
「whether Select is loading data from server」、`disabled: Boolean` —— 不是凭记忆。
|
|
|
|
|
|
-- 产物指纹:
|
|
|
- - `java/target/payment-platform-1.0.0.jar`,143,146,829 字节,**sha256 `977da28010f737bdde382af5a34b5a46a0967e607a62573231e5867ef0d0f4f9`**,
|
|
|
- 重打于 12:45:02;已开包确认含 `HarRegionController.class`、`HarRegionVO.class`,
|
|
|
- 且包内 `har-region-cn.json` 与源码 sha256 一致(`23c713b1…`)
|
|
|
- - `frontend/dist.zip`,9,375,221 字节,**sha256 `dd4cf524bc11bc32d4a4e831793035b2ba2ca53b6ed0f957682c43708750dab1`**,
|
|
|
- 281 个条目(与上一版同形:`dist/` 开头、**全为正斜杠**、`testzip()` 无坏成员)
|
|
|
+- 产物指纹(★ 下面这版是**要部署的**,12:51/12:53 在 `300a27f9` 之后重打):
|
|
|
+ - `java/target/payment-platform-1.0.0.jar`,143,146,853 字节,**sha256 `b6b64c8ad8455d4e1e0639d7d8ad04ea9db347292ec75bb81cb384213379068d`**,
|
|
|
+ 重打于 12:51:49;开包验的是产物本身:从 jar 里取 `HarShopService.class` 反汇编
|
|
|
+ (`javap -p -c`),两处拒收都是 `sipush 400` → `BusinessException.<init>:(ILjava/lang/String;)V`
|
|
|
+ - `frontend/dist.zip`,9,375,214 字节,**sha256 `80038a66ef9dd73678ec5d9158f66763eef6f4451feb9f3fd9b92d50a2468fa6`**,
|
|
|
+ 12:53:49;281 个条目 = 277 文件 + 4 个目录条目(`dist/`、`dist/css/`、`dist/img/`、`dist/js/`,
|
|
|
+ 与上一版同形:**全为正斜杠**、`testzip()` 无坏成员)
|
|
|
+ - 这两版之前的旧件已被取代,别再照旧指纹核产物:
|
|
|
+ ~~jar `977da280…`(143,146,829 字节,12:45:02)、`dist.zip` `dd4cf524…`(9,375,221 字节)~~
|
|
|
+ - 文档改了一行 ⇒ dist 里 **103 个 chunk 的文件名哈希跟着变了**(Rollup 的 `[hash]` 含依赖哈希,
|
|
|
+ 一处内容改动脉冲式传播),条目数没变(前后各 277 个文件)。两向读数:旧包里只有旧句
|
|
|
+ `不属于该省的编码会被拒`(在 `js/index.SNmFzXAj.js`),新包里只有新句 `编码填错一律`
|
|
|
+ (在 `js/index.ruVK6GJ7.js`),互不相见 —— 不是「重建后一律变」的空话
|
|
|
|
|
|
## 三、部署要求(按顺序,第 1 步不做就没有后面)
|
|
|
|
|
|
@@ -87,15 +98,20 @@
|
|
|
不是本次引入):`shopName` 我方 `@Size(128)` vs 规范 varchar(16);`thirdShopCode` 32 vs 30;
|
|
|
实体列宽按规范 16 建。
|
|
|
|
|
|
-## 五、要你知悉 / 拍板的两件
|
|
|
+## 五、两件拍板(你已裁定:① 我解决、② 保持现状)
|
|
|
|
|
|
-1. **同类错误码两处不一致**(本次实测发现):编码不认识时,
|
|
|
- `HarRegionController` 返回 `code=400`(我写的,两参构造),
|
|
|
+1. **同类错误码两处不一致 —— 已按裁定修掉(`300a27f9`)**:编码不认识时,
|
|
|
+ `HarRegionController` 返回 `code=400`(两参构造),
|
|
|
而 `HarShopService#requireKnownCity` 返回 **`code=500`**(单参 `BusinessException` 的默认码)。
|
|
|
- 后者是对外开放 API 也会走到的路径 ⇒ 外部调用方传错码会看到「服务器错误」。**我没有改它**
|
|
|
- (改的是既有端点契约 + 要动它的用例),只把开放文档按**实测**口径写成 500。要不要统一成 400,
|
|
|
- 请你定。
|
|
|
-2. **`third_shop_id` 重复被判 `code=500`** 是文档里的既有说法,同上一类,本次未动。
|
|
|
+ 后者是对外开放 API 也会走到的路径 ⇒ 外部调用方传错码会看到「服务器错误」。
|
|
|
+ 现在两处都是显式 400,**文案一字未动**。读数:给两条地区拒收用例各加一条
|
|
|
+ `assertEquals(400, e.getCode())` 后实测红(`expected: <400> but was: <500>`,两条都红,
|
|
|
+ 同类其余 16 条绿)→ 改完该件 18/18 绿 → 整包 **1212/0/0/0**(21.4s)。
|
|
|
+ 开放文档 §10.1 那句从「只写 msg 形状、不写码值」改成写死 `code=400`(按上面的实测口径)。
|
|
|
+2. **`b1c8f6fb` 里的 docx:保持现状**(按裁定未动,历史未改写)。
|
|
|
+3. 顺带说明(**不在本次裁定范围,仍未动**):**`third_shop_id` 重复仍是 `code=500`**
|
|
|
+ —— 它与上面同类,但只有一处入口、且开放文档第 82 行已按 500 写给外部调用方,
|
|
|
+ 改它等于动一条既有对外契约。要统一请单独说。
|
|
|
|
|
|
另:`probe` 结论提醒 —— 顾客端拒收文案能上屏,是因为 `GlobalExceptionHandler` 对
|
|
|
`BusinessException` **不带 `@ResponseStatus`**(HTTP 200 + body `code`),顾客页自建实例
|