文件
hl-api-changelog/changelogs/2026-03/2026-03-20_contract_scheme.md
T

5.8 KiB
原始文件 Blame 文件历史

合同方案 + 产品合同配置改版 + 支付前出行人校验

功能说明

1. 合同方案管理(新增)

合同配置改为"合同方案"模式(与保险方案一致),产品只需选择一个合同方案ID。

2. 产品合同配置改版(破坏性变更)

产品上原来的 9 个合同字段(contractPlatform, contractTemplateCode, contractMode, signatoryMode, agencyCode, disputeResolution, supplementaryClause, transactorName, transactorPhone)已全部删除,替换为单个 contractSchemeId 字段。

3. 支付前出行人校验规则变更

  • 预约产品(isBooking=true):定金支付不要求出行人,全款/尾款要求出行人齐全
  • 非预约产品(isBooking=false):所有支付类型都要求出行人齐全

4. HTTP 200 统一化

所有接口只要请求能到达服务器,HTTP状态码一律返回200,业务错误在响应体Result中返回。


合同方案接口清单

查询启用的合同方案列表(下拉选择用)

  • GET /admin/contract/scheme/list
  • 响应:Result<List<ContractSchemeVO>>

查询全部合同方案列表(管理页面用)

  • GET /admin/contract/scheme/list-all
  • 响应:Result<List<ContractSchemeVO>>

获取合同方案详情

  • GET /admin/contract/scheme/{schemeId}
  • 响应:Result<ContractSchemeVO>

创建合同方案

  • POST /admin/contract/scheme
  • 请求体:ContractSchemeRequest
  • 响应:Result<ContractSchemeVO>

更新合同方案

  • PUT /admin/contract/scheme/{schemeId}
  • 请求体:ContractSchemeRequest
  • 响应:Result<ContractSchemeVO>

切换方案启用/停用状态

  • PUT /admin/contract/scheme/{schemeId}/toggle-status
  • 响应:Result<ContractSchemeVO>

删除合同方案

  • DELETE /admin/contract/scheme/{schemeId}
  • 响应:Result<Void>

ContractSchemeRequest 参数

字段 类型 必填 说明
name String 是 方案名称,如"标准国内电子签约方案"
description String 否 方案描述
contractPlatform String 是 合同平台:12301(全国旅游监管平台)/ FADADA(法大大)
contractTemplateCode String 是 合同模板编码,如 TOURAGE_STANDARD
contractMode String 是 签约模式:STANDARD(电子签约)/ SYNC(线下报备)
signatoryMode Integer 是 签署模式:1=短信签署 2=现场签署 3=线下签署
agencyCode String 是 旅行社编码
disputeResolution Integer 是 争议解决方式:1=仲裁 2=诉讼
supplementaryClause String 否 补充条款
transactorName String 是 经办人姓名
transactorPhone String 是 经办人电话
sortOrder Integer 否 排序(越小越靠前)

ContractSchemeVO 响应

字段 类型 说明
schemeId String 方案ID
name String 方案名称
description String 方案描述
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 经办人电话
sortOrder Integer 排序
status String 状态:ACTIVE/INACTIVE
createTime DateTime 创建时间

产品接口变更(破坏性变更)

产品创建/更新/保存接口

删除的字段(以下字段不再使用):

  • contractPlatform
  • contractTemplateCode
  • contractMode
  • signatoryMode
  • agencyCode
  • disputeResolution
  • supplementaryClause
  • transactorName
  • transactorPhone

新增的字段:

字段 类型 必填 说明
contractSchemeId Long 是(创建时) 合同方案ID,从 /admin/contract/scheme/list 获取

产品详情接口

响应变更:

  • 删除 9 个合同字段
  • 新增 contractSchemeId(String类型)

页面布局建议

合同方案管理页面

路径建议:系统管理 → 合同方案管理(类似保险方案管理)

  • 列表页:方案名称、合同平台、签约模式、旅行社、状态、操作(编辑/启停/删除)
  • 新建/编辑弹窗:ContractSchemeRequest 的所有字段

产品编辑页面 — 合同配置区域改版

原来(9个表单项):

合同平台 *    [12301] [法大大]
合同模板 *    [下拉选择]
签约模式 *    [电子签约] [线下报备]
签署模式 *    [短信签署] [现场签署] [线下签署]
旅行社 *      [下拉选择]
争议解决方式 * [仲裁] [诉讼]
补充条款       [文本框]
经办人姓名 *  [文本框]
经办人电话 *  [文本框]

现在(1个下拉选择):

合同方案 *    [请选择合同方案 ▼]

下拉数据来源:GET /admin/contract/scheme/list(返回启用的方案列表)


调用示例

创建合同方案

POST /admin/contract/scheme
{
  "name": "标准国内电子签约方案",
  "contractPlatform": "12301",
  "contractTemplateCode": "TOURAGE_STANDARD",
  "contractMode": "STANDARD",
  "signatoryMode": 1,
  "agencyCode": "L-NMG-100001",
  "disputeResolution": 1,
  "transactorName": "张三",
  "transactorPhone": "13800138000",
  "sortOrder": 0
}

产品创建(使用合同方案ID)

POST /admin/product
{
  "name": "冰雪3.0南线",
  "productType": "CORE",
  "insuranceSchemeId": 123456789,
  "contractSchemeId": 987654321,
  ...
}