2.3 KiB
2.3 KiB
【行为变更·管理后台】编辑司机·全年保险「保单号」从手填改为下拉关联该司机已出的保游网保单
服务:hl-fleet-service(8087/8187) | 分支:dev-v3 | PR:#3793 | 已部署测试服(下拉数据源端点 200 实测可达,完整投保流待前端联调)(2026-06-13) 背景:wx 反馈编辑司机弹窗「保险配置·全年保险」的保单号是手填输入框,应改为从该司机已出的保游网保单里下拉选择关联。wx 拍板:改下拉关联,保留手填兜底。
⚠️ 关键说明(前端动作)
- 编辑弹窗「保单号」输入框 → 下拉/搜索选择器:
- 下拉数据源 =
GET /admin/fleet/drivers/{driverId}/insurance/policies(司机「我的保单」,已有端点);仅 status=INSURED(已承保)/INSURING(在途出单中)可选。 - 选中某保单后,把该保单的
insuranceOrderId放进保存入参insurance.insuranceOrderId提交。 - 选中后保单号/年保费/保障起止改为只读回显(由后端按保单真值回填),前端不再手敲这四项。
- 下拉数据源 =
- 保存入参
DriverInsuranceVO.insuranceOrderId已放开(原「入参忽略」):insurance.type=annual且传insuranceOrderId→ 后端按司机维度反查该保单,回填保单号/保费/起止 + 落annualSource=baoyou+ 关联insurance_order_id。- 横向越权守卫:传入的保单不属于该司机 / 状态不可关联 → 返 600209「关联的保游网保单不存在、不属于该司机或状态不可关联」。前端正常从该司机下拉选不会触发。
- 手填路径保留兜底(二选一,insuranceOrderId 优先):不传
insuranceOrderId、仅手填policyNo+保费+起止时,仍走原手填路径(annualSource=manual,行为零变化),用于线下买的、保游网没有的保单。
实测(测试服)
下拉数据源端点 /insurance/policies code=200 可达;反查回填 + 600209 越权路径由单测覆盖(DriverServiceTest+4 / DriverAnnualPolicyLookupImplTest 5,fleet 全套 714 绿);完整「选保单→回填→保存」端到端需前端接入后联调。
影响面
错误码新增 600209;零新增 Feign/DTO/order-v3 端点/Flyway/网关路由(复用现有按司机查保单 Feign);后端架构用 driver 子域端口 + insurance 子域实现解环。