本章描述了身份认证接口,基本工作流程如下
通过用户凭证获取访问令牌和刷新令牌
要素 | 说明 |
---|---|
Method | POST |
Endpoint | /oauth/token |
协议 | HTTPS(强制要求) |
Content-Type: application/json
Authorization: Basic {base64_encoded_client_credentials}
🔑 客户端凭证生成方式:
echo -n "client_id:client_secret" | base64
{
"grant_type": "password",
"username": "test@icec.com",
"password": "abcdabcd"
}
字段说明:
grant_type
:固定值 password
username
:用户登录邮箱password
:用户密码{
"access_token": "943d592f-3f74-416b-b1a2-f3ea89106fd5",
"token_type": "bearer",
"expires_in": 10599,
"refresh_token": "eb7a83e0-a14a-492f-9b4e-4b79fc35bee0",
"scope": "all"
}
字段说明:
access_token
:访问令牌,用于后续API请求token_type
:令牌类型,固定为 bearer
expires_in
:令牌过期时间(秒)refresh_token
:刷新令牌,用于刷新访问令牌curl -X POST 'https://oauth.hypers.com.cn/oauth/token' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cGhcawVkOjMxeDZDQ2pxM3U0M2FIUE8=' \
--data-raw '{
"grant_type": "password",
"username": "test@icec.com",
"password": "adcdabcd"
}'
使用刷新令牌获取新的访问令牌(支持JSON格式)
要素 | 说明 |
---|---|
Method | POST |
Endpoint | /oauth/token |
协议 | HTTPS(强制要求) |
Content-Type: application/json
Authorization: Basic {base64_encoded_client_credentials}
{
"grant_type": "refresh_token",
"refresh_token": "add1dde0-21ad-4ec2-857e-7dc788306c40"
}
{
"access_token": "233a0639-8db3-4705-9657-002adb7594b1",
"token_type": "bearer",
"expires_in": `10599,
"refresh_token": "3902d5f1-5784-49b9-bfc2-f8bb8b3d7c4f",
"scope": "all"
}
⚠️ 注意:每次刷新后原
refresh_token
将失效
curl -X POST 'https://oauth.hypers.com.cn/oauth/token' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic aGhpbWVkOjMxeDZDQ2pxM3U0M2FIUE8=' \
--data-raw '{
"grant_type": "refresh_token",
"refresh_token": "add1dde0-21ad-4ec2-857e-7dc788306c40"
}'
所有认证和授权操作,由API Gateway和Oauth Server统一控制。
在请求头中携带访问令牌:
Authorization: Bearer {access_token}
参考文档《身份认证接口文档》
本章描述了群通知任务API,包括新建、查询、终止、列表查询等操作
POST https://szhl-phiskin.hypers.com.cn/api/v1/notification-tasks
{
"taskName": "双十一促销提醒",
"taskType": "CUSTOMER_RESOURCE_REMINDER",
"scheduledStartTime": "2023-11-10 09:00:00",
"scheduledEndTime": "2023-11-10 19:00:00",
"contents": [
{
"contentType": "TEXT",
"contentValue": "尊敬的{{name}},您的专属优惠即将到期!"
},
{
"contentType": "IMAGE",
"contentValue": "https://szhl.hypers.com.cn/api/file/17"
}
],
"fileIds": [12345, 45678], // 通过文件上传接口上传的Excel的文件ID,与members仅能选一个
"members": [ // 直接通过接口传入会员列表(以及动态参数)
{
"userId": "222", // 与ciq必须存在一个
"ciq": "333",
"nickname": "zhangsan"
}
]
}
字段说明:
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
taskName | string | 是 | 任务名称(长度≤120) |
taskType | enum | 是 | APPOINTMENT_REMINDER /CUSTOMER_RESOURCE_REMINDER 预约提醒/客资提醒 |
scheduledStartTime | datetime | 是 | yyyy-MM-dd HH:mm:ss 任务开始时间 |
scheduledEndTime | datetime | 否 | yyyy-MM-dd HH:mm:ss 任务结束时间,到期未完成将自动结束。与开始时间必须为同一天,默认当日22:00 |
contents | array | 是 | 通知内容列表(至少1条) |
∟contentType | enum | 是 | TEXT /IMAGE |
∟contentValue | string | 是 | 文本内容(变量用{{}}包裹)或图片URL(长度≤1024) |
fileIds | array(long) | 否 | 与members选其一。 文件上传参考 《文件上传与访问》接口文档 |
members | array | 否 | 客户列表 (与fileIds选其一) |
∟memberId | long | 是 | 会员ID |
∟otherParam1 | string | 是 | 其它动态参数(会做校验) |
{
"id": 34,
"createTime": "2025-04-24 14:48:40",
"lastUpdateTime": "2025-04-24 14:49:19",
"taskName": "双十一促销提醒",
"taskType": "CUSTOMER_RESOURCE_REMINDER",
"status": "PENDING",
"scheduledStartTime": "2025-04-24 17:36:40",
"scheduledEndTime": "2025-04-24 18:36:40",
"totalMembers": 2
}
校验规则:
变量
匹配GET https://szhl-phiskin.hypers.com.cn/api/v1/notification-tasks/{taskId}
{
"id": 789,
"taskName": "双十一促销提醒",
"taskType": "CUSTOMER_RESOURCE_REMINDER",
"status": "COMPLETED",
"scheduledStartTime": "2023-11-10 09:00:00",
"scheduledEndTime": "2023-11-10 19:00:05",
"statistics": {
"totalMembers": 3,
"successCount": 2
},
"contents": [
{"type":"TEXT","value":"尊敬的{{name}}..."},
{"type":"IMAGE","value":"https://..."}
],
"fileIds": [12345, 45678],
"members": [
]
}
PUT https://szhl-phiskin.hypers.com.cn/api/v1/notification-tasks/{taskId}/termination
{
"reason": "客户临时取消活动"
}
{
"previousStatus": "EXECUTING",
"currentStatus": "TERMINATED"
}
限制条件:
PENDING
或EXECUTING
状态的任务GET https://szhl-phiskin.hypers.com.cn/api/v1/notification-tasks
参数 | 类型 | 说明 |
---|---|---|
taskType | enum | 任务类型过滤(必填) |
status | enum | 状态过滤 |
startTime | datetime | 查询起始时间(≥ scheduledStartTime) |
endTime | datetime | 查询结束时间(≤ scheduledStartTime) |
current | int | 当前页(从0开始) |
size | int | 分页大小 |
{
"page": {
"current": 0,
"size": 20,
"total": 14
},
"records": [
{
"id": 789,
"taskName": "双十一促销提醒",
"taskType": "CUSTOMER_RESOURCE_REMINDER",
"status": "COMPLETED",
"scheduledStartTime": "2023-11-10 09:00:00",
"scheduledEndTime": "2023-11-10 19:00:00",
"contents": [
{"contentType":"TEXT","contentValue":"尊敬的{{name}}..."},
{"contentType":"IMAGE","contentValue":"https://..."}
]
},
//...其他任务
]
}
GET https://szhl-phiskin.hypers.com.cn/api/v1/notification-tasks/{taskId}/executions
查询指定任务下所有会员的通知执行明细,支持分页查询
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
current | int | 否 | 当前页(从0开始) |
size | int | 否 | 分页大小(默认20,最大100) |
orderBy | string | 否 | 排序字段(executeTime/status) |
orderDirection | string | 否 | 排序方式(ASC/DESC) |
{
"page": {
"current": 0,
"size": 20,
"total": 14
},
"records": [
{
"memberId": 123,
"memberName": "张三(nickname)",
"status": "COMPLETED",
"executeTime": "2024-11-10 09:00:05"
},
{
"memberId": 124,
"memberName": "李四",
"status": "FAILED",
"executeTime": null
}
]
}
响应字段:
task_id
: 关联的任务IDtotal_members
: 总会员数(非分页总数)executions[]
: 执行明细列表
memberId
: 会员IDmemberName
: nicknamestatus
: 执行状态(SUCCESS/FAILED/PENDING)notificationTime
: 实际通知时间(成功时有效)failureReason
: 失败原因(失败时返回)除特殊标注外,所有API需在请求头中携带访问令牌
Authorization: Bearer {access_token}
POST https://szhl-phiskin.hypers.com.cn/api/v1/file
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
参数名称 | 位置 | 类型 | 必填 | 验证规则 | 说明 |
---|---|---|---|---|---|
file | formData | file | 是 | 文件名非空,文件内容非空 | 上传的文件(支持任意文件类型) |
moduleName | formData | string | 是 | 长度1-50,仅允许字母数字和下划线 | 业务模块标识(如:notification) |
curl --location --request POST 'https://szhl.hypers.com.cn/api/file' \
--header 'Authorization: Bearer {access_token}' \
--form 'file=@"/path/to/file.pdf"' \
--form 'moduleName="notification"'
{
"id": 123456,
"fileName": "report.pdf",
"signature": "a1b2c3d4...(SHA-256哈希值)",
"fileSize": 1048576,
"createTime": 1741773532634
}
字段 | 类型 | 格式 | 说明 |
---|---|---|---|
id | Long | - | 文件唯一标识(可用于后续下载操作) |
fileName | String | 原始文件名 | 上传时的完整文件名(包含扩展名) |
signature | String | 64字符HEX字符串 | 基于文件内容生成的SHA-256哈希值(用于内容去重) |
fileSize | Long | 字节数 | 文件实际大小(单位:bytes) |
createTime | Date | 时间戳 | 文件创建时间 |
GET https://szhl-phiskin.hypers.com.cn/api/v1/file/{id}
⚠️ 本接口无需认证
参数 | 类型 | 验证规则 | 说明 |
---|---|---|---|
id | Long | 正整数 | 文件上传时返回的ID |
HTTP/1.1 200 OK
Content-Type: {根据文件类型自动判断} # 如:image/png, application/pdf
Content-Disposition: inline; filename="report.pdf" # 保持原始文件名
Cache-Control: public, max-age=31536000 # 基于内容哈希的长期缓存
直接返回文件二进制流,响应头包含:
Content-Length
: 文件大小(与fileSize字段一致)Last-Modified
: 文件创建时间(与createTime字段一致)可直接通过本接口访问图片文件
如:https://szhl-phiskin.hypers.com.cn/api/file/17
GET /api/v1/marketing-notice/group
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
current | query | integer | 否 | 分页字段 当前页,从 0 开始 |
size | query | integer | 否 | 分页字段 页长度 |
orderBy | query | array[string] | 否 | 排序字段名称 |
orderDirection | query | string | 否 | 排序方式 |
orderNullHandling | query | string | 否 | 排序空值处理 |
keyWord | query | string | 否 | 搜索关键字 |
ids | query | string | 否 | 分组id过滤 |
current: 分页字段 当前页,从 0 开始
默认为空,不分页
orderDirection: 排序方式
ASC :ASC
DESC :DESC
orderNullHandling: 排序空值处理
NATIVE :Lets the data store decide what to do with nulls.
NULLS_FIRST :A hint to the used data store to order entries with null values before non null entries.
NULLS_LAST :A hint to the used data store to order entries with null values after non null entries.
属性 | 值 |
---|---|
orderDirection | ASC |
orderDirection | DESC |
orderNullHandling | NATIVE |
orderNullHandling | NULLS_FIRST |
orderNullHandling | NULLS_LAST |
返回示例
200 Response
{
"content": [
{
"id": 0,
"createTime": "",
"lastUpdateTime": "",
"name": ""
}
],
"pageable": {
"paged": false,
"unpaged": false,
"pageNumber": 0,
"pageSize": 0,
"offset": 0,
"sort": [
{
"direction": "",
"property": "",
"ignoreCase": false,
"nullHandling": "",
"ascending": false,
"descending": false
}
]
},
"total": 0,
"empty": false,
"number": 0,
"size": 0,
"numberOfElements": 0,
"sort": [
{
"direction": "",
"property": "",
"ignoreCase": false,
"nullHandling": "",
"ascending": false,
"descending": false
}
],
"first": false,
"last": false,
"totalPages": 0,
"totalElements": 0
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» content | [MarketingNoticeGroupOutput] | false | none | none | |
»» id | integer(int64) | false | none | 组id | |
»» createTime | string | false | none | 创建时间 | |
»» lastUpdateTime | string | false | none | 最后修改时间 | |
»» name | string | false | none | 名称 | |
» pageable | Pageable | false | none | none | |
»» paged | boolean | false | none | Returns whether the current{@link Pageable} contains pagination information. | |
»» unpaged | boolean | false | none | Returns whether the current{@link Pageable} does not contain pagination information. | |
»» pageNumber | integer | false | none | Returns the page to be returned. | |
»» pageSize | integer | false | none | Returns the number of items to be returned. | |
»» offset | integer(int64) | false | none | Returns the offset to be taken according to the underlying page and page size. | |
»» sort | [Sort] | false | none | Returns the sorting parameters. | |
»»» direction | string | false | none | none | |
»»» property | string | false | none | none | |
»»» ignoreCase | boolean | false | none | none | |
»»» nullHandling | string | false | none | none | |
»»» ascending | boolean | false | none | Returns whether sorting for this property shall be ascending. | |
»»» descending | boolean | false | none | Returns whether sorting for this property shall be descending. | |
» total | integer(int64) | false | none | none | |
» empty | boolean | false | none | Returns whether the current{@link Streamable} is empty. | |
» number | integer | false | none | none | |
» size | integer | false | none | none | |
» numberOfElements | integer | false | none | none | |
» sort | [Sort] | false | none | none | |
»» direction | string | false | none | none | |
»» property | string | false | none | none | |
»» ignoreCase | boolean | false | none | none | |
»» nullHandling | string | false | none | none | |
»» ascending | boolean | false | none | Returns whether sorting for this property shall be ascending. | |
»» descending | boolean | false | none | Returns whether sorting for this property shall be descending. | |
» first | boolean | false | none | none | |
» last | boolean | false | none | none | |
» totalPages | integer | false | none | none | |
» totalElements | integer(int64) | false | none | none |
属性 | 值 |
---|---|
direction | ASC |
direction | DESC |
nullHandling | NATIVE |
nullHandling | NULLS_FIRST |
nullHandling | NULLS_LAST |
direction | ASC |
direction | DESC |
nullHandling | NATIVE |
nullHandling | NULLS_FIRST |
nullHandling | NULLS_LAST |
POST /api/v1/marketing-notice/group
Body 请求参数
{
"name": "string"
}
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
body | body | MarketingNoticeGroupInput | 否 | none |
返回示例
200 Response
{
"id": 0,
"createTime": "",
"lastUpdateTime": "",
"name": ""
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 组id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 名称 |
DELETE /api/v1/marketing-notice/group/
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
返回示例
200 Response
{}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
PUT /api/v1/marketing-notice/group/
Body 请求参数
{
"name": "string"
}
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
body | body | MarketingNoticeGroupInput | 否 | none |
返回示例
200 Response
{
"id": 0,
"createTime": "",
"lastUpdateTime": "",
"name": ""
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 组id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 名称 |
GET /api/v1/marketing-notice/group/
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
返回示例
200 Response
{
"id": 0,
"createTime": "",
"lastUpdateTime": "",
"name": ""
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 组id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 名称 |
POST /api/v1/marketing-notice/scene
Body 请求参数
{
"name": "string",
"statisticalMethod": "GRAND_TOTAL",
"prompt": "string",
"externalId": "string",
"planId": 0
}
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
body | body | ConversationalTaskSceneInput | 否 | none |
返回示例
200 Response
{
"id": 0,
"createTime": "",
"lastUpdateTime": "",
"name": "",
"statisticalMethod": "",
"prompt": "",
"externalId": "",
"sceneType": ""
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 场景id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 场景名称 | |
» statisticalMethod | string | false | none | 统计方式 | |
» prompt | string | false | none | 场景提示词 | |
» externalId | string | false | none | 外部id | |
» sceneType | string | false | none | 场景类型 |
属性 | 值 |
---|---|
statisticalMethod | GRAND_TOTAL |
statisticalMethod | ONLY |
sceneType | SYSTEM |
sceneType | CUSTOM |
GET /api/v1/marketing-notice/scene
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
current | query | integer | 否 | 分页字段 当前页,从 0 开始 |
size | query | integer | 否 | 分页字段 页长度 |
orderBy | query | array[string] | 否 | 排序字段名称 |
orderDirection | query | string | 否 | 排序方式 |
orderNullHandling | query | string | 否 | 排序空值处理 |
keyWord | query | string | 否 | 搜索关键字 |
externalId | query | string | 否 | 外部计划id |
planId | query | integer(int64) | 否 | 关联的计划id |
current: 分页字段 当前页,从 0 开始
默认为空,不分页
orderDirection: 排序方式
ASC :ASC
DESC :DESC
orderNullHandling: 排序空值处理
NATIVE :Lets the data store decide what to do with nulls.
NULLS_FIRST :A hint to the used data store to order entries with null values before non null entries.
NULLS_LAST :A hint to the used data store to order entries with null values after non null entries.
属性 | 值 |
---|---|
orderDirection | ASC |
orderDirection | DESC |
orderNullHandling | NATIVE |
orderNullHandling | NULLS_FIRST |
orderNullHandling | NULLS_LAST |
返回示例
200 Response
{
"content": [
{}
],
"pageable": {
"paged": false,
"unpaged": false,
"pageNumber": 0,
"pageSize": 0,
"offset": 0,
"sort": [
{
"direction": "",
"property": "",
"ignoreCase": false,
"nullHandling": "",
"ascending": false,
"descending": false
}
]
},
"total": 0,
"empty": false,
"number": 0,
"size": 0,
"numberOfElements": 0,
"sort": [
{
"direction": "",
"property": "",
"ignoreCase": false,
"nullHandling": "",
"ascending": false,
"descending": false
}
],
"first": false,
"last": false,
"totalPages": 0,
"totalElements": 0
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» content | [object] | false | none | none | |
» pageable | Pageable | false | none | none | |
»» paged | boolean | false | none | Returns whether the current{@link Pageable} contains pagination information. | |
»» unpaged | boolean | false | none | Returns whether the current{@link Pageable} does not contain pagination information. | |
»» pageNumber | integer | false | none | Returns the page to be returned. | |
»» pageSize | integer | false | none | Returns the number of items to be returned. | |
»» offset | integer(int64) | false | none | Returns the offset to be taken according to the underlying page and page size. | |
»» sort | [Sort] | false | none | Returns the sorting parameters. | |
»»» direction | string | false | none | none | |
»»» property | string | false | none | none | |
»»» ignoreCase | boolean | false | none | none | |
»»» nullHandling | string | false | none | none | |
»»» ascending | boolean | false | none | Returns whether sorting for this property shall be ascending. | |
»»» descending | boolean | false | none | Returns whether sorting for this property shall be descending. | |
» total | integer(int64) | false | none | none | |
» empty | boolean | false | none | Returns whether the current{@link Streamable} is empty. | |
» number | integer | false | none | none | |
» size | integer | false | none | none | |
» numberOfElements | integer | false | none | none | |
» sort | [Sort] | false | none | none | |
»» direction | string | false | none | none | |
»» property | string | false | none | none | |
»» ignoreCase | boolean | false | none | none | |
»» nullHandling | string | false | none | none | |
»» ascending | boolean | false | none | Returns whether sorting for this property shall be ascending. | |
»» descending | boolean | false | none | Returns whether sorting for this property shall be descending. | |
» first | boolean | false | none | none | |
» last | boolean | false | none | none | |
» totalPages | integer | false | none | none | |
» totalElements | integer(int64) | false | none | none |
属性 | 值 |
---|---|
direction | ASC |
direction | DESC |
nullHandling | NATIVE |
nullHandling | NULLS_FIRST |
nullHandling | NULLS_LAST |
direction | ASC |
direction | DESC |
nullHandling | NATIVE |
nullHandling | NULLS_FIRST |
nullHandling | NULLS_LAST |
PUT /api/v1/marketing-notice/scene/
Body 请求参数
{
"name": "string",
"prompt": "string",
"externalId": "string"
}
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
body | body | ConversationalTaskSceneUpdateInput | 否 | none |
返回示例
200 Response
{
"id": 0,
"createTime": "",
"lastUpdateTime": "",
"name": "",
"statisticalMethod": "",
"prompt": "",
"externalId": "",
"sceneType": ""
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 场景id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 场景名称 | |
» statisticalMethod | string | false | none | 统计方式 | |
» prompt | string | false | none | 场景提示词 | |
» externalId | string | false | none | 外部id | |
» sceneType | string | false | none | 场景类型 |
属性 | 值 |
---|---|
statisticalMethod | GRAND_TOTAL |
statisticalMethod | ONLY |
sceneType | SYSTEM |
sceneType | CUSTOM |
GET /api/v1/marketing-notice/scene/
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
返回示例
200 Response
{
"id": 0,
"createTime": "",
"lastUpdateTime": "",
"name": "",
"statisticalMethod": "",
"prompt": "",
"externalId": "",
"sceneType": ""
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 场景id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 场景名称 | |
» statisticalMethod | string | false | none | 统计方式 | |
» prompt | string | false | none | 场景提示词 | |
» externalId | string | false | none | 外部id | |
» sceneType | string | false | none | 场景类型 |
属性 | 值 |
---|---|
statisticalMethod | GRAND_TOTAL |
statisticalMethod | ONLY |
sceneType | SYSTEM |
sceneType | CUSTOM |
PATCH /api/v1/marketing-notice/scene/{id}/unbundled-externalId
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
返回示例
200 Response
{
"id": 0,
"createTime": "",
"lastUpdateTime": "",
"name": "",
"statisticalMethod": "",
"prompt": "",
"externalId": "",
"sceneType": ""
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 场景id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 场景名称 | |
» statisticalMethod | string | false | none | 统计方式 | |
» prompt | string | false | none | 场景提示词 | |
» externalId | string | false | none | 外部id | |
» sceneType | string | false | none | 场景类型 |
属性 | 值 |
---|---|
statisticalMethod | GRAND_TOTAL |
statisticalMethod | ONLY |
sceneType | SYSTEM |
sceneType | CUSTOM |
POST /api/v1/marketing-notice
Body 请求参数
{
"options": "DRAFT",
"data": {
"name": "string",
"groupId": 0,
"description": "string",
"startTime": "string",
"endTime": "string",
"replyStrategy": "CONSULTANT_CONTINUE_AFTER_REPLY",
"replyDelay": 0,
"unifiedReply": false,
"segmentSeparator": "string",
"minReplyInterval": 0,
"sceneIds": [
0
],
"monitoringStrategy": [
{
"sceneId": 0,
"strategy": [
"AI_SERVICE_END_UNTIL_RESTART"
]
}
],
"prompt": "string",
"backgroundInfo": "string",
"timeInfo": "string",
"referenceCase": "string",
"timeoutWakeUp": true,
"timeout": 0,
"timeoutPrompt": "string",
"greetings": [
{
"type": "IMAGE"
}
]
}
}
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
body | body | MarketingNoticeInput | 否 | none |
返回示例
200 Response
{
"id": 0,
"groupId": 0,
"createTime": "",
"lastUpdateTime": "",
"name": "",
"description": "",
"startTime": "",
"endTime": "",
"replyStrategy": "",
"replyDelay": 0,
"unifiedReply": false,
"segmentSeparator": "",
"minReplyInterval": 0,
"prompt": "",
"backgroundInfo": "",
"timeInfo": "",
"referenceCase": "",
"timeoutWakeUp": false,
"timeout": 0,
"timeoutPrompt": "",
"monitoringStrategy": [
{
"sceneId": 0,
"strategy": [
""
]
}
],
"status": "",
"greetings": [
{
"type": ""
}
]
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 营销通知版本记录id | |
» groupId | integer(int64) | false | none | 关联的组id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 名称 | |
» description | string | false | none | 描述 | |
» startTime | string | false | none | 任务时间段的开始时间 | |
» endTime | string | false | none | 任务时间段的结束时间 | |
» replyStrategy | string | false | none | 回复策略 | |
» replyDelay | integer | false | none | 回复延迟 | |
» unifiedReply | boolean | false | none | 是否统一回复 | |
» segmentSeparator | string | false | none | 段落分隔符 | |
» minReplyInterval | integer | false | none | 最小回复间隔 | |
» prompt | string | false | none | 提示词 | |
» backgroundInfo | string | false | none | 营销通知背景信息 | |
» timeInfo | string | false | none | 营销通知时间信息 | |
» referenceCase | string | false | none | 营销通知引用案例 | |
» timeoutWakeUp | boolean | false | none | 是否开启超时唤醒 | |
» timeout | integer | false | none | 超时唤醒时间,单位分 | |
» timeoutPrompt | string | false | none | 超时唤醒提示词 | |
» monitoringStrategy | [MonitoringStrategyMo] | false | none | 监控策略 | |
»» sceneId | integer(int64) | false | none | 使用的场景id | |
»» strategy | [string] | false | none | 触发场景后执行的策略 | |
» status | string | false | none | 状态 | |
» greetings | [ConversationalTaskGreetingMo] | false | none | 开场白 | |
»» type | string | true | none | 类型 |
属性 | 值 |
---|---|
replyStrategy | CONSULTANT_CONTINUE_AFTER_REPLY |
replyStrategy | CONSULTANT_NO_FURTHER_REPLY |
replyStrategy | AI_HOSTING_END_AFTER_REPLY |
status | DRAFT |
status | EXECUTION |
status | TERMINATION |
status | COMPLETE |
type | IMAGE |
type | TEXT |
GET /api/v1/marketing-notice
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
current | query | integer | 否 | 分页字段 当前页,从 0 开始 |
size | query | integer | 否 | 分页字段 页长度 |
orderBy | query | array[string] | 否 | 排序字段名称 |
orderDirection | query | string | 否 | 排序方式 |
orderNullHandling | query | string | 否 | 排序空值处理 |
keyWord | query | string | 否 | 搜索关键字 |
groupIds | query | string | 否 | 分组id |
status | query | string | 否 | 查询状态 |
current: 分页字段 当前页,从 0 开始
默认为空,不分页
orderDirection: 排序方式
ASC :ASC
DESC :DESC
orderNullHandling: 排序空值处理
NATIVE :Lets the data store decide what to do with nulls.
NULLS_FIRST :A hint to the used data store to order entries with null values before non null entries.
NULLS_LAST :A hint to the used data store to order entries with null values after non null entries.
status: 查询状态
DRAFT :草稿
EXECUTION :执行中
TERMINATION :终止
COMPLETE :完成
属性 | 值 |
---|---|
orderDirection | ASC |
orderDirection | DESC |
orderNullHandling | NATIVE |
orderNullHandling | NULLS_FIRST |
orderNullHandling | NULLS_LAST |
status | DRAFT |
status | EXECUTION |
status | TERMINATION |
status | COMPLETE |
返回示例
200 Response
{
"records": [
{
"groupId": 0,
"groupName": "",
"plan": [
{
"id": 0,
"name": "",
"memberNumber": 0,
"lastTriggerTime": "",
"contactSuccessOfPeopl": 0,
"completeServiceOfPeopl": 0,
"effectiveCommunicationOfPeopl": 0,
"invitationSuccessfulOfPeopl": 0,
"status": "",
"taskCount": 0
}
]
}
],
"page": {
"current": 0,
"size": 0,
"total": 0
},
"summary": {}
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» records | [MarketingNoticeGroupListOutput] | false | none | none | |
»» groupId | integer(int64) | false | none | 组id | |
»» groupName | string | false | none | 组名称 | |
»» plan | [MarketingNoticeListOutput] | false | none | 关联计划 | |
»»» id | integer(int64) | false | none | 营销通知计划id | |
»»» name | string | false | none | 名称 | |
»»» memberNumber | integer(int64) | false | none | 成员数量 | |
»»» lastTriggerTime | string | false | none | 最近触发时间 | |
»»» contactSuccessOfPeopl | integer(int64) | false | none | 联系成功人数 | |
»»» completeServiceOfPeopl | integer(int64) | false | none | 完成服务人数 | |
»»» effectiveCommunicationOfPeopl | integer(int64) | false | none | 有效沟通人数 | |
»»» invitationSuccessfulOfPeopl | integer(int64) | false | none | 预约成功人数 | |
»»» status | string | false | none | 状态 | |
»»» taskCount | integer(int64) | false | none | 子任务数量,及批次 | |
» page | RespPage | false | none | none | |
»» current | integer(int64) | false | none | none | |
»» size | integer(int64) | false | none | none | |
»» total | integer(int64) | false | none | none | |
» summary | object | false | none | none |
属性 | 值 |
---|---|
status | DRAFT |
status | EXECUTION |
status | TERMINATION |
status | COMPLETE |
PUT /api/v1/marketing-notice/
Body 请求参数
{
"options": "DRAFT",
"data": {
"name": "string",
"groupId": 0,
"description": "string",
"startTime": "string",
"endTime": "string",
"replyStrategy": "CONSULTANT_CONTINUE_AFTER_REPLY",
"replyDelay": 0,
"unifiedReply": false,
"segmentSeparator": "string",
"minReplyInterval": 0,
"sceneIds": [
0
],
"monitoringStrategy": [
{
"sceneId": 0,
"strategy": [
"AI_SERVICE_END_UNTIL_RESTART"
]
}
],
"prompt": "string",
"backgroundInfo": "string",
"timeInfo": "string",
"referenceCase": "string",
"timeoutWakeUp": true,
"timeout": 0,
"timeoutPrompt": "string",
"greetings": [
{
"type": "IMAGE"
}
]
}
}
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
body | body | MarketingNoticeInput | 否 | none |
返回示例
200 Response
{
"id": 0,
"groupId": 0,
"createTime": "",
"lastUpdateTime": "",
"name": "",
"description": "",
"startTime": "",
"endTime": "",
"replyStrategy": "",
"replyDelay": 0,
"unifiedReply": false,
"segmentSeparator": "",
"minReplyInterval": 0,
"prompt": "",
"backgroundInfo": "",
"timeInfo": "",
"referenceCase": "",
"timeoutWakeUp": false,
"timeout": 0,
"timeoutPrompt": "",
"monitoringStrategy": [
{
"sceneId": 0,
"strategy": [
""
]
}
],
"status": "",
"greetings": [
{
"type": ""
}
]
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 营销通知版本记录id | |
» groupId | integer(int64) | false | none | 关联的组id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 名称 | |
» description | string | false | none | 描述 | |
» startTime | string | false | none | 任务时间段的开始时间 | |
» endTime | string | false | none | 任务时间段的结束时间 | |
» replyStrategy | string | false | none | 回复策略 | |
» replyDelay | integer | false | none | 回复延迟 | |
» unifiedReply | boolean | false | none | 是否统一回复 | |
» segmentSeparator | string | false | none | 段落分隔符 | |
» minReplyInterval | integer | false | none | 最小回复间隔 | |
» prompt | string | false | none | 提示词 | |
» backgroundInfo | string | false | none | 营销通知背景信息 | |
» timeInfo | string | false | none | 营销通知时间信息 | |
» referenceCase | string | false | none | 营销通知引用案例 | |
» timeoutWakeUp | boolean | false | none | 是否开启超时唤醒 | |
» timeout | integer | false | none | 超时唤醒时间,单位分 | |
» timeoutPrompt | string | false | none | 超时唤醒提示词 | |
» monitoringStrategy | [MonitoringStrategyMo] | false | none | 监控策略 | |
»» sceneId | integer(int64) | false | none | 使用的场景id | |
»» strategy | [string] | false | none | 触发场景后执行的策略 | |
» status | string | false | none | 状态 | |
» greetings | [ConversationalTaskGreetingMo] | false | none | 开场白 | |
»» type | string | true | none | 类型 |
属性 | 值 |
---|---|
replyStrategy | CONSULTANT_CONTINUE_AFTER_REPLY |
replyStrategy | CONSULTANT_NO_FURTHER_REPLY |
replyStrategy | AI_HOSTING_END_AFTER_REPLY |
status | DRAFT |
status | EXECUTION |
status | TERMINATION |
status | COMPLETE |
type | IMAGE |
type | TEXT |
GET /api/v1/marketing-notice/
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
返回示例
200 Response
{
"id": 0,
"groupId": 0,
"createTime": "",
"lastUpdateTime": "",
"name": "",
"description": "",
"startTime": "",
"endTime": "",
"replyStrategy": "",
"replyDelay": 0,
"unifiedReply": false,
"segmentSeparator": "",
"minReplyInterval": 0,
"prompt": "",
"backgroundInfo": "",
"timeInfo": "",
"referenceCase": "",
"timeoutWakeUp": false,
"timeout": 0,
"timeoutPrompt": "",
"monitoringStrategy": [
{
"sceneId": 0,
"strategy": [
""
]
}
],
"status": "",
"greetings": [
{
"type": ""
}
]
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 营销通知版本记录id | |
» groupId | integer(int64) | false | none | 关联的组id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 名称 | |
» description | string | false | none | 描述 | |
» startTime | string | false | none | 任务时间段的开始时间 | |
» endTime | string | false | none | 任务时间段的结束时间 | |
» replyStrategy | string | false | none | 回复策略 | |
» replyDelay | integer | false | none | 回复延迟 | |
» unifiedReply | boolean | false | none | 是否统一回复 | |
» segmentSeparator | string | false | none | 段落分隔符 | |
» minReplyInterval | integer | false | none | 最小回复间隔 | |
» prompt | string | false | none | 提示词 | |
» backgroundInfo | string | false | none | 营销通知背景信息 | |
» timeInfo | string | false | none | 营销通知时间信息 | |
» referenceCase | string | false | none | 营销通知引用案例 | |
» timeoutWakeUp | boolean | false | none | 是否开启超时唤醒 | |
» timeout | integer | false | none | 超时唤醒时间,单位分 | |
» timeoutPrompt | string | false | none | 超时唤醒提示词 | |
» monitoringStrategy | [MonitoringStrategyMo] | false | none | 监控策略 | |
»» sceneId | integer(int64) | false | none | 使用的场景id | |
»» strategy | [string] | false | none | 触发场景后执行的策略 | |
» status | string | false | none | 状态 | |
» greetings | [ConversationalTaskGreetingMo] | false | none | 开场白 | |
»» type | string | true | none | 类型 |
属性 | 值 |
---|---|
replyStrategy | CONSULTANT_CONTINUE_AFTER_REPLY |
replyStrategy | CONSULTANT_NO_FURTHER_REPLY |
replyStrategy | AI_HOSTING_END_AFTER_REPLY |
status | DRAFT |
status | EXECUTION |
status | TERMINATION |
status | COMPLETE |
type | IMAGE |
type | TEXT |
DELETE /api/v1/marketing-notice/
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
返回示例
200 Response
{}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
GET /api/v1/marketing-notice/members/template
返回示例
200 Response
{}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
POST /api/v1/marketing-notice/{id}/task
Body 请求参数
{
"name": "string",
"startTime": "string",
"fileIds": [
0
]
}
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
body | body | ConversationalTaskInput | 否 | none |
返回示例
200 Response
{
"id": 0,
"createTime": "",
"lastUpdateTime": "",
"name": "",
"status": "",
"totalMember": 0,
"startDate": "",
"startTime": ""
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 任务id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 名称 | |
» status | string | false | none | 状态 | |
» totalMember | integer | false | none | 总人数 | |
» startDate | string | false | none | 开始时间 yyyy-MM-dd | |
» startTime | string | false | none | 开始时间 HH:mm |
属性 | 值 |
---|---|
status | NOT_STARTED |
status | EXECUTION |
status | TERMINATING |
status | TERMINATION |
status | COMPLETE |
status | IGNORE |
GET /api/v1/marketing-notice/{id}/task
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
current | query | integer | 否 | 分页字段 当前页,从 0 开始 |
size | query | integer | 否 | 分页字段 页长度 |
orderBy | query | array[string] | 否 | 排序字段名称 |
orderDirection | query | string | 否 | 排序方式 |
orderNullHandling | query | string | 否 | 排序空值处理 |
keyWord | query | string | 否 | 搜索关键字 |
current: 分页字段 当前页,从 0 开始
默认为空,不分页
orderDirection: 排序方式
ASC :ASC
DESC :DESC
orderNullHandling: 排序空值处理
NATIVE :Lets the data store decide what to do with nulls.
NULLS_FIRST :A hint to the used data store to order entries with null values before non null entries.
NULLS_LAST :A hint to the used data store to order entries with null values after non null entries.
属性 | 值 |
---|---|
orderDirection | ASC |
orderDirection | DESC |
orderNullHandling | NATIVE |
orderNullHandling | NULLS_FIRST |
orderNullHandling | NULLS_LAST |
返回示例
200 Response
{
"content": [
{
"": {}
}
],
"pageable": {
"paged": false,
"unpaged": false,
"pageNumber": 0,
"pageSize": 0,
"offset": 0,
"sort": [
{
"direction": "",
"property": "",
"ignoreCase": false,
"nullHandling": "",
"ascending": false,
"descending": false
}
]
},
"total": 0,
"empty": false,
"number": 0,
"size": 0,
"numberOfElements": 0,
"sort": [
{
"direction": "",
"property": "",
"ignoreCase": false,
"nullHandling": "",
"ascending": false,
"descending": false
}
],
"first": false,
"last": false,
"totalPages": 0,
"totalElements": 0
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | PageMapObject |
GET /api/v1/marketing-notice/task/
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
taskId | path | integer | 是 | none |
返回示例
200 Response
{
"id": 0,
"createTime": "",
"lastUpdateTime": "",
"name": "",
"status": "",
"totalMember": 0,
"startDate": "",
"startTime": ""
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» id | integer(int64) | false | none | 任务id | |
» createTime | string | false | none | 创建时间 | |
» lastUpdateTime | string | false | none | 最后修改时间 | |
» name | string | false | none | 名称 | |
» status | string | false | none | 状态 | |
» totalMember | integer | false | none | 总人数 | |
» startDate | string | false | none | 开始时间 yyyy-MM-dd | |
» startTime | string | false | none | 开始时间 HH:mm |
属性 | 值 |
---|---|
status | NOT_STARTED |
status | EXECUTION |
status | TERMINATING |
status | TERMINATION |
status | COMPLETE |
status | IGNORE |
GET /api/v1/marketing-notice/{id}/task/schema
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
返回示例
200 Response
[
{
"label": "",
"key": "",
"type": ""
}
]
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
anonymous | [TaskListSchemaOutput] | false | none | none | |
» label | string | false | none | 显示名称 | |
» key | string | false | none | 绑定键 | |
» type | string | false | none | 字段类型 |
属性 | 值 |
---|---|
type | STRING |
type | NUMBER |
type | DATE |
PATCH /api/v1/marketing-notice/{id}/termination
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
返回示例
200 Response
{}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
PATCH /api/v1/marketing-notice/{id}/enable
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
返回示例
200 Response
{}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
GET /api/v1/marketing-notice/{id}/report
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
id | path | integer | 是 | none |
返回示例
200 Response
{
"completeServiceOfPeopl": 0,
"completeServiceRate": 0,
"contactSuccessOfPeopl": 0,
"contactSuccessRate": 0,
"effectiveCommunicationOfPeopl": 0,
"effectiveCommunicationRate": 0,
"invitationSuccessfulOfPeopl": 0,
"invitationSuccessfulRate": 0,
"plannedNumberOfPeopl": 0,
"sceneStatistics": [
{
"id": 0,
"name": "",
"number": 0
}
]
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» completeServiceOfPeopl | integer(int64) | false | none | 完成服务人数 | |
» completeServiceRate | number | false | none | 完成服务率 | |
» contactSuccessOfPeopl | integer(int64) | false | none | 联系成功人数 | |
» contactSuccessRate | number | false | none | 联系成功率 | |
» effectiveCommunicationOfPeopl | integer(int64) | false | none | 有效沟通人数 | |
» effectiveCommunicationRate | number | false | none | 有效沟通率 | |
» invitationSuccessfulOfPeopl | integer(int64) | false | none | 邀约成功人数 | |
» invitationSuccessfulRate | number | false | none | 邀约成功率 | |
» plannedNumberOfPeopl | integer(int64) | false | none | 计划人数 | |
» sceneStatistics | [SceneStatisticOutput] | false | none | none | |
»» id | integer(int64) | false | none | 场景id | |
»» name | string | false | none | 场景名称 | |
»» number | integer(int64) | false | none | 场景值 |
GET /api/v1/marketing-notice/task/{taskId}/members
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
taskId | path | integer | 是 | none |
current | query | integer | 否 | 分页字段 当前页,从 0 开始 |
size | query | integer | 否 | 分页字段 页长度 |
orderBy | query | array[string] | 否 | 排序字段名称 |
orderDirection | query | string | 否 | 排序方式 |
orderNullHandling | query | string | 否 | 排序空值处理 |
keyWord | query | string | 否 | 搜索关键字 |
status | query | string | 否 | 状态 |
sceneIds | query | string | 否 | 场景 |
moodValue | query | string | 否 | 心情值 |
current: 分页字段 当前页,从 0 开始
默认为空,不分页
orderDirection: 排序方式
ASC :ASC
DESC :DESC
orderNullHandling: 排序空值处理
NATIVE :Lets the data store decide what to do with nulls.
NULLS_FIRST :A hint to the used data store to order entries with null values before non null entries.
NULLS_LAST :A hint to the used data store to order entries with null values after non null entries.
status: 状态
NOT_REACHED :未触达
IN_SERVICE :服务中
TERMINATE_SERVICE :终止服务
CUSTOMER_SERVICE_INTERVENES :客服介入
COMPLETE_SERVICE :完成服务
IGNORE :忽略
TIMEOUT_COMPLETE_SERVICE :超时完成
属性 | 值 |
---|---|
orderDirection | ASC |
orderDirection | DESC |
orderNullHandling | NATIVE |
orderNullHandling | NULLS_FIRST |
orderNullHandling | NULLS_LAST |
status | NOT_REACHED |
status | IN_SERVICE |
status | TERMINATE_SERVICE |
status | CUSTOMER_SERVICE_INTERVENES |
status | COMPLETE_SERVICE |
status | IGNORE |
status | TIMEOUT_COMPLETE_SERVICE |
返回示例
200 Response
{
"content": [
{}
],
"pageable": {
"paged": false,
"unpaged": false,
"pageNumber": 0,
"pageSize": 0,
"offset": 0,
"sort": [
{
"direction": "",
"property": "",
"ignoreCase": false,
"nullHandling": "",
"ascending": false,
"descending": false
}
]
},
"total": 0,
"empty": false,
"number": 0,
"size": 0,
"numberOfElements": 0,
"sort": [
{
"direction": "",
"property": "",
"ignoreCase": false,
"nullHandling": "",
"ascending": false,
"descending": false
}
],
"first": false,
"last": false,
"totalPages": 0,
"totalElements": 0
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» content | [object] | false | none | none | |
» pageable | Pageable | false | none | none | |
»» paged | boolean | false | none | Returns whether the current{@link Pageable} contains pagination information. | |
»» unpaged | boolean | false | none | Returns whether the current{@link Pageable} does not contain pagination information. | |
»» pageNumber | integer | false | none | Returns the page to be returned. | |
»» pageSize | integer | false | none | Returns the number of items to be returned. | |
»» offset | integer(int64) | false | none | Returns the offset to be taken according to the underlying page and page size. | |
»» sort | [Sort] | false | none | Returns the sorting parameters. | |
»»» direction | string | false | none | none | |
»»» property | string | false | none | none | |
»»» ignoreCase | boolean | false | none | none | |
»»» nullHandling | string | false | none | none | |
»»» ascending | boolean | false | none | Returns whether sorting for this property shall be ascending. | |
»»» descending | boolean | false | none | Returns whether sorting for this property shall be descending. | |
» total | integer(int64) | false | none | none | |
» empty | boolean | false | none | Returns whether the current{@link Streamable} is empty. | |
» number | integer | false | none | none | |
» size | integer | false | none | none | |
» numberOfElements | integer | false | none | none | |
» sort | [Sort] | false | none | none | |
»» direction | string | false | none | none | |
»» property | string | false | none | none | |
»» ignoreCase | boolean | false | none | none | |
»» nullHandling | string | false | none | none | |
»» ascending | boolean | false | none | Returns whether sorting for this property shall be ascending. | |
»» descending | boolean | false | none | Returns whether sorting for this property shall be descending. | |
» first | boolean | false | none | none | |
» last | boolean | false | none | none | |
» totalPages | integer | false | none | none | |
» totalElements | integer(int64) | false | none | none |
属性 | 值 |
---|---|
direction | ASC |
direction | DESC |
nullHandling | NATIVE |
nullHandling | NULLS_FIRST |
nullHandling | NULLS_LAST |
direction | ASC |
direction | DESC |
nullHandling | NATIVE |
nullHandling | NULLS_FIRST |
nullHandling | NULLS_LAST |
GET /api/v1/marketing-notice/task/{taskId}/report
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
taskId | path | integer | 是 | none |
返回示例
200 Response
{
"completeServiceOfPeopl": 0,
"completeServiceRate": 0,
"contactSuccessOfPeopl": 0,
"contactSuccessRate": 0,
"effectiveCommunicationOfPeopl": 0,
"effectiveCommunicationRate": 0,
"invitationSuccessfulOfPeopl": 0,
"invitationSuccessfulRate": 0,
"plannedNumberOfPeopl": 0,
"sceneStatistics": [
{
"id": 0,
"name": "",
"number": 0
}
]
}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» completeServiceOfPeopl | integer(int64) | false | none | 完成服务人数 | |
» completeServiceRate | number | false | none | 完成服务率 | |
» contactSuccessOfPeopl | integer(int64) | false | none | 联系成功人数 | |
» contactSuccessRate | number | false | none | 联系成功率 | |
» effectiveCommunicationOfPeopl | integer(int64) | false | none | 有效沟通人数 | |
» effectiveCommunicationRate | number | false | none | 有效沟通率 | |
» invitationSuccessfulOfPeopl | integer(int64) | false | none | 邀约成功人数 | |
» invitationSuccessfulRate | number | false | none | 邀约成功率 | |
» plannedNumberOfPeopl | integer(int64) | false | none | 计划人数 | |
» sceneStatistics | [SceneStatisticOutput] | false | none | none | |
»» id | integer(int64) | false | none | 场景id | |
»» name | string | false | none | 场景名称 | |
»» number | integer(int64) | false | none | 场景值 |
PATCH /api/v1/marketing-notice/task/{taskId}/enable
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
taskId | path | integer | 是 | none |
返回示例
200 Response
{}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
PATCH /api/v1/marketing-notice/task/{taskId}/termination
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
taskId | path | integer | 是 | none |
返回示例
200 Response
{}
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
GET https://szhl-phiskin.hypers.com.cn/api/v1/members/{id}/daily-reports
参数 | 类型 | 说明 |
---|---|---|
startDate | datetime | yyyy-MM-dd |
endDate | datetime | yyyy-MM-dd |
keyword | String | 报告关键词过滤 |
字段 | 说明 |
---|---|
reportDate | 报告日期 |
moodValues | 心情值 |
scenes | 触发场景 |
content | 日报内容 |
{
"records": [
{
"reportDate": "2025-04-21",
"moodValues": ["满意"],
"scenes": [
"转人工"
],
"content": "用于同意明天到店参加xxx活动"
},
{
"reportDate": "2025-04-10",
"moodValues": [
],
"scenes": [
"完成服务"
]
}
]
}
{
"direction": "ASC",
"property": "string",
"ignoreCase": true,
"nullHandling": "NATIVE",
"ascending": true,
"descending": true
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
direction | string | false | none | none | |
property | string | false | none | none | |
ignoreCase | boolean | false | none | none | |
nullHandling | string | false | none | none | |
ascending | boolean | false | none | Returns whether sorting for this property shall be ascending. | |
descending | boolean | false | none | Returns whether sorting for this property shall be descending. |
属性 | 值 |
---|---|
direction | ASC |
direction | DESC |
nullHandling | NATIVE |
nullHandling | NULLS_FIRST |
nullHandling | NULLS_LAST |
{
"paged": true,
"unpaged": true,
"pageNumber": 0,
"pageSize": 0,
"offset": 0,
"sort": [
{
"direction": "ASC",
"property": "string",
"ignoreCase": true,
"nullHandling": "NATIVE",
"ascending": true,
"descending": true
}
]
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
paged | boolean | false | none | Returns whether the current{@link Pageable} contains pagination information. | |
unpaged | boolean | false | none | Returns whether the current{@link Pageable} does not contain pagination information. | |
pageNumber | integer | false | none | Returns the page to be returned. | |
pageSize | integer | false | none | Returns the number of items to be returned. | |
offset | integer(int64) | false | none | Returns the offset to be taken according to the underlying page and page size. | |
sort | [Sort] | false | none | Returns the sorting parameters. |
{
"id": 0,
"createTime": "string",
"lastUpdateTime": "string",
"name": "string"
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
id | integer(int64) | false | none | 组id | |
createTime | string | false | none | 创建时间 | |
lastUpdateTime | string | false | none | 最后修改时间 | |
name | string | false | none | 名称 |
{
"name": "string"
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
name | string | true | none | 组名称 |
{
"name": "string",
"statisticalMethod": "GRAND_TOTAL",
"prompt": "string",
"externalId": "string",
"planId": 0
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
name | string | true | none | 场景名称 | |
statisticalMethod | string | true | none | 统计方式 | |
prompt | string | true | none | 场景提示词 | |
externalId | string | false | none | 外部id | |
planId | integer(int64) | true | none | 关联计划id |
属性 | 值 |
---|---|
statisticalMethod | GRAND_TOTAL |
statisticalMethod | ONLY |
{
"name": "string",
"prompt": "string",
"externalId": "string"
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
name | string | true | none | 场景名称 | |
prompt | string | true | none | 场景提示词 | |
externalId | string | false | none | 外部id |
{
"sceneId": 0,
"strategy": [
"AI_SERVICE_END_UNTIL_RESTART"
]
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
sceneId | integer(int64) | false | none | 使用的场景id | |
strategy | [string] | false | none | 触发场景后执行的策略 |
{
"type": "IMAGE"
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
type | string | true | none | 类型 |
属性 | 值 |
---|---|
type | IMAGE |
type | TEXT |
{
"sceneId": 0,
"strategy": [
"AI_SERVICE_END_UNTIL_RESTART"
]
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
sceneId | integer(int64) | true | none | 场景id | |
strategy | [string] | true | none | 策略枚举 |
{
"name": "string",
"groupId": 0,
"description": "string",
"startTime": "string",
"endTime": "string",
"replyStrategy": "CONSULTANT_CONTINUE_AFTER_REPLY",
"replyDelay": 0,
"unifiedReply": false,
"segmentSeparator": "string",
"minReplyInterval": 0,
"sceneIds": [
0
],
"monitoringStrategy": [
{
"sceneId": 0,
"strategy": [
"AI_SERVICE_END_UNTIL_RESTART"
]
}
],
"prompt": "string",
"backgroundInfo": "string",
"timeInfo": "string",
"referenceCase": "string",
"timeoutWakeUp": true,
"timeout": 0,
"timeoutPrompt": "string",
"greetings": [
{
"type": "IMAGE"
}
]
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
name | string | true | none | 名称 | |
groupId | integer(int64) | true | none | 组id | |
description | string | false | none | 计划说明 | |
startTime | string | false | none | 开始时间 | |
endTime | string | false | none | 结束时间 | |
replyStrategy | string | false | none | 回复策略 | |
replyDelay | integer | false | none | 回复延时/秒 | |
unifiedReply | boolean | false | none | 对延时期间的顾客消息统一回复 | |
segmentSeparator | string | false | none | 回复多段切分符 | |
minReplyInterval | integer | false | none | 最小连续回复间隔(秒) | |
sceneIds | [integer] | false | none | 关联场景id | |
monitoringStrategy | [ConversationalTaskMonitoringStrategyMo] | false | none | 监控场景 | |
prompt | string | false | none | 提示词 | |
backgroundInfo | string | false | none | 活动背景信息 | |
timeInfo | string | false | none | 活动时间信息 | |
referenceCase | string | false | none | 活动参考案例 | |
timeoutWakeUp | boolean | false | none | 超时唤醒 | |
timeout | integer | false | none | 超时时长(单位分钟) | |
timeoutPrompt | string | false | none | 超时提示词 | |
greetings | [ConversationalTaskGreetingMo] | false | none | 引导语 |
属性 | 值 |
---|---|
replyStrategy | CONSULTANT_CONTINUE_AFTER_REPLY |
replyStrategy | CONSULTANT_NO_FURTHER_REPLY |
replyStrategy | AI_HOSTING_END_AFTER_REPLY |
{
"options": "DRAFT",
"data": {
"name": "string",
"groupId": 0,
"description": "string",
"startTime": "string",
"endTime": "string",
"replyStrategy": "CONSULTANT_CONTINUE_AFTER_REPLY",
"replyDelay": 0,
"unifiedReply": false,
"segmentSeparator": "string",
"minReplyInterval": 0,
"sceneIds": [
0
],
"monitoringStrategy": [
{
"sceneId": 0,
"strategy": [
"AI_SERVICE_END_UNTIL_RESTART"
]
}
],
"prompt": "string",
"backgroundInfo": "string",
"timeInfo": "string",
"referenceCase": "string",
"timeoutWakeUp": true,
"timeout": 0,
"timeoutPrompt": "string",
"greetings": [
{
"type": "IMAGE"
}
]
}
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
options | string | true | none | 营销通知操作选项 | |
data | MarketingNoticeDataInput | true | none | 数据 |
属性 | 值 |
---|---|
options | DRAFT |
options | RELEASE |
{
"id": 0,
"name": "string",
"memberNumber": 0,
"lastTriggerTime": "string",
"contactSuccessOfPeopl": 0,
"completeServiceOfPeopl": 0,
"effectiveCommunicationOfPeopl": 0,
"invitationSuccessfulOfPeopl": 0,
"status": "DRAFT",
"taskCount": 0
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
id | integer(int64) | false | none | 营销通知计划id | |
name | string | false | none | 名称 | |
memberNumber | integer(int64) | false | none | 成员数量 | |
lastTriggerTime | string | false | none | 最近触发时间 | |
contactSuccessOfPeopl | integer(int64) | false | none | 联系成功人数 | |
completeServiceOfPeopl | integer(int64) | false | none | 完成服务人数 | |
effectiveCommunicationOfPeopl | integer(int64) | false | none | 有效沟通人数 | |
invitationSuccessfulOfPeopl | integer(int64) | false | none | 预约成功人数 | |
status | string | false | none | 状态 | |
taskCount | integer(int64) | false | none | 子任务数量,及批次 |
属性 | 值 |
---|---|
status | DRAFT |
status | EXECUTION |
status | TERMINATION |
status | COMPLETE |
{
"groupId": 0,
"groupName": "string",
"plan": [
{
"id": 0,
"name": "string",
"memberNumber": 0,
"lastTriggerTime": "string",
"contactSuccessOfPeopl": 0,
"completeServiceOfPeopl": 0,
"effectiveCommunicationOfPeopl": 0,
"invitationSuccessfulOfPeopl": 0,
"status": "DRAFT",
"taskCount": 0
}
]
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
groupId | integer(int64) | false | none | 组id | |
groupName | string | false | none | 组名称 | |
plan | [MarketingNoticeListOutput] | false | none | 关联计划 |
{
"current": 0,
"size": 0,
"total": 0
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
current | integer(int64) | false | none | none | |
size | integer(int64) | false | none | none | |
total | integer(int64) | false | none | none |
{
"name": "string",
"startTime": "string",
"fileIds": [
0
]
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
name | string | true | none | 任务名称 | |
startTime | string | true | none | 任务开始时间 | |
fileIds | [integer] | true | none | 文件id |
{
"label": "string",
"key": "string",
"type": "STRING"
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
label | string | false | none | 显示名称 | |
key | string | false | none | 绑定键 | |
type | string | false | none | 字段类型 |
属性 | 值 |
---|---|
type | STRING |
type | NUMBER |
type | DATE |
{}
None
{
"key": {}
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
key | key | false | none | none |
{
"content": "new ArrayList<>()",
"pageable": {
"paged": true,
"unpaged": true,
"pageNumber": 0,
"pageSize": 0,
"offset": 0,
"sort": [
{
"direction": "ASC",
"property": "string",
"ignoreCase": true,
"nullHandling": "NATIVE",
"ascending": true,
"descending": true
}
]
},
"total": 0,
"empty": true,
"number": 0,
"size": 0,
"numberOfElements": 0,
"sort": [
{
"direction": "ASC",
"property": "string",
"ignoreCase": true,
"nullHandling": "NATIVE",
"ascending": true,
"descending": true
}
],
"first": true,
"last": true,
"totalPages": 0,
"totalElements": 0
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
content | [MapObject] | false | none | none | |
pageable | Pageable | false | none | none | |
total | integer(int64) | false | none | none | |
empty | boolean | false | none | Returns whether the current{@link Streamable} is empty. | |
number | integer | false | none | none | |
size | integer | false | none | none | |
numberOfElements | integer | false | none | none | |
sort | [Sort] | false | none | none | |
first | boolean | false | none | none | |
last | boolean | false | none | none | |
totalPages | integer | false | none | none | |
totalElements | integer(int64) | false | none | none |
{
"id": 0,
"name": "string",
"number": 0
}
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
id | integer(int64) | false | none | 场景id | |
name | string | false | none | 场景名称 | |
number | integer(int64) | false | none | 场景值 |
##常见错误码
状态码 | 说明 |
---|---|
400 | 请求参数错误 |
401 | 未授权/令牌无效 |
403 | 权限不足 |
404 | 资源不存在 |
500 | 服务器内部错误 |