# Salesforce集成系统接口调用说明文档

## 文档信息

| 项目 | 内容 |
|------|------|
| 文档名称 | Salesforce集成系统接口调用说明文档 |
| 版本 | v1.0 |
| 生成日期 | 2025-12-30 |
| 基础路径 | /integration |

---

## 目录

1. [API调用日志接口](#1-api调用日志接口)
2. [批次管理接口](#2-批次管理接口)
3. [批次历史接口](#3-批次历史接口)
4. [字段管理接口](#4-字段管理接口)
5. [过滤查询接口](#5-过滤查询接口)
6. [元数据变更接口](#6-元数据变更接口)
7. [对象管理接口](#7-对象管理接口)
8. [选择列表接口](#8-选择列表接口)
9. [限流管理接口](#9-限流管理接口)
10. [同步日志接口](#10-同步日志接口)

---

## 1. API调用日志接口

### 1.1 查询API调用日志列表

**接口地址**：`GET /integration/apilog/list`

**接口描述**：分页查询API调用日志列表

**权限要求**：`integration:apilog:list`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| pageNum | Integer | 否 | 页码，默认1 |
| pageSize | Integer | 否 | 每页数量，默认10 |
| apiType | String | 否 | API类型（SOAP/REST） |
| connectionClass | String | 否 | 连接类名 |
| methodName | String | 否 | 方法名 |
| status | String | 否 | 状态（SUCCESS/FAILED） |
| startTime | String | 否 | 开始时间（格式：yyyy-MM-dd HH:mm:ss） |
| endTime | String | 否 | 结束时间（格式：yyyy-MM-dd HH:mm:ss） |

**请求示例**：
```http
GET /integration/apilog/list?pageNum=1&pageSize=10&apiType=SOAP&status=SUCCESS&startTime=2025-12-29 00:00:00&endTime=2025-12-30 23:59:59
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "apiType": "SOAP",
      "connectionClass": "com.datai.integration.SalesforceConnection",
      "methodName": "query",
      "requestParams": "{\"query\":\"SELECT Id, Name FROM Account\"}",
      "responseResult": "{\"totalSize\":100,\"done\":true}",
      "status": "SUCCESS",
      "executionTime": 1250,
      "errorMessage": null,
      "createTime": "2025-12-30 10:30:00"
    }
  ],
  "total": 100
}
```

---

### 1.2 获取API调用日志统计信息

**接口地址**：`GET /integration/apilog/statistics`

**接口描述**：获取API调用日志的统计信息，包括总调用次数、成功/失败次数、成功率、执行时间等

**权限要求**：`integration:apilog:statistics`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| apiType | String | 否 | API类型（SOAP/REST） |
| connectionClass | String | 否 | 连接类名 |
| methodName | String | 否 | 方法名 |
| status | String | 否 | 状态（SUCCESS/FAILED） |
| startTime | String | 否 | 开始时间（格式：yyyy-MM-dd HH:mm:ss） |
| endTime | String | 否 | 结束时间（格式：yyyy-MM-dd HH:mm:ss） |

**请求示例**：
```http
GET /integration/apilog/statistics?apiType=SOAP&status=SUCCESS&startTime=2025-12-29 00:00:00&endTime=2025-12-30 23:59:59
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "totalCalls": 1000,
    "successCount": 950,
    "failedCount": 50,
    "successRate": 95.0,
    "avgExecutionTime": 1250.5,
    "maxExecutionTime": 5000,
    "minExecutionTime": 100
  }
}
```

---

## 2. 批次管理接口

### 2.1 查询批次列表

**接口地址**：`GET /integration/batch/list`

**接口描述**：分页查询批次列表

**权限要求**：`integration:batch:list`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| pageNum | Integer | 否 | 页码，默认1 |
| pageSize | Integer | 否 | 每页数量，默认10 |
| objectApi | String | 否 | 对象API名称 |
| syncType | String | 否 | 同步类型（FULL/INCREMENTAL） |
| status | String | 否 | 批次状态（PENDING/RUNNING/COMPLETED/FAILED） |

**请求示例**：
```http
GET /integration/batch/list?pageNum=1&pageSize=10&objectApi=Account&status=COMPLETED
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "objectApi": "Account",
      "syncType": "FULL",
      "status": "COMPLETED",
      "recordCount": 1000,
      "successCount": 950,
      "failCount": 50,
      "startTime": "2025-12-30 10:00:00",
      "endTime": "2025-12-30 10:30:00"
    }
  ],
  "total": 50
}
```

---

### 2.2 获取批次详情

**接口地址**：`GET /integration/batch/{id}`

**接口描述**：根据批次ID获取批次详细信息

**权限要求**：`integration:batch:query`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 批次ID |

**请求示例**：
```http
GET /integration/batch/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "objectApi": "Account",
    "syncType": "FULL",
    "status": "COMPLETED",
    "recordCount": 1000,
    "successCount": 950,
    "failCount": 50,
    "startTime": "2025-12-30 10:00:00",
    "endTime": "2025-12-30 10:30:00",
    "errorMessage": null
  }
}
```

---

### 2.3 新增批次

**接口地址**：`POST /integration/batch`

**接口描述**：新增一个批次

**权限要求**：`integration:batch:add`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| objectApi | String | 是 | 对象API名称 |
| syncType | String | 是 | 同步类型（FULL/INCREMENTAL） |
| recordCount | Integer | 否 | 预估记录数 |

**请求示例**：
```http
POST /integration/batch
Content-Type: application/json

{
  "objectApi": "Account",
  "syncType": "FULL",
  "recordCount": 1000
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "新增成功"
}
```

---

### 2.4 修改批次

**接口地址**：`PUT /integration/batch`

**接口描述**：修改批次信息

**权限要求**：`integration:batch:edit`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 批次ID |
| objectApi | String | 否 | 对象API名称 |
| syncType | String | 否 | 同步类型（FULL/INCREMENTAL） |
| recordCount | Integer | 否 | 预估记录数 |

**请求示例**：
```http
PUT /integration/batch
Content-Type: application/json

{
  "id": 1,
  "objectApi": "Account",
  "syncType": "INCREMENTAL",
  "recordCount": 500
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "修改成功"
}
```

---

### 2.5 删除批次

**接口地址**：`DELETE /integration/batch/{id}`

**接口描述**：根据批次ID删除批次

**权限要求**：`integration:batch:remove`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 批次ID |

**请求示例**：
```http
DELETE /integration/batch/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "删除成功"
}
```

---

### 2.6 获取批次同步统计信息

**接口地址**：`GET /integration/batch/{id}/statistics`

**接口描述**：获取指定批次的同步统计信息

**权限要求**：`integration:batch:statistics`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 批次ID |

**请求示例**：
```http
GET /integration/batch/1/statistics
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "batchId": 1,
    "status": "COMPLETED",
    "totalRecords": 1000,
    "successRecords": 950,
    "failedRecords": 50,
    "successRate": 95.0,
    "startTime": "2025-12-30 10:00:00",
    "endTime": "2025-12-30 10:30:00",
    "duration": 30,
    "avgSpeed": 33.33
  }
}
```

---

### 2.7 同步批次数据

**接口地址**：`POST /integration/batch/{id}/sync`

**接口描述**：同步指定批次的数据

**权限要求**：`integration:batch:sync`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 批次ID |

**请求示例**：
```http
POST /integration/batch/1/sync
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "同步任务已提交"
}
```

---

## 3. 批次历史接口

### 3.1 查询历史列表

**接口地址**：`GET /integration/batchhistory/list`

**接口描述**：分页查询批次历史列表

**权限要求**：`integration:batchhistory:list`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| pageNum | Integer | 否 | 页码，默认1 |
| pageSize | Integer | 否 | 每页数量，默认10 |
| api | String | 否 | API名称 |
| batchId | Integer | 否 | 批次ID |
| syncType | String | 否 | 同步类型（FULL/INCREMENTAL） |
| syncStatus | Boolean | 否 | 同步状态（true/false） |
| startTime | String | 否 | 开始时间（格式：yyyy-MM-dd HH:mm:ss） |
| endTime | String | 否 | 结束时间（格式：yyyy-MM-dd HH:mm:ss） |

**请求示例**：
```http
GET /integration/batchhistory/list?pageNum=1&pageSize=10&batchId=1&syncStatus=true
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "api": "query",
      "batchId": 1,
      "syncType": "FULL",
      "syncStatus": true,
      "startTime": "2025-12-30 10:00:00",
      "endTime": "2025-12-30 10:30:00"
    }
  ],
  "total": 20
}
```

---

### 3.2 获取历史详情

**接口地址**：`GET /integration/batchhistory/{id}`

**接口描述**：根据历史ID获取历史详细信息

**权限要求**：`integration:batchhistory:query`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 历史ID |

**请求示例**：
```http
GET /integration/batchhistory/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "api": "query",
    "batchId": 1,
    "syncType": "FULL",
    "syncStatus": true,
    "startTime": "2025-12-30 10:00:00",
    "endTime": "2025-12-30 10:30:00",
    "errorMessage": null
  }
}
```

---

### 3.3 获取历史统计信息

**接口地址**：`GET /integration/batchhistory/statistics`

**接口描述**：获取批次历史的统计信息

**权限要求**：`integration:batchhistory:statistics`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| api | String | 否 | API名称 |
| batchId | Integer | 否 | 批次ID |
| syncType | String | 否 | 同步类型（FULL/INCREMENTAL） |
| syncStatus | Boolean | 否 | 同步状态（true/false） |
| startTime | String | 否 | 开始时间（格式：yyyy-MM-dd HH:mm:ss） |
| endTime | String | 否 | 结束时间（格式：yyyy-MM-dd HH:mm:ss） |

**请求示例**：
```http
GET /integration/batchhistory/statistics?syncType=FULL&syncStatus=true&startTime=2025-12-29 00:00:00&endTime=2025-12-30 23:59:59
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "totalCount": 100,
    "successCount": 95,
    "failedCount": 5,
    "successRate": 95.0,
    "avgDuration": 30.5
  }
}
```

---

## 4. 字段管理接口

### 4.1 查询字段列表

**接口地址**：`GET /integration/field/list`

**接口描述**：分页查询字段列表

**权限要求**：`integration:field:list`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| pageNum | Integer | 否 | 页码，默认1 |
| pageSize | Integer | 否 | 每页数量，默认10 |
| objectApi | String | 否 | 对象API名称 |
| fieldName | String | 否 | 字段名称 |

**请求示例**：
```http
GET /integration/field/list?pageNum=1&pageSize=10&objectApi=Account
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "objectApi": "Account",
      "fieldName": "Name",
      "fieldType": "String",
      "length": 255,
      "isCustom": false,
      "isQueryable": true,
      "isCreateable": true,
      "isUpdateable": true
    }
  ],
  "total": 50
}
```

---

### 4.2 获取字段详情

**接口地址**：`GET /integration/field/{id}`

**接口描述**：根据字段ID获取字段详细信息

**权限要求**：`integration:field:query`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 字段ID |

**请求示例**：
```http
GET /integration/field/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "objectApi": "Account",
    "fieldName": "Name",
    "fieldType": "String",
    "length": 255,
    "isCustom": false,
    "isQueryable": true,
    "isCreateable": true,
    "isUpdateable": true,
    "isNillable": true,
    "defaultValue": null
  }
}
```

---

### 4.3 新增字段

**接口地址**：`POST /integration/field`

**接口描述**：新增一个字段

**权限要求**：`integration:field:add`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| objectApi | String | 是 | 对象API名称 |
| fieldName | String | 是 | 字段名称 |
| fieldType | String | 是 | 字段类型 |
| length | Integer | 否 | 字段长度 |
| isCustom | Boolean | 否 | 是否自定义字段 |
| isQueryable | Boolean | 否 | 是否可查询 |
| isCreateable | Boolean | 否 | 是否可创建 |
| isUpdateable | Boolean | 否 | 是否可更新 |

**请求示例**：
```http
POST /integration/field
Content-Type: application/json

{
  "objectApi": "Account",
  "fieldName": "CustomField__c",
  "fieldType": "String",
  "length": 100,
  "isCustom": true,
  "isQueryable": true,
  "isCreateable": true,
  "isUpdateable": true
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "新增成功"
}
```

---

### 4.4 修改字段

**接口地址**：`PUT /integration/field`

**接口描述**：修改字段信息

**权限要求**：`integration:field:edit`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 字段ID |
| fieldName | String | 否 | 字段名称 |
| fieldType | String | 否 | 字段类型 |
| length | Integer | 否 | 字段长度 |
| isQueryable | Boolean | 否 | 是否可查询 |
| isCreateable | Boolean | 否 | 是否可创建 |
| isUpdateable | Boolean | 否 | 是否可更新 |

**请求示例**：
```http
PUT /integration/field
Content-Type: application/json

{
  "id": 1,
  "fieldName": "CustomField__c",
  "fieldType": "String",
  "length": 200,
  "isQueryable": true,
  "isCreateable": true,
  "isUpdateable": true
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "修改成功"
}
```

---

### 4.5 删除字段

**接口地址**：`DELETE /integration/field/{id}`

**接口描述**：根据字段ID删除字段

**权限要求**：`integration:field:remove`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 字段ID |

**请求示例**：
```http
DELETE /integration/field/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "删除成功"
}
```

---

## 5. 过滤查询接口

### 5.1 查询过滤查询列表

**接口地址**：`GET /integration/filterlookup/list`

**接口描述**：分页查询过滤查询列表

**权限要求**：`integration:filterlookup:list`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| pageNum | Integer | 否 | 页码，默认1 |
| pageSize | Integer | 否 | 每页数量，默认10 |
| objectApi | String | 否 | 对象API名称 |
| fieldName | String | 否 | 字段名称 |

**请求示例**：
```http
GET /integration/filterlookup/list?pageNum=1&pageSize=10&objectApi=Account
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "objectApi": "Account",
      "fieldName": "OwnerId",
      "lookupObject": "User",
      "filterCondition": "IsActive = true"
    }
  ],
  "total": 20
}
```

---

### 5.2 获取过滤查询详情

**接口地址**：`GET /integration/filterlookup/{id}`

**接口描述**：根据过滤查询ID获取详细信息

**权限要求**：`integration:filterlookup:query`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 过滤查询ID |

**请求示例**：
```http
GET /integration/filterlookup/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "objectApi": "Account",
    "fieldName": "OwnerId",
    "lookupObject": "User",
    "filterCondition": "IsActive = true",
    "description": "只查询激活的用户"
  }
}
```

---

### 5.3 新增过滤查询

**接口地址**：`POST /integration/filterlookup`

**接口描述**：新增一个过滤查询

**权限要求**：`integration:filterlookup:add`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| objectApi | String | 是 | 对象API名称 |
| fieldName | String | 是 | 字段名称 |
| lookupObject | String | 是 | 查找对象 |
| filterCondition | String | 否 | 过滤条件 |
| description | String | 否 | 描述 |

**请求示例**：
```http
POST /integration/filterlookup
Content-Type: application/json

{
  "objectApi": "Account",
  "fieldName": "OwnerId",
  "lookupObject": "User",
  "filterCondition": "IsActive = true",
  "description": "只查询激活的用户"
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "新增成功"
}
```

---

### 5.4 修改过滤查询

**接口地址**：`PUT /integration/filterlookup`

**接口描述**：修改过滤查询信息

**权限要求**：`integration:filterlookup:edit`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 过滤查询ID |
| fieldName | String | 否 | 字段名称 |
| lookupObject | String | 否 | 查找对象 |
| filterCondition | String | 否 | 过滤条件 |
| description | String | 否 | 描述 |

**请求示例**：
```http
PUT /integration/filterlookup
Content-Type: application/json

{
  "id": 1,
  "fieldName": "OwnerId",
  "lookupObject": "User",
  "filterCondition": "IsActive = true AND Department = 'Sales'",
  "description": "只查询销售部门的激活用户"
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "修改成功"
}
```

---

### 5.5 删除过滤查询

**接口地址**：`DELETE /integration/filterlookup/{id}`

**接口描述**：根据过滤查询ID删除过滤查询

**权限要求**：`integration:filterlookup:remove`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 过滤查询ID |

**请求示例**：
```http
DELETE /integration/filterlookup/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "删除成功"
}
```

---

## 6. 元数据变更接口

### 6.1 查询元数据变更列表

**接口地址**：`GET /integration/change/list`

**接口描述**：分页查询元数据变更列表

**权限要求**：`integration:change:list`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| pageNum | Integer | 否 | 页码，默认1 |
| pageSize | Integer | 否 | 每页数量，默认10 |
| changeType | String | 否 | 变更类型（OBJECT/FIELD） |
| operationType | String | 否 | 操作类型（INSERT/UPDATE/DELETE） |
| objectApi | String | 否 | 对象API名称 |
| syncStatus | Boolean | 否 | 同步状态（true/false） |
| isCustom | Boolean | 否 | 是否自定义对象（true/false） |

**请求示例**：
```http
GET /integration/change/list?pageNum=1&pageSize=10&changeType=OBJECT&syncStatus=false
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "changeType": "OBJECT",
      "operationType": "INSERT",
      "objectApi": "Account",
      "fieldName": null,
      "syncStatus": false,
      "isCustom": false,
      "changeTime": "2025-12-30 10:00:00"
    }
  ],
  "total": 30
}
```

---

### 6.2 获取元数据变更详情

**接口地址**：`GET /integration/change/{id}`

**接口描述**：根据变更ID获取元数据变更详细信息

**权限要求**：`integration:change:query`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 变更ID |

**请求示例**：
```http
GET /integration/change/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "changeType": "OBJECT",
    "operationType": "INSERT",
    "objectApi": "Account",
    "fieldName": null,
    "syncStatus": false,
    "isCustom": false,
    "changeTime": "2025-12-30 10:00:00",
    "oldValue": null,
    "newValue": "{\"name\":\"Account\",\"label\":\"Account\"}"
  }
}
```

---

### 6.3 获取变更统计信息

**接口地址**：`GET /integration/change/statistics`

**接口描述**：获取元数据变更的统计信息

**权限要求**：`integration:change:statistics`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| changeType | String | 否 | 变更类型（OBJECT/FIELD） |
| operationType | String | 否 | 操作类型（INSERT/UPDATE/DELETE） |
| objectApi | String | 否 | 对象API名称 |
| syncStatus | Boolean | 否 | 同步状态（true/false） |
| isCustom | Boolean | 否 | 是否自定义对象（true/false） |
| startTime | String | 否 | 开始时间（格式：yyyy-MM-dd HH:mm:ss） |
| endTime | String | 否 | 结束时间（格式：yyyy-MM-dd HH:mm:ss） |

**请求示例**：
```http
GET /integration/change/statistics?changeType=OBJECT&operationType=INSERT&syncStatus=false&startTime=2025-12-29 00:00:00&endTime=2025-12-30 23:59:59
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "totalChanges": 100,
    "objectChanges": 50,
    "fieldChanges": 50,
    "insertCount": 60,
    "updateCount": 30,
    "deleteCount": 10,
    "syncedCount": 80,
    "unsyncedCount": 20,
    "syncRate": 80.0,
    "customObjectChanges": 20,
    "standardObjectChanges": 30
  }
}
```

---

### 6.4 同步元数据变更到本地数据库

**接口地址**：`POST /integration/change/{id}/sync`

**接口描述**：将指定的元数据变更同步到本地数据库

**权限要求**：`integration:change:sync`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 变更ID |

**请求示例**：
```http
POST /integration/change/1/sync
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "同步成功"
}
```

---

## 7. 对象管理接口

### 7.1 查询对象列表

**接口地址**：`GET /integration/object/list`

**接口描述**：分页查询对象列表

**权限要求**：`integration:object:list`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| pageNum | Integer | 否 | 页码，默认1 |
| pageSize | Integer | 否 | 每页数量，默认10 |
| objectApi | String | 否 | 对象API名称 |
| isWork | Boolean | 否 | 是否启用同步 |
| isIncremental | Boolean | 否 | 是否增量更新 |
| isCustom | Boolean | 否 | 是否自定义对象 |

**请求示例**：
```http
GET /integration/object/list?pageNum=1&pageSize=10&isWork=true&isCustom=false
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "objectApi": "Account",
      "objectLabel": "账户",
      "isWork": true,
      "isIncremental": false,
      "isCustom": false,
      "totalRows": 10000,
      "lastSyncTime": "2025-12-30 10:00:00"
    }
  ],
  "total": 50
}
```

---

### 7.2 获取对象详情

**接口地址**：`GET /integration/object/{id}`

**接口描述**：根据对象ID获取对象详细信息

**权限要求**：`integration:object:query`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 对象ID |

**请求示例**：
```http
GET /integration/object/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "objectApi": "Account",
    "objectLabel": "账户",
    "isWork": true,
    "isIncremental": false,
    "isCustom": false,
    "isQueryable": true,
    "isCreateable": true,
    "isUpdateable": true,
    "isDeletable": true,
    "totalRows": 10000,
    "lastSyncTime": "2025-12-30 10:00:00",
    "description": "账户对象"
  }
}
```

---

### 7.3 新增对象

**接口地址**：`POST /integration/object`

**接口描述**：新增一个对象

**权限要求**：`integration:object:add`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| objectApi | String | 是 | 对象API名称 |
| objectLabel | String | 是 | 对象标签 |
| isWork | Boolean | 否 | 是否启用同步 |
| isIncremental | Boolean | 否 | 是否增量更新 |
| isCustom | Boolean | 否 | 是否自定义对象 |
| description | String | 否 | 描述 |

**请求示例**：
```http
POST /integration/object
Content-Type: application/json

{
  "objectApi": "CustomObject__c",
  "objectLabel": "自定义对象",
  "isWork": true,
  "isIncremental": true,
  "isCustom": true,
  "description": "自定义业务对象"
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "新增成功"
}
```

---

### 7.4 修改对象

**接口地址**：`PUT /integration/object`

**接口描述**：修改对象信息

**权限要求**：`integration:object:edit`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 对象ID |
| objectLabel | String | 否 | 对象标签 |
| isWork | Boolean | 否 | 是否启用同步 |
| isIncremental | Boolean | 否 | 是否增量更新 |
| description | String | 否 | 描述 |

**请求示例**：
```http
PUT /integration/object
Content-Type: application/json

{
  "id": 1,
  "objectLabel": "账户",
  "isWork": true,
  "isIncremental": true,
  "description": "账户对象描述"
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "修改成功"
}
```

---

### 7.5 删除对象

**接口地址**：`DELETE /integration/object/{id}`

**接口描述**：根据对象ID删除对象

**权限要求**：`integration:object:remove`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 对象ID |

**请求示例**：
```http
DELETE /integration/object/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "删除成功"
}
```

---

### 7.6 获取对象整体统计信息

**接口地址**：`GET /integration/object/statistics`

**接口描述**：获取对象的整体统计信息

**权限要求**：`integration:object:statistics`

**请求参数**：无

**请求示例**：
```http
GET /integration/object/statistics
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "totalObjects": 100,
    "enabledObjects": 80,
    "disabledObjects": 20,
    "enabledRate": 80.0,
    "incrementalObjects": 40,
    "fullSyncObjects": 40,
    "incrementalRate": 50.0,
    "customObjects": 30,
    "standardObjects": 50,
    "customRate": 37.5,
    "syncSuccessObjects": 75,
    "syncFailedObjects": 5,
    "syncSuccessRate": 93.75,
    "totalRows": 500000,
    "latestSyncDate": "2025-12-30 10:00:00"
  }
}
```

---

### 7.7 变更对象启用同步状态

**接口地址**：`PUT /integration/object/{id}/workStatus`

**接口描述**：变更对象的启用同步状态（is_work字段）

**权限要求**：`integration:object:updateWorkStatus`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 对象ID |
| isWork | Boolean | 是 | 是否启用同步 |

**请求示例**：
```http
PUT /integration/object/1/workStatus?isWork=true
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "状态更新成功"
}
```

---

### 7.8 变更对象增量更新状态

**接口地址**：`PUT /integration/object/{id}/incrementalStatus`

**接口描述**：变更对象的增量更新状态（is_incremental字段）

**权限要求**：`integration:object:updateIncrementalStatus`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 对象ID |
| isIncremental | Boolean | 是 | 是否增量更新 |

**请求示例**：
```http
PUT /integration/object/1/incrementalStatus?isIncremental=true
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "状态更新成功"
}
```

---

## 8. 选择列表接口

### 8.1 查询选择列表列表

**接口地址**：`GET /integration/picklist/list`

**接口描述**：分页查询选择列表列表

**权限要求**：`integration:picklist:list`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| pageNum | Integer | 否 | 页码，默认1 |
| pageSize | Integer | 否 | 每页数量，默认10 |
| objectApi | String | 否 | 对象API名称 |
| fieldName | String | 否 | 字段名称 |

**请求示例**：
```http
GET /integration/picklist/list?pageNum=1&pageSize=10&objectApi=Account
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "objectApi": "Account",
      "fieldName": "Type",
      "value": "Customer",
      "label": "客户",
      "isActive": true,
      "defaultValue": false
    }
  ],
  "total": 30
}
```

---

### 8.2 获取选择列表详情

**接口地址**：`GET /integration/picklist/{id}`

**接口描述**：根据选择列表ID获取详细信息

**权限要求**：`integration:picklist:query`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 选择列表ID |

**请求示例**：
```http
GET /integration/picklist/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "objectApi": "Account",
    "fieldName": "Type",
    "value": "Customer",
    "label": "客户",
    "isActive": true,
    "defaultValue": false,
    "description": "客户类型"
  }
}
```

---

### 8.3 新增选择列表

**接口地址**：`POST /integration/picklist`

**接口描述**：新增一个选择列表

**权限要求**：`integration:picklist:add`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| objectApi | String | 是 | 对象API名称 |
| fieldName | String | 是 | 字段名称 |
| value | String | 是 | 值 |
| label | String | 是 | 标签 |
| isActive | Boolean | 否 | 是否激活 |
| defaultValue | Boolean | 否 | 是否默认值 |
| description | String | 否 | 描述 |

**请求示例**：
```http
POST /integration/picklist
Content-Type: application/json

{
  "objectApi": "Account",
  "fieldName": "Type",
  "value": "Partner",
  "label": "合作伙伴",
  "isActive": true,
  "defaultValue": false,
  "description": "合作伙伴类型"
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "新增成功"
}
```

---

### 8.4 修改选择列表

**接口地址**：`PUT /integration/picklist`

**接口描述**：修改选择列表信息

**权限要求**：`integration:picklist:edit`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 选择列表ID |
| label | String | 否 | 标签 |
| isActive | Boolean | 否 | 是否激活 |
| defaultValue | Boolean | 否 | 是否默认值 |
| description | String | 否 | 描述 |

**请求示例**：
```http
PUT /integration/picklist
Content-Type: application/json

{
  "id": 1,
  "label": "客户",
  "isActive": true,
  "defaultValue": true,
  "description": "客户类型"
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "修改成功"
}
```

---

### 8.5 删除选择列表

**接口地址**：`DELETE /integration/picklist/{id}`

**接口描述**：根据选择列表ID删除选择列表

**权限要求**：`integration:picklist:remove`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 选择列表ID |

**请求示例**：
```http
DELETE /integration/picklist/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "删除成功"
}
```

---

## 9. 限流管理接口

### 9.1 查询限流列表

**接口地址**：`GET /integration/ratelimit/list`

**接口描述**：分页查询限流列表

**权限要求**：`integration:ratelimit:list`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| pageNum | Integer | 否 | 页码，默认1 |
| pageSize | Integer | 否 | 每页数量，默认10 |
| apiType | String | 否 | API类型（SOAP/REST） |
| apiName | String | 否 | API名称 |

**请求示例**：
```http
GET /integration/ratelimit/list?pageNum=1&pageSize=10&apiType=SOAP
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "apiType": "SOAP",
      "apiName": "query",
      "limitPerDay": 15000,
      "usedToday": 5000,
      "remainingToday": 10000,
      "resetTime": "2025-12-31 00:00:00"
    }
  ],
  "total": 10
}
```

---

### 9.2 获取限流详情

**接口地址**：`GET /integration/ratelimit/{id}`

**接口描述**：根据限流ID获取详细信息

**权限要求**：`integration:ratelimit:query`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 限流ID |

**请求示例**：
```http
GET /integration/ratelimit/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "apiType": "SOAP",
    "apiName": "query",
    "limitPerDay": 15000,
    "usedToday": 5000,
    "remainingToday": 10000,
    "resetTime": "2025-12-31 00:00:00",
    "description": "查询API限流配置"
  }
}
```

---

### 9.3 新增限流

**接口地址**：`POST /integration/ratelimit`

**接口描述**：新增一个限流配置

**权限要求**：`integration:ratelimit:add`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| apiType | String | 是 | API类型（SOAP/REST） |
| apiName | String | 是 | API名称 |
| limitPerDay | Integer | 是 | 每日限流次数 |
| description | String | 否 | 描述 |

**请求示例**：
```http
POST /integration/ratelimit
Content-Type: application/json

{
  "apiType": "REST",
  "apiName": "sobjects",
  "limitPerDay": 5000,
  "description": "REST API对象查询限流配置"
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "新增成功"
}
```

---

### 9.4 修改限流

**接口地址**：`PUT /integration/ratelimit`

**接口描述**：修改限流配置

**权限要求**：`integration:ratelimit:edit`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 限流ID |
| limitPerDay | Integer | 否 | 每日限流次数 |
| description | String | 否 | 描述 |

**请求示例**：
```http
PUT /integration/ratelimit
Content-Type: application/json

{
  "id": 1,
  "limitPerDay": 20000,
  "description": "查询API限流配置更新"
}
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "修改成功"
}
```

---

### 9.5 删除限流

**接口地址**：`DELETE /integration/ratelimit/{id}`

**接口描述**：根据限流ID删除限流配置

**权限要求**：`integration:ratelimit:remove`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 限流ID |

**请求示例**：
```http
DELETE /integration/ratelimit/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "删除成功"
}
```

---

## 10. 同步日志接口

### 10.1 查询同步日志列表

**接口地址**：`GET /integration/synclog/list`

**接口描述**：分页查询同步日志列表

**权限要求**：`integration:synclog:list`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| pageNum | Integer | 否 | 页码，默认1 |
| pageSize | Integer | 否 | 每页数量，默认10 |
| batchId | Integer | 否 | 批次ID |
| objectApi | String | 否 | 对象API名称 |
| operationType | String | 否 | 操作类型（INSERT/UPDATE/DELETE） |
| operationStatus | String | 否 | 操作状态（SUCCESS/FAILED） |
| deptId | Long | 否 | 部门ID |

**请求示例**：
```http
GET /integration/synclog/list?pageNum=1&pageSize=10&batchId=1&operationType=INSERT
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "batchId": 1,
      "objectApi": "Account",
      "operationType": "INSERT",
      "operationStatus": "SUCCESS",
      "recordId": "001xx000003DHbp",
      "errorMessage": null,
      "startTime": "2025-12-30 10:00:00",
      "endTime": "2025-12-30 10:00:01",
      "executionTime": 1000
    }
  ],
  "total": 100
}
```

---

### 10.2 获取同步日志详情

**接口地址**：`GET /integration/synclog/{id}`

**接口描述**：根据同步日志ID获取详细信息

**权限要求**：`integration:synclog:query`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 同步日志ID |

**请求示例**：
```http
GET /integration/synclog/1
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "batchId": 1,
    "objectApi": "Account",
    "operationType": "INSERT",
    "operationStatus": "SUCCESS",
    "recordId": "001xx000003DHbp",
    "requestData": "{\"Name\":\"测试账户\"}",
    "responseData": "{\"id\":\"001xx000003DHbp\",\"success\":true}",
    "errorMessage": null,
    "startTime": "2025-12-30 10:00:00",
    "endTime": "2025-12-30 10:00:01",
    "executionTime": 1000
  }
}
```

---

### 10.3 获取日志统计信息

**接口地址**：`GET /integration/synclog/statistics`

**接口描述**：获取同步日志的统计信息

**权限要求**：`integration:synclog:query`

**请求参数**：

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| batchId | Integer | 否 | 批次ID |
| objectApi | String | 否 | 对象API名称 |
| operationType | String | 否 | 操作类型（INSERT/UPDATE/DELETE） |
| operationStatus | String | 否 | 操作状态（SUCCESS/FAILED） |
| deptId | Long | 否 | 部门ID |
| startTime | String | 否 | 开始时间（格式：yyyy-MM-dd HH:mm:ss） |
| endTime | String | 否 | 结束时间（格式：yyyy-MM-dd HH:mm:ss） |

**请求示例**：
```http
GET /integration/synclog/statistics?operationType=INSERT&operationStatus=SUCCESS&startTime=2025-12-29 00:00:00&endTime=2025-12-30 23:59:59
```

**响应示例**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "totalLogs": 1000,
    "insertCount": 500,
    "updateCount": 300,
    "deleteCount": 200,
    "successCount": 950,
    "failedCount": 50,
    "successRate": 95.0,
    "todaySyncRecords": 100,
    "avgExecutionTime": 1250.5
  }
}
```

---

## 附录

### A. 通用响应格式

所有接口的响应都遵循以下格式：

**成功响应**：
```json
{
  "code": 200,
  "msg": "操作成功",
  "data": {}
}
```

**失败响应**：
```json
{
  "code": 500,
  "msg": "操作失败",
  "data": null
}
```

**分页响应**：
```json
{
  "code": 200,
  "msg": "查询成功",
  "rows": [],
  "total": 100
}
```

### B. 通用错误码

| 错误码 | 说明 |
|--------|------|
| 200 | 操作成功 |
| 401 | 未授权 |
| 403 | 无权限 |
| 404 | 资源不存在 |
| 500 | 服务器内部错误 |

### C. 时间格式说明

所有时间参数和响应中的时间字段都遵循以下格式：
- 格式：`yyyy-MM-dd HH:mm:ss`
- 示例：`2025-12-30 10:30:00`
- 时区：系统默认时区

### D. 权限说明

所有接口都需要相应的权限才能访问，权限格式为：`integration:{模块}:{操作}`

常用权限列表：
- `integration:apilog:list` - API调用日志列表查询
- `integration:apilog:statistics` - API调用日志统计
- `integration:batch:list` - 批次列表查询
- `integration:batch:query` - 批次详情查询
- `integration:batch:add` - 批次新增
- `integration:batch:edit` - 批次修改
- `integration:batch:remove` - 批次删除
- `integration:batch:statistics` - 批次统计
- `integration:batch:sync` - 批次同步
- `integration:batchhistory:list` - 批次历史列表查询
- `integration:batchhistory:query` - 批次历史详情查询
- `integration:batchhistory:statistics` - 批次历史统计
- `integration:field:list` - 字段列表查询
- `integration:field:query` - 字段详情查询
- `integration:field:add` - 字段新增
- `integration:field:edit` - 字段修改
- `integration:field:remove` - 字段删除
- `integration:filterlookup:list` - 过滤查询列表查询
- `integration:filterlookup:query` - 过滤查询详情查询
- `integration:filterlookup:add` - 过滤查询新增
- `integration:filterlookup:edit` - 过滤查询修改
- `integration:filterlookup:remove` - 过滤查询删除
- `integration:change:list` - 元数据变更列表查询
- `integration:change:query` - 元数据变更详情查询
- `integration:change:statistics` - 元数据变更统计
- `integration:change:sync` - 元数据变更同步
- `integration:object:list` - 对象列表查询
- `integration:object:query` - 对象详情查询
- `integration:object:add` - 对象新增
- `integration:object:edit` - 对象修改
- `integration:object:remove` - 对象删除
- `integration:object:statistics` - 对象统计
- `integration:object:updateWorkStatus` - 对象启用同步状态变更
- `integration:object:updateIncrementalStatus` - 对象增量更新状态变更
- `integration:picklist:list` - 选择列表列表查询
- `integration:picklist:query` - 选择列表详情查询
- `integration:picklist:add` - 选择列表新增
- `integration:picklist:edit` - 选择列表修改
- `integration:picklist:remove` - 选择列表删除
- `integration:ratelimit:list` - 限流列表查询
- `integration:ratelimit:query` - 限流详情查询
- `integration:ratelimit:add` - 限流新增
- `integration:ratelimit:edit` - 限流修改
- `integration:ratelimit:remove` - 限流删除
- `integration:synclog:list` - 同步日志列表查询
- `integration:synclog:query` - 同步日志详情查询
- `integration:synclog:statistics` - 同步日志统计

### E. 统计监控页面相关接口汇总

根据统计监控页面设计原型，以下接口用于统计监控页面：

| 接口名称 | 请求方法 | 路径 | 权限 | 用途 |
|---------|---------|------|------|------|
| API调用日志统计 | GET | /integration/apilog/statistics | integration:apilog:statistics | API调用统计卡片 |
| 批次同步统计 | GET | /integration/batch/{id}/statistics | integration:batch:statistics | 批次同步统计卡片 |
| 批次列表 | GET | /integration/batch/list | integration:batch:list | 最近同步记录列表 |
| 元数据变更统计 | GET | /integration/change/statistics | integration:change:statistics | 元数据变更统计卡片 |
| 对象统计 | GET | /integration/object/statistics | integration:object:statistics | 对象状态统计卡片 |
| 同步日志统计 | GET | /integration/synclog/statistics | integration:synclog:query | 同步日志统计卡片 |
| 批次历史统计 | GET | /integration/batchhistory/statistics | integration:batchhistory:statistics | 批次历史统计 |

---

**文档结束**
