--- schema: "hl-changelog/v2" ticket: "5549" title: "司机保险切换到可售产品 + 不可售产品友好报错" consumer: "admin" change_type: "修改接口" author: "wx(GIT)" backend_status: "deployed" gateway_status: "verified" frontend_status: "implemented" frontend_owner: "pi-main-session" frontend_ref: "hl-admin@085f4d7b58c3d61414df8d0461ab51e9eb61ea47" target_release: "v2.1" verified_at: "2026-08-05" status_note: "管理后台现有投保弹窗已完全消费 driver-plan-options 动态计划,540034 由全局拦截器展示后端友好文案且页面不重复 toast;补充回归测试锁定计划 ID 字符串透传、动态选项和错误分支。后端完成:PR #5553/#5556/#5557 合并 dev-v3 并部署 TEST;网关实测畅心游真实投保成功(保单 11209006600507256500)、不可售产品 540034 友好报错、plan-options 过滤真实生效。" updated_at: "2026-08-05" base: "dev-v3" --- # 司机保险切换到可售产品 + 不可售产品友好报错(#5549) > **服务**: hl-order-service-v3 > **PR**: #5553 / #5556 / #5557 > **Issue**: #5549(P1) > **联系人**: @wx > **日期**: 2026-08-05 > **影响范围**: 管理后台-司机档案-保险投保;fleet 司机保险页(Feign 消费 driver-purchase / driver-plan-options) --- ## 背景 畅心游产品费率码旧值(BY919212138521)失效导致投保必 404(#5545 排查);保游 GetProductList 下架产品本地不更新、司机端仍可选。需求:司机保险切到可售产品(未来星等)、不可售产品报错友好。 ## 变更接口 | 方法 | 路径 | 来源 | |---|---|---| | POST | /v3/internal/insurance/driver-purchase | fleet 司机保险投保(Feign) | | GET | /v3/internal/insurance/driver-plan-options | fleet 司机保险计划下拉(Feign) | ## 变更说明 1. **同步链路**(保险产品同步 /v3/admin/insurance/sync-products):以保游 GetProductList 为权威可售列表,列表外的存量启用产品标记 INACTIVE(下架自动失效) 2. **投保链路** driver-purchase: - 本地拦截:产品 INACTIVE(下架标记)→ 新错误码 **540034** - 保游 404(费率码失效)→ 翻译 **540034** - 保游业务拒绝(501 URL 地址受限 / 地址受限 / 下架 / 失效)→ 翻译 **540034**(替代 540030 裸透传) 3. **plan-options**:过滤 INACTIVE 产品与孤儿计划的计划;司机端不再看到下架产品 ## 接口行为变化 | 接口 | 修复前 | 修复后 | |---|---|---| | `POST driver-purchase`(不可售产品) | 540030「为投保人投保失败: [501]url地址受限」/ 裸 404 | **540034「该产品已下架/不可售,请更换可售产品」** | | `POST driver-purchase`(可售产品) | 不变 | 不变(畅心游真实投保成功,保单号非 MOCK) | | `GET driver-plan-options` | 仅畅心游 20万计划 | 畅心游 20万 + 未来星 20/30/50万(未来星产品计划 usage_category 已标注 BOTH);INACTIVE 产品被过滤 | ## 新增错误码 | 错误码 | 消息 | |---|---| | 540034 | 该产品已下架/不可售,请更换可售产品 | ## 验证证据 - 网关实测(2026-08-05,内部接口 SSH 直连 8086): - 畅心游投保 → 200,extOrderNo=BX2026080517395620000670,回调后 INSURED + 真实保单号 **11209006600507256500**(非 MOCK) - 未来星投保 → **540034**「该产品已下架/不可售,请更换可售产品」(保游 501 URL 受限翻译) - plan-options → 4 计划(畅心游+未来星 20/30/50万);临时标 INACTIVE 后过滤只剩畅心游,恢复后 4 计划 - 定向测试:InsuranceCreateServiceTest/InsuranceManageServiceTest/InsuranceQueryServiceTest 111/111(新增 5 用例:540034 本地拦截/404 翻译/501 翻译/plan-options 过滤/同步标 INACTIVE)