# 应急群聊拉人 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\ | 是 | 要邀请的用户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\ | 是 | 要移除的用户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} ```