fix(mp): PR#1894 到达/返程批次校验错误文案修正
620001/620002 message 按 direction 动态拼词, 到达信息不再误显"返程信息"。
这个提交包含在:
父节点
fdc1e70931
当前提交
417e635ddf
@ -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\<Long\> | 是 | 出行人 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 相互独立可分别部署。
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户