hl-api-changelog/changelogs-v2/2026-06/18_4018_出行人新增拦截未来出生日期-修改接口-管理后台.md

2.0 KiB

出行人新增(单加)拦截未来出生日期 — 修改接口 — 管理后台

变更类型:⚠️ 校验增强(新增 @PastOrPresent 守卫,未来出生日期被拒) 端类型:管理后台(订单 → 出行人 → 单个新增) 日期2026-06-18 服务hl-order-service-v3traveler 模块) PRwx/HL#4018 (每日定时代码审查发现,无关联工单)


⚠️ 关键说明

出行人类型(成人/儿童/小童/幼童)今日改为后端按出生日期自动派生#3981,不再由前端传 travelerType。此前单个新增路径 birthday 仅校验 @NotNull,未拦截「未来日期」——传一个未来出生日期会被静默派生成「幼童(BABY)」,与批量编辑路径(已显式抛 581114 出生日期不能晚于今天)口径不一。

本次给单加请求 birthday@PastOrPresent 守卫对齐:允许「今天」、只拒「未来」

前端影响:POST /v3/admin/order/{id}/traveler 时若 birthday 晚于今天,现返回 400 参数校验失败message出生日期不能晚于今天),不再静默落库为幼童。请前端日期选择器侧限制出生日期 ≤ 今天(与既有批量编辑校验一致)。


1. 受影响接口

POST /v3/admin/order/{id}/traveler(单个出行人新增,路径与出入参结构均不变)

请求体 birthday 字段校验规则变化:

字段 旧规则 新规则
birthday @NotNull(仅非空) @NotNull + @PastOrPresent(非空且 ≤ 今天)

反例(未来日期)请求

POST /v3/admin/order/123456/traveler
{ "name": "测试", "birthday": "2099-01-01", "idType": "ID_CARD", "idNo": "..." }

响应400,Bean 校验失败):

{ "code": 400, "message": "出生日期不能晚于今天", "data": null }

合法日期(今天及以前)行为不变。批量编辑路径 PUT .../travelers/batch 早已有等价拦截,本次仅补齐单加路径。