4.3 KiB
4.3 KiB
订单出行人 MP 端 CRUD 接口新增 — 2026-04-20
服务 hl-order-service-v2(端口 8094)· 类型 feat · 关联 Issue #1020 / PR #1022 前端调用路径: 网关(8080) → hl-mp-service(8085) → hl-order-service-v2(8094) 前端实际请求前缀:
/mp/order/{orderId}/traveler(4 个接口)
一、能力概述
给小程序端补齐订单出行人 CRUD 能力,对应原型 L4xYN 乘坐人员勾选列表、Bf9jC 添加人员弹窗。
| 原型节点 | 功能 | 主要接口 |
|---|---|---|
| L4xYN pplList | 乘坐人员勾选列表 | GET /mp/order/{orderId}/traveler |
| Bf9jC | 添加人员弹窗 | POST /mp/order/{orderId}/traveler |
| Bf9jC(编辑) | 修改出行人 | PUT /mp/order/{orderId}/traveler/{travelerId} |
| Bf9jC(删除) | 删除出行人 | DELETE /mp/order/{orderId}/traveler/{travelerId} |
注意区分两套"出行人"模型:
| 维度 | 路径 | 说明 |
|---|---|---|
| 用户常用出行人 | /mp/user/traveler/* |
user-service 管,已有 |
| 订单出行人(本次新增) | /mp/order/{orderId}/traveler/* |
order-v2 的 order_traveler 表 |
二、接口清单
鉴权:user token(登录态)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /mp/order/{orderId}/traveler |
查某订单的出行人列表 |
| POST | /mp/order/{orderId}/traveler |
新增出行人到某订单 |
| PUT | /mp/order/{orderId}/traveler/{travelerId} |
修改出行人(字段为 null 保持原值不变) |
| DELETE | /mp/order/{orderId}/traveler/{travelerId} |
删除出行人 |
三、请求体(MpOrderTravelerSaveReqVO)
{
"name": "张三", // 必填,≤50 字
"idCardType": "ID_CARD", // 字典 id_card_type
"idCardNo": "110101199001011234", // 必填
"phone": "13800000000",
"gender": "1", // 1=男 2=女
"birthday": "1990-01-01",
"travelerType": "ADULT", // 默认 ADULT,字典 traveler_type
"nationality": "中国",
"emergencyContact": "李四",
"emergencyPhone": "13900000000",
"email": "zhangsan@example.com"
}
字典取值:
idCardType:ID_CARD身份证 /PASSPORT护照 /HK_MACAO_PASS港澳通行证 /TAIWAN_PASS台湾通行证 /OTHER其他travelerType:ADULT成人 /CHILD儿童 /YOUNG_CHILD幼儿 /BABY婴儿
后端自动处理:
- 身份证(18 位)自动解析
birthday+gender(前端可不传) - 同订单证件号重复检查(重复抛业务错误)
四、响应体
列表 GET 响应
{
"code": 200,
"data": [
{
"travelerId": 10001, // Long,注:未强制 String(现有约定)
"name": "张三",
"travelerType": "ADULT",
"travelerTypeLabel":"成人",
"idCardType": "ID_CARD",
"idCardTypeLabel": "身份证",
"idCardNo": "110101199001011234",
"gender": "1",
"birthday": "1990-01-01",
"phone": "13800000000",
"nationality": "中国",
"emergencyContact": "李四",
"emergencyPhone": "13900000000",
"email": "zhangsan@example.com"
}
]
}
新增/修改返回
返回单个对象(同列表元素结构)。
删除返回
{ "code": 200, "data": null }
约定
- 所有枚举字段都配
xxxLabel中文标签 - 空数据返回
[],不是null - 时间格式统一
yyyy-MM-dd(出生日期)/yyyy-MM-dd HH:mm:ss(含时间字段)
五、前端接入建议
L4xYN 乘坐人员勾选列表:
- 打开页面 →
GET /mp/order/{orderId}/traveler拉取订单已有出行人 - 用户勾选 → 把 travelerId 传给到达信息接口的
travelerIds字段
Bf9jC 添加人员弹窗:
- 可选:先调
GET /mp/user/traveler(已有)让用户从常用库选一个 → 填到表单里 - 用户补全/修改字段(含 OCR 扫描身份证填入,OCR 用小程序原生插件前端做)
- 提交
POST /mp/order/{orderId}/traveler
六、关联
- Issue: wx/HL#1020
- PR: wx/HL#1022(已合并到 dev)