feat(emergency): 新增急救员建群接口,人员接口返回手机号

- 新增 GET /api/emergency/createGroupMagFirstAider(不发起通话,自动拉关爱/急救员)
- createGroupMag 原始逻辑不受影响,新方法独立实现
- OrderOperator.operatorType 注释同步数据库(新增3/4/5)
- EmergencyProfessionUser/GroupMemberVO 新增 phone 字段
- searchExpert/getGroupMemberList 填充手机号
- API文档-移动端接口.md 同步更新
This commit is contained in:
2026-07-06 17:14:48 +08:00
parent 4cb3411eca
commit fd7fd32c8d
8 changed files with 287 additions and 15 deletions
+36 -11
View File
@@ -39,7 +39,7 @@
"userId": "xxx", "realname": "张医生", "avatar": "https://...",
"type": "6", "centerId": "xxx",
"post": "主任医师", "school": "北京大学", "edu": "博士",
"goodAt": "心血管内科", "deptName": "急诊科"
"goodAt": "心血管内科", "deptName": "急诊科", "phone": "13800000001"
}
],
"total": 50, "size": 10, "current": 1
@@ -58,6 +58,7 @@
| edu | 学历 |
| goodAt | 擅长领域 |
| deptName | 科室 |
| phone | 手机号 |
### 1.2 搜索员工 `GET /order/searchEmployee`
@@ -105,9 +106,21 @@
| latitude | String | 是 | 纬度 |
| type | String | 否 | 类型 |
> 返回 `groupId`(群组ID),作为后续拉人接口的入参。
> 返回 `groupId`(群组ID),作为后续拉人接口的入参。**此接口会发起音视频通话。**
### 1.4 邀请进群 `POST /addGroupUser`
### 1.4 创建群聊-急救员 `GET /createGroupMagFirstAider` 🆕
> 不发起音视频通话,建群后自动拉入关爱联络员和急救员(通过安眼系统查询)。
| 参数 | 类型 | 必填 | 说明 |
|------|------|:---:|------|
| name | String | 是 | 群聊名称 |
| longitude | String | 是 | 经度 |
| latitude | String | 是 | 纬度 |
> 返回结构与 `createGroupMag` 一致(`CreateGroupMagVO`),群成员 = 发起人 + 操作人员 + 专业人员 + 关爱联络员 + 急救员1 + 急救员2。
### 1.5 邀请进群 `POST /addGroupUser`
拉专家或员工加入应急群聊。
@@ -133,7 +146,7 @@
> 已在群中的人员会自动跳过,不会报错。所有选中的人都在群中时返回失败。
### 1.5 移除群成员 `POST /removeGroupUser`
### 1.6 移除群成员 `POST /removeGroupUser`
```json
// Request Body
@@ -152,7 +165,7 @@
> 只能移除后续拉入的协助人员,不能移除发起人和初始操作/专业人员。
### 1.6 群成员列表 `GET /order/getGroupMemberList`
### 1.7 群成员列表 `GET /order/getGroupMemberList`
| 参数 | 类型 | 必填 | 说明 |
|------|------|:---:|------|
@@ -161,11 +174,11 @@
```json
// 响应 result
[
{ "orderId": "...", "userId": "发起人id", "userName": "李四", "avatar": "https://...", "isGroupMember": 1, "memberType": -1 },
{ "orderId": "...", "userId": "操作人员id", "userName": "王五", "avatar": "https://...", "isGroupMember": 1, "memberType": 0 },
{ "orderId": "...", "userId": "专业人员id", "userName": "张医生", "avatar": "https://...", "isGroupMember": 1, "memberType": 1 },
{ "orderId": "...", "userId": "员工id", "userName": "张三", "avatar": "https://...", "isGroupMember": 1, "memberType": 2 },
{ "orderId": "...", "userId": "其他专业人id", "userName": "赵医生", "avatar": "https://...", "isGroupMember": 0, "memberType": 1 }
{ "orderId": "...", "userId": "发起人id", "userName": "李四", "avatar": "https://...", "phone": "13800000001", "isGroupMember": 1, "memberType": -1 },
{ "orderId": "...", "userId": "操作人员id", "userName": "王五", "avatar": "https://...", "phone": "13800000002", "isGroupMember": 1, "memberType": 0 },
{ "orderId": "...", "userId": "专业人员id", "userName": "张医生", "avatar": "https://...", "phone": "13800000003", "isGroupMember": 1, "memberType": 1 },
{ "orderId": "...", "userId": "员工id", "userName": "张三", "avatar": "https://...", "phone": "13800000004", "isGroupMember": 1, "memberType": 2 },
{ "orderId": "...", "userId": "其他专业人id", "userName": "赵医生", "avatar": "https://...", "phone": "13800000005", "isGroupMember": 0, "memberType": 1 }
]
```
@@ -175,10 +188,11 @@
| userId | 用户ID |
| userName | 姓名 |
| avatar | 头像 |
| phone | 手机号 |
| isGroupMember | `1`=在群中, `0`=可邀请 |
| memberType | `-1`=发起人, `0`=操作人员, `1`=专业人员, `2`=员工 |
### 1.7 memberType 字典
### 1.8 memberType 字典
| 值 | 含义 | 场景 |
|:---:|------|------|
@@ -189,10 +203,21 @@
### 典型调用流程
**应急就医(带音视频通话)**
```
1. 创建群聊
GET /health-emergency/api/emergency/createGroupMag?name=xxx&longitude=xxx&latitude=xxx
2. 查看当前成员 → 搜索要拉的人 → 确认邀请 → 移除成员 → 刷新列表
(同下方急救员流程步骤 2-6)
```
**急救员(不发起通话,自动拉关爱/急救员)**
```
1. 创建群聊
GET /health-emergency/api/emergency/createGroupMagFirstAider?name=xxx&longitude=xxx&latitude=xxx
→ 自动拉入:发起人 + 操作人员 + 专业人员 + 关爱联络员 + 急救员1 + 急救员2
2. 查看当前成员
GET /health-emergency/api/emergency/order/getGroupMemberList?sessionId={groupId}
→ 展示群成员列表(按 memberType 区分标签展示)