From 417e635ddf7e2bfe20391c4f215739172c2590d7 Mon Sep 17 00:00:00 2001 From: yaosutu <770858045@qq.com> Date: Fri, 8 May 2026 17:46:17 +0800 Subject: [PATCH] =?UTF-8?q?fix(mp):=20PR#1894=20=E5=88=B0=E8=BE=BE/?= =?UTF-8?q?=E8=BF=94=E7=A8=8B=E6=89=B9=E6=AC=A1=E6=A0=A1=E9=AA=8C=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=96=87=E6=A1=88=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 620001/620002 message 按 direction 动态拼词, 到达信息不再误显"返程信息"。 --- ...p_arrival_batch_error_message_direction.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 changelogs/2026-05/08_fix_mp_arrival_batch_error_message_direction.md diff --git a/changelogs/2026-05/08_fix_mp_arrival_batch_error_message_direction.md b/changelogs/2026-05/08_fix_mp_arrival_batch_error_message_direction.md new file mode 100644 index 0000000..b9964a7 --- /dev/null +++ b/changelogs/2026-05/08_fix_mp_arrival_batch_error_message_direction.md @@ -0,0 +1,152 @@ +# 🐛 错误文案修复:到达/返程批次校验提示不再混淆 + +**更新时间**: 2026-05-08 17:45 +**PR**: #1894 / Issue #1893 +**服务**: hl-mp-service (端口 8085) + +--- + +## 变了什么(前端视角) + +`POST /mp/order/{orderId}/arrival/batch` 提交到达信息(`direction=ARRIVAL`)时, +若某批次 `travelerIds` 为空,原来错误 toast 错误地显示「**返程**信息」。 + +本次修复让 message 文案与实际 direction 一致。**错误码 code 不变(620001 / 620002)**, +只是 message 字符串更准确——前端只要是直接 toast 展示后端 message 的写法无需任何改动。 + +### 文案对照表 + +| 场景 | 旧文案 | 新文案 | +|------|--------|--------| +| body 空(`null` 或 `[]`) | 请添加至少一批**返程**信息 | 请添加至少一批**批次** | +| `direction=ARRIVAL`,第 N 批 travelerIds 空 | 第 N 批**返程**信息:请选择至少一位乘坐人员 | 第 N 批**到达**:请选择至少一位乘坐人员 | +| `direction=DEPARTURE`,第 N 批 travelerIds 空 | 第 N 批**返程**信息:请选择至少一位乘坐人员 | 第 N 批**返程**:请选择至少一位乘坐人员(行为不变,字符串更简洁) | +| direction 缺失 / 未知值,第 N 批 travelerIds 空 | 第 N 批**返程**信息:请选择至少一位乘坐人员 | 第 N 批**批次**:请选择至少一位乘坐人员(兜底) | + +--- + +## 前端要改的地方 + +**正常情况(直接 toast 后端 message)**:无需改动。 + +**需要检查的情况**:如果前端代码对错误 message 做了**字符串匹配/包含判断**(例如用来走不同分支逻辑),请检查并更新: + +- 若有类似 `if (msg.includes('返程信息'))` 的判断 → 原匹配「请添加至少一批返程信息」或「第 N 批返程信息」的逻辑**可能失效**,需改为不依赖具体文本,或更新匹配目标 +- 若有类似 `msg === '请添加至少一批返程信息'` 的精确匹配 → 必须更新 + +常规弹 toast 代码无需任何修改。 + +--- + +## 涉及的接口 + +| # | 接口 | 方法 | 路径 | 变更类型 | 说明 | +|---|------|------|------|----------|------| +| 1 | 全量替换批次信息 | POST | `/mp/order/{orderId}/arrival/batch` | 🐛 错误文案修复 | 仅 message 文案变更,code / 请求体 / 响应结构零变化 | + +--- + +## 接口详细定义 + +### POST `/mp/order/{orderId}/arrival/batch` — 全量替换批次信息 + +- **使用场景**:小程序「填写到达/返程信息」页,用户点击「确认提交」 + +- **路径参数**: + +| 字段 | 类型 | 必填 | 说明 | +|------|------|------|------| +| orderId | Long | 是 | 订单 ID | + +- **请求参数(Query)**: + +| 字段 | 类型 | 必填 | 说明 | +|------|------|------|------| +| direction | String | 是 | `ARRIVAL`(到达)/ `DEPARTURE`(返程) | + +- **请求体(JSON Array)**: + +| 字段 | 类型 | 必填 | 说明 | +|------|------|------|------| +| transportType | String | 是 | 交通方式:`SELF_DRIVE` / `FLIGHT` / `TRAIN` | +| travelerIds | Array\ | 是 | 出行人 ID 列表,不能为空数组 | +| flightNumber | String | 否 | 航班号(transportType=FLIGHT 时填写) | +| trainNumber | String | 否 | 车次号(transportType=TRAIN 时填写) | +| arrivalTime | String | 否 | 到达/出发时间,格式 `yyyy-MM-dd HH:mm` | + +- **请求示例(到达,两批)**: + +```json +[ + { + "transportType": "FLIGHT", + "travelerIds": [1001, 1002], + "flightNumber": "MU5100", + "arrivalTime": "2026-06-01 14:30" + }, + { + "transportType": "TRAIN", + "travelerIds": [1003], + "trainNumber": "G1234", + "arrivalTime": "2026-06-01 18:00" + } +] +``` + +- **响应(成功)**: + +```json +{ + "code": 200, + "msg": "success", + "data": null +} +``` + +- **响应(失败示例)**: + +```json +{ + "code": 620002, + "msg": "第 1 批到达:请选择至少一位乘坐人员", + "data": null +} +``` + +--- + +## 错误码 / 校验规则 + +| Code | 触发条件 | direction=ARRIVAL message | direction=DEPARTURE message | +|------|----------|---------------------------|-----------------------------| +| `620001` | body 为 null 或空数组 | 请添加至少一批批次 | 请添加至少一批批次 | +| `620002` | 第 N 批 `travelerIds` 为 null 或空数组 | 第 N 批到达:请选择至少一位乘坐人员 | 第 N 批返程:请选择至少一位乘坐人员 | + +> 说明:620001 在 body 空时拿不到 direction,统一用「批次」兜底词;620002 按请求中的 direction 动态拼词。 + +### 边界行为 + +| 输入 | 结果 | +|------|------| +| body=null | 620001 | +| body=[] | 620001 | +| body=[{travelerIds:null}],direction=ARRIVAL | 620002 "第 1 批到达:请选择至少一位乘坐人员" | +| body=[{travelerIds:[]}],direction=DEPARTURE | 620002 "第 1 批返程:请选择至少一位乘坐人员" | +| body=[{travelerIds:[1001]}, {travelerIds:[]}],direction=ARRIVAL | 620002 "第 2 批到达:请选择至少一位乘坐人员" | +| body=[{travelerIds:[1001]}, {travelerIds:[1002]}] | 200,走 Feign 正常处理 | + +--- + +## 兼容性说明 + +- **向后兼容**:是。请求结构(字段名/类型/必填)零变化 +- **错误码 code**:不变(620001 / 620002) +- **是否需要数据迁移**:否 +- **是否需要重启服务**:是(见下方) + +--- + +## 补充说明 + +本次修复是 PR #1830(错误友好化)的文案准确性 follow-up,不引入新的接口或字段。 +前次 changelog 见 `07_fix_mp_arrival_batch_validation_friendly.md`,两个 PR 相互独立可分别部署。