hl-api-changelog/changelogs-v2/2026-08/07_5642_出行人所属地后端解析返回nativePlace-修改接口-管理后台.md
API Changelog Bot ce9da1a372
一些检查失败了
changelog-filename-gate / validate (push) Failing after 2s
docs(5642): frontend_status=verified(协调台实测所属地正常显示)
2026-08-08 08:56:50 +08:00

72 行
4.2 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

---
schema: "hl-changelog/v2"
ticket: "5642"
title: "出行人所属地后端解析返回 nativePlace身份证前6位→地区名"
consumer: "admin"
author: "wx"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "7e7085b6"
target_release: ""
verified_at: ""
status_note: "2026-08-07 协调台浏览器实测:补身份证后派单页所属地正常显示「内蒙古呼伦贝尔市」(前端 implemented ref=7e7085b6 + 后端 #5656 链路 + 数据有身份证,端到端通),标 verified。"
updated_at: "2026-08-07"
base: "dev-v3"
generated: "2026-08-07T16:15:00+08:00"
---
# 出行人所属地后端解析返回 nativePlace#5642
## 背景
出行人"所属地"此前由前端从身份证号前 6 位自行解析,显示乱码。改为后端解析返回。口径经协调台确认:按**权威 GB/T 2260**(现行版,省+地级粒度解析——150784=内蒙古呼伦贝尔市(工单示例"赤峰"系笔误,1504xx 才是赤峰);不新建 district 表,沿用 `IdCardParser` 静态码表模式(与 `idProvinceName` 同源)。
## 变更内容
`GET /v3/admin/order/{id}/traveler/list` 等 admin 出行人出参(`TravelerVO`,含 traveler list / 协同单 / 结算退回详情等所有 `toAdminVO` 路径)**新增 `nativePlace` 字段**
| 场景 | nativePlace |
|---|---|
| 大陆身份证,命中地级码 | 省短名+地市名,如 `150784…``内蒙古呼伦贝尔市``320101…``江苏南京市` |
| 直辖市1101/1201/3101/5001/5002 | 市名,如 `110101…``北京市` |
| 省直辖县级4190/4290/4690/6590 | 按 6 位精确映射,如 `469001…``海南五指山市``659001…``新疆石河子市` |
| 非身份证PASSPORT 等) | `null` |
| 未命中(含已撤销历史码如 3712 莱芜) | `null`(不报错) |
补充说明:
- 解析基于解密后的明文 idNoconverter 层既有行为),仅 18 位结构 + 合法生日段才解析;数据源为现行 GB/T 2260 地级行政区码表,不含已撤销历史代码(历史码身份证所属地返回 null
- 既有字段不受影响:`idCardMasked` 仍脱敏、`idProvinceCode/idProvinceName` 逻辑不变。
- internal VO明文 Feign 契约未加该字段,admin 出参仅新增只读字段,无破坏性。
## 关联 / 联系人
- 工单https://git.1814.love:8443/wx/HL/issues/5642
- PRhttps://git.1814.love:8443/wx/HL/pulls/5650
- 后端wx
## 变更接口或验证证据
### 接口契约
- 接口路径/方法/请求体:不变。
- 响应 `data[].nativePlace` 新增字段string | null所属地省+地级行政区名);非身份证或未命中为 `null`
### 验证证据
- 定向测试 274 全过:`IdCardParserTest#extractNativePlace_*`(地级码/省直辖县级/非法与未命中 3 例)、`TravelerConverterTest#toAdminVO_*nativePlace*`2 例),覆盖 TravelerService/TravelerAdminController/OrderDetailService。
- 全量 `mvn -pl hl-order-service-v3 -am verify`7610 测试,7F/95E 全部位于 30 个基线已坏的 Mapper/集成 IT 类Feign loadbalancer Bean 缺失、Flyway IT schema 校验等环境问题,git stash 基线复跑同类同败,无一涉及 traveler/idcard 影响面。
- 部署 TEST 成功hl-order-service-v3 双实例 8086/8186 UP
- 网关验证 10/10 PASS自建 HLTEST 订单 2085637067265449985150784→内蒙古呼伦贝尔市、469001→海南五指山市、110101→北京市、PASSPORT→null、371201→null 不报错;脱敏与省级字段回归通过。
## 前端/调用方动作
- 出行人"所属地"列**直接展示后端返回的 `nativePlace`**,**删除前端自行解析身份证前 6 位的逻辑**(当前乱码来源)。
- `nativePlace``null` 时展示空(如 "-"),不要 fallback 到前端解析。
- 适用接口:所有返回 `TravelerVO` 的 admin 接口(出行人列表等)。
> 2026-08-07 协调台更正:派单详情接口 travelers 缺 nativePlace 系**后端覆盖不全**fleet 派单详情 BoardOrderDetailVO 链路未加),非前端问题。另立后端工单补 fleet-detail-context→BoardOrderDetailVO 链路。前端 traveler/list 接入无误。