feat: 合同按方案创建简化接口 create-by-scheme
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
这个提交包含在:
父节点
c09286edca
当前提交
fc80a489de
@ -0,0 +1,62 @@
|
|||||||
|
# 合同创建简化接口 + agency 级别凭证
|
||||||
|
|
||||||
|
## 功能说明
|
||||||
|
|
||||||
|
### 1. 新增简化合同创建接口(重要)
|
||||||
|
前端只需传 `orderId` 和 `schemeId`,后端自动从订单获取出行人、日期、联系人、费用等信息,结合合同方案配置完成合同创建。
|
||||||
|
|
||||||
|
**替代原来的 `/admin/contract/create`**(需要传几十个字段),新接口大幅简化前端工作量。
|
||||||
|
|
||||||
|
### 2. STANDARD 模式支持旅行社独立凭证
|
||||||
|
每家旅行社现在使用自己的 appId/signKey 调用 12301 API,不再共用全局测试凭证。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 接口定义
|
||||||
|
|
||||||
|
### 按方案创建合同(简化版)
|
||||||
|
|
||||||
|
- **POST** `/admin/contract/create-by-scheme`
|
||||||
|
- **请求体**:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"orderId": "2035929978981564417",
|
||||||
|
"schemeId": "3"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
- **参数说明**:
|
||||||
|
|
||||||
|
| 字段 | 类型 | 必填 | 说明 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| orderId | String | 是 | 订单ID |
|
||||||
|
| schemeId | String | 是 | 合同方案ID(从 `GET /admin/contract/scheme/list` 获取) |
|
||||||
|
|
||||||
|
- **响应**:`Result<ContractDetailVO>`(与 `/admin/contract/create` 完全一致)
|
||||||
|
|
||||||
|
### 后端自动填充的数据
|
||||||
|
|
||||||
|
| 数据 | 来源 |
|
||||||
|
|------|------|
|
||||||
|
| 出行人列表 | 订单出行人 |
|
||||||
|
| 出发日期/返回日期 | 订单 |
|
||||||
|
| 联系人姓名/电话 | 订单 |
|
||||||
|
| 合同金额 | 订单总价 |
|
||||||
|
| 线路名称 | 产品名称 |
|
||||||
|
| 签署人 | 第一个有手机号的出行人 |
|
||||||
|
| 模板编码/签署模式/旅行社/争议解决/补充条款 | 合同方案 |
|
||||||
|
|
||||||
|
### 使用流程
|
||||||
|
|
||||||
|
```
|
||||||
|
1. GET /admin/contract/scheme/list → 获取可用方案列表(下拉用)
|
||||||
|
2. 用户选择一个方案
|
||||||
|
3. POST /admin/contract/create-by-scheme → { orderId, schemeId }
|
||||||
|
4. 合同创建完成,返回合同详情
|
||||||
|
```
|
||||||
|
|
||||||
|
### 注意事项
|
||||||
|
|
||||||
|
- 根据方案的 `contractMode` 自动选择标准签约(STANDARD)或线下报备(SYNC)
|
||||||
|
- 如果订单已有有效合同,会报错"该订单已有有效电子合同"
|
||||||
|
- 出行人必须已补全,否则报错
|
||||||
|
- `schemeId` 是字符串类型(Long 序列化),El-Select value 要对应字符串
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户