From 8ab76d33f701056c737b7b314aee68e2459fdd2d Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Wed, 25 Mar 2026 12:41:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E9=99=A9=E9=80=89=E6=8B=A9=E6=80=A7?= =?UTF-8?q?=E6=8A=95=E4=BF=9D+=E7=BA=BF=E4=B8=8B=E6=8A=95=E4=BF=9D?= =?UTF-8?q?=E5=A4=87=E6=B3=A8API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2026-03-25_insurance_selective_purchase.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 changelogs/2026-03/2026-03-25_insurance_selective_purchase.md diff --git a/changelogs/2026-03/2026-03-25_insurance_selective_purchase.md b/changelogs/2026-03/2026-03-25_insurance_selective_purchase.md new file mode 100644 index 0000000..92c235f --- /dev/null +++ b/changelogs/2026-03/2026-03-25_insurance_selective_purchase.md @@ -0,0 +1,113 @@ +# 保险选择性投保 + 出行人线下投保备注 + +> 自动投保失败时(如婴儿不满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 +``` + +**响应**: +```json +[ + { + "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`),测试环境已执行。