2.5 KiB
2.5 KiB
【漏洞修复+前端口径·管理后台】个人车失去常驻司机立即停用 + 司机「常驻车」展示口径
端:hl-ui 管理后台(车务)| 服务:hl-fleet-service | PR #3871 | 已合并 dev-v3 + 部署测试服 | 2026-06-16
⚠️ 关键说明
排查「司机/车 自有常驻 删除逻辑」时发现并修复一个生命周期漏洞,外加一条前端展示口径需对齐。
1. 个人车失去常驻司机 → 立即停用(后端修复,无接口变化)
之前的漏洞:删司机(或司机侧解绑/改绑常驻)后,车辆只清了常驻绑定、没更新生命周期状态。于是一台原本「在役 ACTIVE」的个人车失去常驻司机后停在 ACTIVE,而个人车又禁止手动启停,这台车的状态就卡死了。
修复后:个人车一旦失去常驻司机(删司机 / 解绑 / 改绑走掉 / 编辑清空常驻),service_status 自动置 DISABLED(停用)。
- 公司车不受影响(生命周期独立,可手动启停)。
- 个人车有常驻时仍随司机赛季联动(在册→ACTIVE,归档/拉黑→DISABLED)。
2. 司机「常驻车」展示请用 residentVehiclePlate(前端注意)
司机列表/详情接口返回两个车牌字段,含义不同,请用对:
| 字段 | 含义 | 建议 |
|---|---|---|
residentVehiclePlate |
权威常驻车(后端反查 fleet_vehicle.primary_driver_id 得到) | 「常驻车」请展示这个 |
primaryVehiclePlate |
司机自报参考车牌(H5 填的,非权威绑定) | 仅作「自报参考」展示,或不展示 |
residentVehiclePlate是权威的:车一删/解绑,它自动变空,不会悬挂显示已删的车。primaryVehiclePlate是司机自己填的文本参考,不随车删除变化(设计如此)。所以如果前端把它当「常驻车」显示,删了车后会看到一台不存在的车牌——这种地方请改用residentVehiclePlate。
删除逻辑现状(顺带说明)
- 删司机:软删司机 + 解绑其常驻车(车留下,个人车则按上面规则停用)+ 作废其年保台账/未消费续签 token。不删车。
- 删车:软删车 + 释放常驻(清 primary_driver_id)。不删司机;司机的权威常驻(residentVehiclePlate)随之变空。
验证
- VehicleServiceTest +2(个人车解绑→DISABLED / 公司车不动),fleet 69 单测全绿;部署测试服双实例(14:48 新 jar)。