# 【批量修复·车务】全量 API 审计修复 6 项隐藏问题（含 2 项前端可感知）

> 端：hl-ui 管理后台（车务）+ H5 司机入职 | 服务：hl-fleet-service | PR #3864 | 已合并 dev-v3 + 部署测试服双实例 + 只读冒烟无回归 | 2026-06-16

## ⚠️ 关键说明

对车务现有全部接口做了一轮全量审计（静态深审 + 活体只读验证 + 对抗复核），确认并修复 6 个隐藏问题。其中 **2 项前端可感知**，其余为后端健壮性加固（接口契约/路径/出入参均不变，前端无需改）。

## 1. 前端可感知（请知悉）

### 1.1 存量「驾照已过期」司机现在能正常编辑了（管理后台）

- **现象（修复前）**：某司机驾照有效期已过期（如 2022 年），但仍在 2026 赛季在册。车管点「编辑」想改个姓名/标签/附件，**保存直接报 600201「驾照已过期」整单失败**——因为编辑表单回显了真实的过期日期并原样回传，后端无条件拦了。
- **修复后**：只有当**本次真的把有效期改成了一个过期日**才拦；**没动有效期（回显原值）则放行**。前端无需改，原来保存失败的场景现在能存了。

### 1.2 H5 驳回重提改「是否自带车」不再残留脏数据（H5）

- **现象（修复前）**：司机首次提交选了「有自带车」并填了车牌/车型/行驶证等，被驳回后第二次重提改成「无自带车」（不再传车辆块），后端旧车辆信息**残留没清**，审核时看到「无自带车却车辆信息齐全」的矛盾数据。紧急联系人同理。
- **修复后**：重提为「无自带车」/未传紧急联系人时，后端按全量提交语义**显式清空**这些字段。前端无需改。

## 2. 后端健壮性加固（接口无变化，前端无需关注）

3. **续签审核通过补搬新驾照照片**：司机续签上传了新驾照照片、审核通过后，新照片现在会按 driver_license 类目覆盖进司机附件表（修复前只更新有效期、照片仍是旧的）。编辑抽屉附件区会显示新驾照图。
4. **车牌并发唯一性加锁**：车辆新增/编辑补车牌维度分布式锁，堵并发插入重复车牌的窗口。
5. **附件保留项排序修正**：附件编辑时保留项的排序计算改用库内类目，消除极端情况下的排序错位。
6. **H5 提交端点补限流**：submit/new、submit/renew 免登录写端点补 @RateLimiter 防刷。

## 验证

- fleet 269 单测全绿（新增 5 个覆盖过期驾照放行/拦截、续签换照覆盖等）。
- 合并部署测试服双实例（8087/8187）均 Started，车务读接口冒烟全 200 无回归。

> 注：审计另发现「保险接口降级返通用 500 而非 605601」一项——根因是 order-v3 当前因循环依赖启动失败（后端在修），保险接口暂时超时/500 属上游不可用，order-v3 恢复后即正常，非车务代码缺陷。
