小程序新增出行人接口移除 travelerType 入参,后端按字典实时计算且不落库 (HL #1197)

小程序「常用出行人」页新增/编辑接口请求体不再传 travelerType,
后端按 birthday + 字典 traveler_type_age_rule 实时算并返回,DB 列不再写入。
响应字段不变。下单路径 MpOrderTravelerSaveReqVO 未涉及。
这个提交包含在:
API Changelog Bot 2026-04-22 18:43:53 +08:00
父节点 7edd339569
当前提交 770d439780

查看文件

@ -0,0 +1,86 @@
---
date: 2026-04-22
type: change
scope: mp-traveler
pr: "#1197"
issue: "#1196"
breaking: false
consumers: [mp-miniprogram]
---
# 小程序新增/编辑出行人接口移除 `travelerType` 入参,后端按字典实时计算
## 摘要
`POST /mp/user/traveler``PUT /mp/user/traveler/{id}` 的请求体**不再接收 `travelerType` 字段**。出行人类型ADULT/CHILD/YOUNG_CHILD/BABY由后端依据 `birthday` + 字典 `traveler_type_age_rule` **实时计算**,且**不落库**——字典规则后续调整时历史数据口径会自动跟随,无须数据迁移。
## 前端需要做什么
### 1. 新增 / 编辑出行人
- **删除请求体里的 `travelerType` 字段**。即使偷传也会被后端忽略(字段已从 DTO 删除,JSON 反序列化静默丢弃)。
- `birthday` 仍可选;不传则后端兜底 `ADULT`
**之前**
```json
POST /mp/user/traveler
{
"name": "张三",
"travelerType": "CHILD", // ← 删掉
"birthday": "2020-05-01",
"idCardType": "PASSPORT",
"idCardNo": "E12345678"
}
```
**之后**
```json
POST /mp/user/traveler
{
"name": "张三",
"birthday": "2020-05-01",
"idCardType": "PASSPORT",
"idCardNo": "E12345678"
}
```
### 2. 响应字段不变
`travelerType` 仍出现在所有响应 VOPOST/PUT/GET/GET list里,值由后端按 birthday + 字典实时算:
```json
{
"code": 200,
"data": {
"travelerId": 2046901540208214018,
"name": "张三",
"birthday": "2020-05-01",
"travelerType": "CHILD", // 实时计算
...
}
}
```
## 年龄分段规则(来自字典 `traveler_type_age_rule`
| 类型 | 年龄范围(含下限不含上限) |
|---|---|
| BABY | 0 ≤ age < 2 |
| YOUNG_CHILD | 2 ≤ age < 5 |
| CHILD | 5 ≤ age < 12 |
| ADULT | 12 ≤ age |
| 无 birthday | → ADULT兜底 |
> 规则由管理端「字典管理 → traveler_type_age_rule」配置,后端缓存到 Redis `cache:dict:data:traveler_type_age_rule`,改动后自动生效。
## 兼容性
- **非 breaking**:旧前端仍带 `travelerType` 不会报错,字段被静默忽略。
- 下单路径 `MpOrderTravelerSaveReqVO` **暂不涉及**(仍接受 `travelerType`),只改「常用出行人」页的 `MpTravelerRequest`
## 相关
- 后端 PR: https://git.1814.love:8443/wx/HL/pulls/1197
- 工单: https://git.1814.love:8443/wx/HL/issues/1196