127 lines
3.8 KiB
Markdown
127 lines
3.8 KiB
Markdown
|
|
# API 文档 - 转换线索
|
|||
|
|
|
|||
|
|
## 元数据
|
|||
|
|
- 需求编号:001
|
|||
|
|
- 子需求编号:001-01
|
|||
|
|
- 接口编号:001
|
|||
|
|
- 创建时间:2026-02-02
|
|||
|
|
- 创建人:AI Assistant
|
|||
|
|
- 状态:已完成
|
|||
|
|
|
|||
|
|
## 接口概述
|
|||
|
|
将 Salesforce 线索(Lead)转换为账户(Account)、联系人(Contact)和商机(Opportunity)。
|
|||
|
|
|
|||
|
|
## 基本信息
|
|||
|
|
|
|||
|
|
- **功能描述**:转换线索为账户、联系人和商机
|
|||
|
|
- **请求方式**:POST
|
|||
|
|
- **请求路径**:`/partner/advanced/convert-lead`
|
|||
|
|
- **权限要求**:`@PreAuthorize("@ss.hasPermi('partner:advanced:convertLead')")`
|
|||
|
|
|
|||
|
|
## 请求参数
|
|||
|
|
|
|||
|
|
### 请求体(JSON)
|
|||
|
|
|
|||
|
|
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|
|||
|
|
|--------|------|------|------|--------|
|
|||
|
|
| leadId | String | 是 | 线索 ID | 00Qxx0000001Gw2EAE |
|
|||
|
|
| convertedStatus | String | 是 | 转换状态 | Qualified |
|
|||
|
|
| accountId | String | 否 | 账户 ID(可选),如果不指定则自动创建新账户 | 001xx0000001Gw2EAA |
|
|||
|
|
| contactId | String | 否 | 联系人 ID(可选),如果不指定则自动创建新联系人 | 003xx0000001Gw2EAA |
|
|||
|
|
| opportunityId | String | 否 | 商机 ID(可选),如果不指定则自动创建新商机 | 006xx0000001Gw2EAA |
|
|||
|
|
| overwriteLeadSource | Boolean | 否 | 是否覆盖线索来源,默认 false | false |
|
|||
|
|
| doNotCreateOpportunity | Boolean | 否 | 是否不创建商机,默认 false | false |
|
|||
|
|
| sendNotificationEmail | Boolean | 否 | 是否发送通知邮件,默认 false | false |
|
|||
|
|
|
|||
|
|
### 请求示例
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"leadId": "00Qxx0000001Gw2EAE",
|
|||
|
|
"convertedStatus": "Qualified",
|
|||
|
|
"accountId": "001xx0000001Gw2EAA",
|
|||
|
|
"contactId": "003xx0000001Gw2EAA",
|
|||
|
|
"opportunityId": "006xx0000001Gw2EAA",
|
|||
|
|
"overwriteLeadSource": false,
|
|||
|
|
"doNotCreateOpportunity": false,
|
|||
|
|
"sendNotificationEmail": false
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 响应参数
|
|||
|
|
|
|||
|
|
| 参数名 | 类型 | 说明 |
|
|||
|
|
|--------|------|------|
|
|||
|
|
| code | Integer | 状态码(200 成功,其他失败) |
|
|||
|
|
| msg | String | 提示信息 |
|
|||
|
|
| data | Object | 响应数据 |
|
|||
|
|
| data.accountId | String | 账户 ID |
|
|||
|
|
| data.contactId | String | 联系人 ID |
|
|||
|
|
| data.opportunityId | String | 商机 ID |
|
|||
|
|
| data.leadId | String | 原线索 ID |
|
|||
|
|
| data.success | Boolean | 是否成功 |
|
|||
|
|
| data.errors | Array | 错误信息列表 |
|
|||
|
|
|
|||
|
|
### 成功响应示例
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"msg": "操作成功",
|
|||
|
|
"data": {
|
|||
|
|
"accountId": "001xx0000001Gw2EAA",
|
|||
|
|
"contactId": "003xx0000001Gw2EAA",
|
|||
|
|
"opportunityId": "006xx0000001Gw2EAA",
|
|||
|
|
"leadId": "00Qxx0000001Gw2EAE",
|
|||
|
|
"success": true,
|
|||
|
|
"errors": null
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 失败响应示例
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 500,
|
|||
|
|
"msg": "线索转换失败",
|
|||
|
|
"data": {
|
|||
|
|
"accountId": null,
|
|||
|
|
"contactId": null,
|
|||
|
|
"opportunityId": null,
|
|||
|
|
"leadId": "00Qxx0000001Gw2EAE",
|
|||
|
|
"success": false,
|
|||
|
|
"errors": [
|
|||
|
|
{
|
|||
|
|
"statusCode": "INVALID_ID_FIELD",
|
|||
|
|
"message": "Invalid ID field",
|
|||
|
|
"fields": ["leadId"]
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 错误码
|
|||
|
|
|
|||
|
|
| 错误码 | 说明 | 处理建议 |
|
|||
|
|
|--------|------|----------|
|
|||
|
|
| 200 | 操作成功 | - |
|
|||
|
|
| 400 | 请求参数错误 | 检查请求参数格式和必填项 |
|
|||
|
|
| 401 | 未登录或登录已过期 | 请重新登录 |
|
|||
|
|
| 403 | 无权限访问 | 请检查用户权限 |
|
|||
|
|
| 500 | 服务器内部错误 | 请联系管理员或稍后重试 |
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. 线索转换后,原线索会被标记为已转换,不能再进行转换
|
|||
|
|
2. 如果不指定 accountId、contactId 或 opportunityId,系统会自动创建新记录
|
|||
|
|
3. convertedStatus 必须是 Salesforce 中配置的有效转换状态
|
|||
|
|
4. 一次只能转换一个线索
|
|||
|
|
5. 转换操作是原子性的,要么全部成功,要么全部失败
|
|||
|
|
|
|||
|
|
## 相关文档
|
|||
|
|
- [需求文档](../../requirements/2026-01-28-001-PartnerAPI源org实现.md)
|
|||
|
|
- [设计文档](../../design/2026-01-29-001-01-认证和会话管理-设计.md)
|
|||
|
|
- [决策记录](../../decisions/2026-01-29-001-01-ADR-认证和会话管理技术选型.md)
|