使用场景:

当积分主体配置为“外部积分系统”时,触发积分统计查询业务时,积分集成服务会请求积分类型自建应用中所配置的接口地址。


**接口地址** `自建应用配置`

**请求方式** `POST`

**consumes** `["application/json"]`

**produces** `["application/json"]`

**接口描述** `企业级接口,hearer必须携带X-Token`

**应用权限** `积分 -> 外部积分-统计查询`

**注意事项** 





# 请求参数

***

### 请求头参数

| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
| ------ | ------ | ------ | ------ | ------ | ------ |
| X-Token | 自建应用访问token | header | true | string | |

### 公共参数

| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
| ------ | ------ | ------ | ------ | ------ | ------ |
| openids | 身份识别标识集合 | body | false | array | [身份识别标识](#身份识别标识) |
| phoneList | 手机号码列表 | body | false | array | [手机号码](#手机号码) |
| audienceUserIds | 客户档案ID集合,客户档案ID为long类型 | body | false | array |  |
| exchangeTypes | 变动类型集合,1 获得;2 消耗;3 过期积分 | body | false | array | |
| pointRuleIds | 积分规则ID集合 | body | false | array | |
| queryType | 统计查询类型 0 默认不分组;1 按规则ID分组;2 按变动类型分组;3 按规则ID+变动类型分组 | body | false | int | |
| startTime | 开始时间 | body | false | date | |
| endTime | 截止时间 | body | false | date | |
| instanceAppId| 自建应用appid	| string | true | String | |
| thirdCompanyId| 开放平台登陆componyId	| string | 非开放平台用户为空	| String | |
| orgId| 企业id		| string | true 	| String | |

### 身份识别标识

| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
| ------ | ------ | ------ | ------ | ------ | ------ |
| openid |  | body | false | string | |
| unionid |  | body | false | string | |
| fromTo | 应用类型(contentminiapp:小程序, workwechat:企业微信外部联系人, gzh:公众号, workwechatgroup:客户群) | body | false | string | |
| appid | 应用ID | body | false | string | |
| jcappid | 系统集成应用实例ID | body | false | long | |
| identityId | 身份识别类型ID | body | false | string | |
| identityType | 身份识别类型(phone: 手机号码, id: 第三方用户ID, openid: 公众号openid, unionid: 开放平台unionid) | body | false | string | |

### 手机号码

| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
| ------ | ------ | ------ | ------ | ------ | ------ |
| phone | 手机号 | body | false | string | |
| isVerify | 是否验证(0:未验证, 1:已验证) | body | false | string | |

### 请求示例

```json
{
	"appInstanceId": 0,
	"audienceUserIds": [860484273911119872],
	"endTime": "",
	"exchangeTypes": [],
	"openids": [
		{
			"appid": "",
			"fromTo": "",
			"identityId": "",
			"identityType": "",
			"jcappid": 0,
			"openid": "",
			"unionid": ""
		}
	],
	"orgId": "d515fa4b-8def-4188-8415-92632581795c",
    "instanceAppId": "Ipu_t60KoV-gTTtCSkFMWtrkTIA",
    "thirdCompanyId": "0707",
	"pointRuleIds": [],
	"queryType": 0,
	"phoneList": [
		{
			"isVerify": "",
			"phone": ""
		}
	],
	"startTime": ""
}
```





# 响应参数

***


| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
| ------ | ------ | ------ | ------ | ------ | ------ |
| code | 状态码 | body | true | string | |
| errorCode | 异常码 | body | true | string | |
| msg | 描述 | body | true | string | |
| data | 积分统计结果 | body | true | object | [积分统计结果](#积分统计结果) |

### 积分统计结果

| 参数名称       | 参数说明                             | 请求类型 | 是否必须 | 数据类型 | schema |
| -------------- | ------------------------------------ | -------- | -------- | -------- | ------ |
| pointRuleId    | 积分规则ID                           | body     | false    | long     |        |
| audienceUserId | 客户档案ID                           | body     | false    | long     |        |
| exchangeType   | 积分变动类型,1 获得;2 消耗;3 过期积分 | body     | false    | int      |        |
| exchangePointSum  | 积分变动总值                      | body     | true     | int      |        |
| count          | 积分变动数量                         | body     | true     | int      |        |

### 响应状态

| 状态码 | 说明 | schema |
| ------ | ------ | ------ |
| 200 | OK | |
| 201 | Created | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Not Found | |

### 响应示例

```json
{
  "code": "200",
  "errorCode": "SUCCESS",
  "msg": "ok",
  "data": [
    {
      "audienceUserId": null,
      "pointRuleId": null,
      "exchangeType": 1,
      "exchangePointSum": 50,
      "count": 2
    },
    {
      "audienceUserId": null,
      "pointRuleId": null,
      "exchangeType": 2,
      "exchangePointSum": 10,
      "count": 1
    }
  ]
}
```