hl-api-changelog/changelogs/2026-03/2026-03-20_order_auto_insurance_contract.md
API Changelog Bot 1b06dd3680 feat: 订单自动化(产品绑定保险方案+合同配置,支付后自动投保签约)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 13:00:23 +08:00

9.4 KiB

订单自动化:产品绑定保险方案+合同配置,支付后自动投保+签约

日期2026-03-20 | 涉及服务hl-product-service、hl-order-service、hl-insurance-service、hl-contract-service

功能说明

核心变更

  1. 产品新增保险+合同配置字段(必填):创建/编辑产品时必须绑定保险方案和合同配置
  2. 订单支付后自动投保+签约:出行人补全后系统自动完成保险和合同,无需管理员手动操作
  3. 去掉"待确认订单"步骤原6步待办缩减为5步,CONFIRM_ORDER 不再存在
  4. 保险手动配置支持按天配置或直接选方案管理员可手动按天投保purchase 接口),也可直接选方案自动投保

新的订单内部流程

支付成功 → 创建5个待办 → 出行人补全 → 系统自动确认订单
  → 自动投保(按产品绑定的保险方案)  ← INSURANCE待办自动完成
  → 自动签约(按产品绑定的合同配置)  ← CONTRACT待办等签署回调完成
  → 手动配房 (ARRANGE_ROOM)
  → 手动配车 (ARRANGE_VEHICLE)
  → 手动确认清单 (CONFIRM_CHECKLIST)

容错:自动投保/签约失败时,待办保持 PENDING,管理员可手动处理。管理员也可手动退保/作废合同后重新操作。


接口变更清单

一、产品服务

1. 创建产品(新增必填字段)

POST /admin/product

新增请求字段所有字段必填,supplementaryClause 除外):

字段 类型 必填 说明
insuranceSchemeId Long 保险方案ID,从保险方案列表获取
contractPlatform String 合同平台:12301(全国旅游监管平台)/ FADADA(法大大)
contractTemplateCode String 合同模板编码,从合同模板列表获取
contractMode String 签约模式:STANDARD(电子签约)/ SYNC(线下报备)
signatoryMode Integer 签署模式:1=短信 / 2=现场 / 3=线下
agencyCode String 旅行社编码,从保险投保主体列表获取
disputeResolution Integer 争议解决方式:1=仲裁 / 2=诉讼
supplementaryClause String 合同补充条款
transactorName String 经办人姓名
transactorPhone String 经办人电话

2. 编辑产品(新增可选字段)

PUT /admin/product/{productId}

同上 10 个字段,全部可选(不传则不更新)。

3. 统一保存产品(新增字段)

POST /admin/product/save

同上 10 个字段,创建时必填,更新时可选。


二、保险服务

已有接口(手动配置保险)

方式一:按天手动投保purchase 接口,按具体的计划+日期段投保)

POST /admin/insurance/purchase
字段 类型 必填 说明
orderId Long 关联的旅行订单ID
planId Long 保险计划ID从产品计划列表获取
startDate String 保障开始日期 yyyy-MM-dd
endDate String 保障结束日期 yyyy-MM-dd
insuredPersons Array 被保人列表至少1人
insuredPersons[].name String 姓名
insuredPersons[].idCardType String 证件类型:ID_CARD/PASSPORT/OTHER,默认ID_CARD
insuredPersons[].idCardNo String 证件号
insuredPersons[].birthday String 出生日期 yyyy-MM-dd
insuredPersons[].gender String 性别:MALE/FEMALE
entityCode String 投保公司编码,默认使用系统默认主体

方式二:选择保险方案投保preview → 确认 → 自动按段投保)

步骤1预览方案

POST /admin/insurance/scheme/preview-apply
字段 类型 必填 说明
schemeId Long 保险方案ID
orderId Long 订单ID自动获取出行日期和人数

返回各段的日期范围、计划信息、单人保费、总保费、日期间隙警告。

步骤2确认后逐段调用 purchase 接口(参考方式一)

保险方案列表(产品编辑页下拉使用):

GET /admin/insurance/scheme/list

返回所有启用的保险方案列表schemeId + name + description + isOverseas + 段列表)。

保险产品/计划列表(按天手动投保时使用):

GET /admin/insurance/products?isOverseas=false
GET /admin/insurance/products/{productId}/plans

保费试算

POST /admin/insurance/trial-price
字段 类型 必填 说明
planId Long 保险计划ID
startDate String yyyy-MM-dd
endDate String yyyy-MM-dd
insuredCount Integer 被保人数

三、合同服务

合同模板列表(产品编辑页下拉使用):

GET /admin/contract/templates

返回可用的合同模板列表templateCode + templateName + platform + mode

投保主体/旅行社列表(产品编辑页下拉使用):

GET /admin/insurance/entities

返回投保公司主体列表code + companyName。agencyCode 使用此列表中的 code 值。


四、订单服务

待办定义变更(破坏性变更

原 todoType 原序号 新 todoType 新序号 说明
CONFIRM_ORDER 1 已删除 - 不再需要手动确认
INSURANCE 2 INSURANCE 1 自动完成(系统投保成功后)
CONTRACT 3 CONTRACT 2 自动完成(合同签署回调后)
ARRANGE_ROOM 4 ARRANGE_ROOM 3 手动
ARRANGE_VEHICLE 5 ARRANGE_VEHICLE 4 手动
CONFIRM_CHECKLIST 6 CONFIRM_CHECKLIST 5 手动

processStatus 变更

原流程 新流程
PENDING_INFO → PROCESSING → PENDING_INSURANCE → ... PENDING_INFO → PENDING_INSURANCE → ...

PROCESSING 状态已删除,PENDING_INFO 直接跳到 PENDING_INSURANCE

前端需要注意

  1. 待办列表不再有 CONFIRM_ORDER 类型:前端不要 hardcode "CONFIRM_ORDER" 的判断
  2. 工作台待办序号变化INSURANCE 现在是 seq=1原来是2,以此类推
  3. processStatus 没有 PROCESSING 了:相关状态标签/过滤条件需要去掉
  4. INSURANCE/CONTRACT 待办可能被系统自动完成:前端展示时注意区分系统完成和手动完成

页面布局建议

产品编辑页 — 新增"保险与合同配置"区域

建议放在产品基本信息之后,行程安排之前:

┌─────────────────────────────────────────┐
│ 保险与合同配置                            │
├─────────────────────────────────────────┤
│ 保险方案:[下拉选择] ← GET /admin/insurance/scheme/list │
│                                         │
│ 合同平台:[12301 ▼] / [法大大 ▼]          │
│ 合同模板:[下拉选择] ← GET /admin/contract/templates │
│ 签约模式:[电子签约 ▼] / [线下报备 ▼]     │
│ 签署模式:[短信 ▼] / [现场 ▼] / [线下 ▼]  │
│ 旅行社:  [下拉选择] ← GET /admin/insurance/entities │
│ 争议解决:[仲裁 ▼] / [诉讼 ▼]            │
│ 经办人姓名:[________]                    │
│ 经办人电话:[________]                    │
│ 补充条款:[________________] (可选)       │
└─────────────────────────────────────────┘

订单详情页 — 保险手动操作

管理员手动配保险时有两种方式:

┌─────────────────────────────────────────┐
│ 保险配置                                 │
├─────────────────────────────────────────┤
│ ● 选择保险方案(推荐)                    │
│   [方案下拉] → 预览 → 确认投保            │
│                                         │
│ ○ 按天手动配置                            │
│   保险产品:[下拉]                        │
│   保险计划:[下拉]                        │
│   开始日期:[____] 结束日期:[____]        │
│   [试算保费] [确认投保]                   │
└─────────────────────────────────────────┘

枚举/字典值

字段 可选值 说明
contractPlatform 12301 / FADADA 合同平台
contractMode STANDARD / SYNC 签约模式
signatoryMode 1 / 2 / 3 1=短信签署, 2=现场签署, 3=线下签署
disputeResolution 1 / 2 1=仲裁, 2=诉讼
todoType INSURANCE / CONTRACT / ARRANGE_ROOM / ARRANGE_VEHICLE / CONFIRM_CHECKLIST 待办类型CONFIRM_ORDER 已删除)
processStatus PENDING_INFO / PENDING_INSURANCE / PENDING_CONTRACT / PENDING_ROOM / PENDING_VEHICLE / PENDING_FINANCE / READY / INTERNAL_CONFIRMED 内部流程状态PROCESSING 已删除)