文件
hl-api-changelog/changelogs/2026-03/2026-03-25_insurance_selective_purchase.md
T

2.9 KiB
原始文件 Blame 文件历史

保险选择性投保 + 出行人线下投保备注

自动投保失败时(如婴儿不满1岁),支持选择部分出行人在线投保,并为不可投保的出行人添加线下投保备注。


一、新增接口

1.1 选择部分出行人投保

POST /admin/insurance/order/{orderId}/selective-purchase

请求体:

字段 类型 必填 说明
schemeId Long 是 保险方案ID
travelerIds Long[] 是 要投保的出行人ID列表

响应:同 AutoPurchaseResultVO(success, purchasedCount, failedCount, failureReason)

使用场景:自动投保失败后,排除不满1岁的婴儿,只选能投保的出行人。

1.2 添加出行人保险备注

POST /admin/insurance/order/{orderId}/traveler-note

请求体:

字段 类型 必填 说明
travelerId Long 是 出行人ID
travelerName String 否 出行人姓名
noteType String 是 OFFLINE=线下投保, SKIP=跳过, OTHER=其他
remark String 否 备注说明,如"不满1岁,线下购买太平洋保险"

响应:InsuranceTravelerNote 对象

注意:同一出行人重复调用会更新已有备注(upsert)。

1.3 删除出行人保险备注

DELETE /admin/insurance/order/{orderId}/traveler-note/{noteId}

1.4 查询出行人保险覆盖状态

GET /admin/insurance/order/{orderId}/traveler-coverage

响应:

[
  {
    "travelerId": "123",
    "name": "张三",
    "birthday": "1990-01-01",
    "age": 36,
    "travelerType": "ADULT",
    "coverageStatus": "ONLINE_INSURED",
    "policies": [{ "policyNo": "xxx", "startDate": "2026-04-29", "endDate": "2026-05-04" }]
  },
  {
    "travelerId": "456",
    "name": "小宝宝",
    "birthday": "2025-10-01",
    "age": 0,
    "travelerType": "CHILD",
    "coverageStatus": "OFFLINE_NOTED",
    "noteId": "789",
    "noteType": "OFFLINE",
    "noteRemark": "不满1岁,线下购买太平洋保险"
  },
  {
    "travelerId": "789",
    "name": "李四",
    "coverageStatus": "NOT_COVERED"
  }
]

coverageStatus 枚举:

值 说明
ONLINE_INSURED 在线已投保(含保单详情)
OFFLINE_NOTED 线下已备注(含备注内容)
NOT_COVERED 未投保

二、使用流程

1. 自动投保失败(如有不满1岁婴儿)
2. 调用 GET /traveler-coverage 查看每个出行人状态
3. 对能投保的出行人:POST /selective-purchase(传 travelerIds)
4. 对不能投保的出行人:POST /traveler-note(noteType=OFFLINE + remark)
5. 再次调用 /traveler-coverage 确认全部覆盖

三、涉及服务

需重启:hl-insurance-service

四、数据库变更

新增表 insurance_traveler_note(DDL: sql/insurance_traveler_note.sql),测试环境已执行。