116 lines
3.6 KiB
Markdown
116 lines
3.6 KiB
Markdown
|
|
# 商机更新对接接口
|
|||
|
|
|
|||
|
|
## 接口信息
|
|||
|
|
|
|||
|
|
- 请求方式:`PUT`
|
|||
|
|
- 请求路径:`/api/opportunities/integration/update`
|
|||
|
|
- 请求头:
|
|||
|
|
- `Content-Type: application/json`
|
|||
|
|
- `X-Internal-Secret: <内部接口密钥>`
|
|||
|
|
|
|||
|
|
## 接口说明
|
|||
|
|
|
|||
|
|
- 通过 `opportunityCode` 定位商机
|
|||
|
|
- 按传入字段做部分更新,未传字段不修改
|
|||
|
|
- 不支持更新商机的最终客户
|
|||
|
|
|
|||
|
|
## 请求参数
|
|||
|
|
|
|||
|
|
### 必填
|
|||
|
|
|
|||
|
|
| 字段 | 类型 | 说明 |
|
|||
|
|
| ----------------- | ------ | ---- |
|
|||
|
|
| `opportunityCode` | string | 商机编号 |
|
|||
|
|
|
|||
|
|
### 可选
|
|||
|
|
|
|||
|
|
| 字段 | 类型 | 说明 |
|
|||
|
|
| -------------------- | ------- | -------------------------------------- |
|
|||
|
|
| `opportunityName` | string | 商机名称 |
|
|||
|
|
| `projectLocation` | string | 项目地 |
|
|||
|
|
| `operatorName` | string | 运作方 |
|
|||
|
|
| `amount` | number | 商机金额,必须大于 0 |
|
|||
|
|
| `expectedCloseDate` | string | 预计结单日期,格式 `YYYY-MM-DD` |
|
|||
|
|
| `confidencePct` | string | 把握度,建议传 `A`、`B`、`C` |
|
|||
|
|
| `stage` | string | 项目阶段,建议传 CRM 当前字典码值 |
|
|||
|
|
| `opportunityType` | string | 建设类型 |
|
|||
|
|
| `productType` | string | 产品类型 |
|
|||
|
|
| `source` | string | 商机来源 |
|
|||
|
|
| `salesExpansionId` | number | 销售拓展 ID,必须大于 0 |
|
|||
|
|
| `channelExpansionId` | number | 渠道拓展 ID,必须大于 0 |
|
|||
|
|
| `preSalesId` | number | 售前 ID,必须大于 0 |
|
|||
|
|
| `preSalesName` | string | 售前姓名 |
|
|||
|
|
| `competitorName` | string | 竞品名称 |
|
|||
|
|
| `archived` | boolean | 是否归档 |
|
|||
|
|
| `pushedToOms` | boolean | 是否已推送 OMS |
|
|||
|
|
| `omsPushTime` | string | 推送 OMS 时间,建议 ISO 8601 格式 |
|
|||
|
|
| `status` | string | 商机状态,支持 `active`、`closed`、`won`、`lost` |
|
|||
|
|
| `description` | string | 备注 |
|
|||
|
|
|
|||
|
|
## 关键规则
|
|||
|
|
|
|||
|
|
- 除 `opportunityCode` 外,至少还要传一个更新字段
|
|||
|
|
|
|||
|
|
## 请求示例
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"opportunityCode": "OPP-20260401-001",
|
|||
|
|
"stage": "won",
|
|||
|
|
"status": "won",
|
|||
|
|
"confidencePct": "A",
|
|||
|
|
"amount": 2800000,
|
|||
|
|
"expectedCloseDate": "2026-04-30",
|
|||
|
|
"description": "外部系统回写成交结果"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 返回示例
|
|||
|
|
|
|||
|
|
### 成功
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": "0",
|
|||
|
|
"msg": "success",
|
|||
|
|
"data": 123
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 失败
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": "-1",
|
|||
|
|
"msg": "商机不存在",
|
|||
|
|
"data": null
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 常见错误
|
|||
|
|
|
|||
|
|
- `内部接口鉴权失败`
|
|||
|
|
- `商机不存在`
|
|||
|
|
- `opportunityCode 不能为空`
|
|||
|
|
- `至少传入一个需要更新的字段`
|
|||
|
|
- `项目阶段无效: xxx`
|
|||
|
|
- `项目把握度仅支持A、B、C`
|
|||
|
|
|
|||
|
|
## curl 示例
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X PUT 'http://localhost:8080/api/opportunities/integration/update' \
|
|||
|
|
-H 'Content-Type: application/json' \
|
|||
|
|
-H 'X-Internal-Secret: f0eb247f84db4e328fb27ce8ff6e7be96e73a53a7e9c4793395ad10d999e0d77' \
|
|||
|
|
-d '{
|
|||
|
|
"opportunityCode": "OPP-20260401-001",
|
|||
|
|
"stage": "won",
|
|||
|
|
"status": "won",
|
|||
|
|
"confidencePct": "A",
|
|||
|
|
"amount": 2800000,
|
|||
|
|
"expectedCloseDate": "2026-04-30",
|
|||
|
|
"description": "外部系统回写成交结果"
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|