Files
xj-platform/health-emergency/API文档-应急群聊拉人.md
T

293 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 应急群聊拉人 API 接口文档(移动端联调)
> 本次新增/变更的接口,Base URL: `{host}/health-emergency/api/emergency`
---
## 1. 搜索专家(专业人员)
> 搜索可邀请的专家列表
**GET** `/health-emergency/api/emergency/order/searchExpert`
| 参数 | 类型 | 必填 | 说明 |
|------|------|:---:|------|
| realname | String | 否 | 姓名,模糊搜索 |
| centerId | String | 否 | 应急中心ID |
| excludeSessionId | String | 否 | 群组ID,用于排除已在群中的人 |
| pageNo | Integer | 否 | 页码,默认1 |
| pageSize | Integer | 否 | 每页条数,默认10 |
**Response**:
```json
{
"success": true,
"result": {
"records": [
{
"userId": "xxx",
"realname": "张医生",
"avatar": "https://...",
"type": "6",
"centerId": "xxx",
"post": "主任医师",
"school": "北京大学",
"edu": "博士",
"goodAt": "心血管内科",
"deptName": "急诊科"
}
],
"total": 50,
"size": 10,
"current": 1
}
}
```
| 字段 | 说明 |
|------|------|
| userId | 用户ID,邀请时传入 memberList |
| realname | 姓名 |
| avatar | 头像 |
| type | 类型,"6"=专业人员 |
| centerId | 应急中心ID |
| post | 职称 |
| school | 毕业院校 |
| edu | 学历 |
| goodAt | 擅长领域 |
| deptName | 科室 |
---
## 2. 搜索员工
> 搜索可邀请的员工列表
**GET** `/health-emergency/api/emergency/order/searchEmployee`
| 参数 | 类型 | 必填 | 说明 |
|------|------|:---:|------|
| realname | String | 否 | 姓名,模糊搜索 |
| orgCode | String | 否 | 部门编码 |
| workNo | String | 否 | 工号 |
| phone | String | 否 | 手机号 |
| excludeSessionId | String | 否 | 群组ID,用于排除已在群中的人 |
| pageNo | Integer | 否 | 页码,默认1 |
| pageSize | Integer | 否 | 每页条数,默认10 |
**Response**:
```json
{
"success": true,
"result": {
"records": [
{
"userId": "xxx",
"realname": "张三",
"avatar": "https://...",
"orgCode": "650000001001",
"orgName": "新疆油田公司",
"deptName": "安全环保部",
"phone": "13800000000",
"workNo": "A00123"
}
],
"total": 200,
"size": 10,
"current": 1
}
}
```
| 字段 | 说明 |
|------|------|
| userId | 用户ID,邀请时传入 memberList |
| realname | 姓名 |
| avatar | 头像 |
| orgCode | 部门编码 |
| orgName | 单位名称(二级单位) |
| deptName | 部门名称 |
| phone | 手机号 |
| workNo | 工号 |
---
## 3. 邀请进群
> 拉专家或员工加入应急群聊
**POST** `/health-emergency/api/emergency/addGroupUser`
**Request Body** (JSON):
```json
{
"groupId": "1907659384834752513",
"memberList": ["userId1", "userId2"],
"memberType": 1
}
```
| 参数 | 类型 | 必填 | 说明 |
|------|------|:---:|------|
| groupId | String | 是 | 群组ID(即 `createGroupMag` 返回的 `groupId` |
| memberList | List\<String\> | 是 | 要邀请的用户ID列表,最多100个 |
| memberType | Integer | 否 | `0`=专家/专业人员, `1`=员工,**默认0** |
**Response**:
```json
{
"success": true,
"message": "",
"result": true
}
```
> **注意**: 已在群中的人员会自动跳过,不会报错。所有选中的人都在群中时返回失败。
---
## 4. 移除群成员
> 将成员移出应急群聊
**POST** `/health-emergency/api/emergency/removeGroupUser`
**Request Body** (JSON):
```json
{
"groupId": "1907659384834752513",
"memberList": ["userId1"]
}
```
| 参数 | 类型 | 必填 | 说明 |
|------|------|:---:|------|
| groupId | String | 是 | 群组ID |
| memberList | List\<String\> | 是 | 要移除的用户ID列表 |
**Response**:
```json
{
"success": true,
"message": "",
"result": true
}
```
> **注意**: 只能移除后续拉入的协助人员,不能移除发起人和初始操作/专业人员。
---
## 5. 群成员列表
> 获取当前群成员及可邀请的专业人员
**GET** `/health-emergency/api/emergency/order/getGroupMemberList`
| 参数 | 类型 | 必填 | 说明 |
|------|------|:---:|------|
| sessionId | String | 是 | 群组ID |
**Response**:
```json
{
"success": true,
"result": [
{
"orderId": "1765357845598556162",
"userId": "发起人id",
"userName": "李四",
"avatar": "https://...",
"isGroupMember": 1,
"memberType": -1
},
{
"orderId": "1765357845598556162",
"userId": "操作人员id",
"userName": "王五",
"avatar": "https://...",
"isGroupMember": 1,
"memberType": 0
},
{
"orderId": "1765357845598556162",
"userId": "专业人员id",
"userName": "张医生",
"avatar": "https://...",
"isGroupMember": 1,
"memberType": 1
},
{
"orderId": "1765357845598556162",
"userId": "员工id",
"userName": "张三",
"avatar": "https://...",
"isGroupMember": 1,
"memberType": 2
},
{
"orderId": "1765357845598556162",
"userId": "其他专业人id",
"userName": "赵医生",
"avatar": "https://...",
"isGroupMember": 0,
"memberType": 1
}
]
}
```
| 字段 | 说明 |
|------|------|
| orderId | 应急单ID |
| userId | 用户ID |
| userName | 姓名 |
| avatar | 头像 |
| isGroupMember | `1`=在群中, `0`=可邀请 |
| memberType | `-1`=发起人, `0`=操作人员, `1`=专业人员, `2`=员工 |
---
## memberType 字典
| 值 | 含义 | 场景 |
|:---:|------|------|
| -1 | 发起人 | 创建应急的人 |
| 0 | 操作人员 | 应急中心调度员 |
| 1 | 专业人员 | 专家/医生 |
| 2 | 员工 | 普通员工(被拉入群) |
---
## 典型调用流程
```
1. 查看当前成员
GET /health-emergency/api/emergency/order/getGroupMemberList?sessionId={groupId}
→ 展示群成员列表(按 memberType 区分标签展示)
→ isGroupMember=0 的显示为"可邀请"
2. 搜索要拉的人
GET /health-emergency/api/emergency/order/searchExpert?realname=张&excludeSessionId={groupId}
GET /health-emergency/api/emergency/order/searchEmployee?realname=李&excludeSessionId={groupId}
→ 展示搜索结果,用户勾选
3. 确认邀请
POST /health-emergency/api/emergency/addGroupUser
{"groupId": "{groupId}", "memberList": ["id1","id2"], "memberType": 0}
4. 移除成员
POST /health-emergency/api/emergency/removeGroupUser
{"groupId": "{groupId}", "memberList": ["id1"]}
5. 刷新成员列表
GET /health-emergency/api/emergency/order/getGroupMemberList?sessionId={groupId}
```