416 lines
14 KiB
Markdown
416 lines
14 KiB
Markdown
# 会议管理接口文档
|
||
|
||
## 接口列表
|
||
|
||
### 1. 创建会议
|
||
|
||
**接口地址:** `POST /meeting/create_meeting`
|
||
|
||
**请求参数:**
|
||
|
||
```json
|
||
{
|
||
"meetingID": "string", // 会议ID(选填,不填则自动生成)
|
||
"subject": "string", // 会议主题(必填)
|
||
"coverURL": "string", // 封面URL(选填)
|
||
"scheduledTime": 1234567890000, // 预约时间戳(毫秒,必填)
|
||
"description": "string", // 会议描述(选填)
|
||
"duration": 60, // 会议时长(分钟,选填)
|
||
"estimatedCount": 100, // 会议预估人数(选填)
|
||
"enableMic": true, // 是否开启连麦(选填,默认false)
|
||
"enableComment": true, // 是否开启评论(选填,默认false)
|
||
"anchorUserIDs": ["user1", "user2"], // 主播用户ID列表(多选,选填)
|
||
"ex": "string" // 扩展字段(选填)
|
||
}
|
||
```
|
||
|
||
**响应参数:**
|
||
|
||
```json
|
||
{
|
||
"errCode": 0,
|
||
"errMsg": "",
|
||
"errDlt": "",
|
||
"data": {
|
||
"meetingInfo": {
|
||
"meetingID": "string", // 会议ID
|
||
"subject": "string", // 会议主题
|
||
"coverURL": "string", // 封面URL
|
||
"scheduledTime": 1234567890000, // 预约时间戳(毫秒)
|
||
"status": 1, // 会议状态:1-已预约,2-进行中,3-已结束,4-已取消
|
||
"creatorUserID": "string", // 创建者用户ID
|
||
"description": "string", // 会议描述
|
||
"duration": 60, // 会议时长(分钟)
|
||
"estimatedCount": 100, // 会议预估人数
|
||
"enableMic": true, // 是否开启连麦
|
||
"enableComment": true, // 是否开启评论
|
||
"anchorUserIDs": ["user1", "user2"], // 主播用户ID列表(多选)
|
||
"anchorUsers": [ // 主播用户信息列表
|
||
{
|
||
"userID": "user1",
|
||
"nickname": "主播1",
|
||
"faceURL": "https://example.com/avatar1.jpg"
|
||
},
|
||
{
|
||
"userID": "user2",
|
||
"nickname": "主播2",
|
||
"faceURL": "https://example.com/avatar2.jpg"
|
||
}
|
||
],
|
||
"createTime": 1234567890000, // 创建时间戳(毫秒)
|
||
"updateTime": 1234567890000, // 更新时间戳(毫秒)
|
||
"ex": "string", // 扩展字段
|
||
"groupID": "string" // 关联的群聊ID
|
||
},
|
||
"groupID": "string" // 创建的群聊ID
|
||
}
|
||
}
|
||
```
|
||
|
||
**说明:**
|
||
- 创建会议时会自动创建一个群聊,群聊名称为"群聊-[会议主题]"
|
||
- 会议封面会作为群聊头像
|
||
- 如果有主播列表,第一个主播自动成为群主,其他主播成为管理员
|
||
- 如果没有主播列表,创建者自动成为群主
|
||
|
||
---
|
||
|
||
### 2. 更新会议
|
||
|
||
**接口地址:** `POST /meeting/update_meeting`
|
||
|
||
**请求参数:**
|
||
|
||
```json
|
||
{
|
||
"meetingID": "string", // 会议ID(必填)
|
||
"subject": "string", // 会议主题(选填)
|
||
"coverURL": "string", // 封面URL(选填)
|
||
"scheduledTime": 1234567890000, // 预约时间戳(毫秒,选填)
|
||
"status": 2, // 会议状态:1-已预约,2-进行中,3-已结束,4-已取消(选填)
|
||
"description": "string", // 会议描述(选填)
|
||
"duration": 60, // 会议时长(分钟,选填)
|
||
"estimatedCount": 100, // 会议预估人数(选填)
|
||
"enableMic": true, // 是否开启连麦(选填,使用指针以区分是否设置)
|
||
"enableComment": true, // 是否开启评论(选填,使用指针以区分是否设置)
|
||
"anchorUserIDs": ["user1", "user2"], // 主播用户ID列表(多选,选填)
|
||
"ex": "string" // 扩展字段(选填)
|
||
}
|
||
```
|
||
|
||
**响应参数:**
|
||
|
||
```json
|
||
{
|
||
"errCode": 0,
|
||
"errMsg": "",
|
||
"errDlt": "",
|
||
"data": {
|
||
"meetingInfo": {
|
||
"meetingID": "string", // 会议ID
|
||
"subject": "string", // 会议主题
|
||
"coverURL": "string", // 封面URL
|
||
"scheduledTime": 1234567890000, // 预约时间戳(毫秒)
|
||
"status": 2, // 会议状态:1-已预约,2-进行中,3-已结束,4-已取消
|
||
"creatorUserID": "string", // 创建者用户ID
|
||
"description": "string", // 会议描述
|
||
"duration": 60, // 会议时长(分钟)
|
||
"estimatedCount": 100, // 会议预估人数
|
||
"enableMic": true, // 是否开启连麦
|
||
"enableComment": true, // 是否开启评论
|
||
"anchorUserIDs": ["user1", "user2"], // 主播用户ID列表(多选)
|
||
"anchorUsers": [ // 主播用户信息列表
|
||
{
|
||
"userID": "user1",
|
||
"nickname": "主播1",
|
||
"faceURL": "https://example.com/avatar1.jpg"
|
||
},
|
||
{
|
||
"userID": "user2",
|
||
"nickname": "主播2",
|
||
"faceURL": "https://example.com/avatar2.jpg"
|
||
}
|
||
],
|
||
"createTime": 1234567890000, // 创建时间戳(毫秒)
|
||
"updateTime": 1234567890000, // 更新时间戳(毫秒)
|
||
"ex": "string", // 扩展字段
|
||
"groupID": "string" // 关联的群聊ID
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
**说明:**
|
||
- 可以单独更新任意字段,只传需要更新的字段即可
|
||
- 更新主题时会同步更新群聊名称
|
||
- 更新封面时会同步更新群聊头像
|
||
- 更新主播列表时,第一个主播会成为群主,其他主播会成为管理员
|
||
- 只有创建者可以更新会议
|
||
|
||
---
|
||
|
||
### 3. 获取会议列表
|
||
|
||
**接口地址:** `POST /meeting/get_meetings`
|
||
|
||
**请求参数:**
|
||
|
||
```json
|
||
{
|
||
"creatorUserID": "string", // 创建者用户ID(选填)
|
||
"status": 1, // 会议状态(选填):1-已预约,2-进行中,3-已结束,4-已取消
|
||
"keyword": "string", // 搜索关键词(选填,搜索主题和描述)
|
||
"startTime": 1234567890000, // 开始时间戳(毫秒,选填)
|
||
"endTime": 1234567890000, // 结束时间戳(毫秒,选填)
|
||
"pagination": {
|
||
"pageNumber": 1, // 页码,从1开始(选填,默认1)
|
||
"showNumber": 20 // 每页数量(选填,默认20)
|
||
}
|
||
}
|
||
```
|
||
|
||
**响应参数:**
|
||
|
||
```json
|
||
{
|
||
"errCode": 0,
|
||
"errMsg": "",
|
||
"errDlt": "",
|
||
"data": {
|
||
"total": 100, // 总数
|
||
"meetings": [
|
||
{
|
||
"meetingID": "string", // 会议ID
|
||
"subject": "string", // 会议主题
|
||
"coverURL": "string", // 封面URL
|
||
"scheduledTime": 1234567890000, // 预约时间戳(毫秒)
|
||
"status": 1, // 会议状态:1-已预约,2-进行中,3-已结束,4-已取消
|
||
"creatorUserID": "string", // 创建者用户ID
|
||
"description": "string", // 会议描述
|
||
"duration": 60, // 会议时长(分钟)
|
||
"estimatedCount": 100, // 会议预估人数
|
||
"enableMic": true, // 是否开启连麦
|
||
"enableComment": true, // 是否开启评论
|
||
"anchorUserIDs": ["user1", "user2"], // 主播用户ID列表(多选)
|
||
"anchorUsers": [ // 主播用户信息列表
|
||
{
|
||
"userID": "user1",
|
||
"nickname": "主播1",
|
||
"faceURL": "https://example.com/avatar1.jpg"
|
||
},
|
||
{
|
||
"userID": "user2",
|
||
"nickname": "主播2",
|
||
"faceURL": "https://example.com/avatar2.jpg"
|
||
}
|
||
],
|
||
"createTime": 1234567890000, // 创建时间戳(毫秒)
|
||
"updateTime": 1234567890000, // 更新时间戳(毫秒)
|
||
"ex": "string", // 扩展字段
|
||
"groupID": "string" // 关联的群聊ID
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
**说明:**
|
||
- 支持多种查询条件,可以组合使用
|
||
- 查询优先级:creatorUserID > status > keyword > startTime/endTime > 全部
|
||
- 支持分页查询
|
||
- 返回的会议信息中包含主播的完整用户信息(用户ID、昵称、头像等)
|
||
|
||
---
|
||
|
||
### 4. 删除会议
|
||
|
||
**接口地址:** `POST /meeting/delete_meeting`
|
||
|
||
**请求参数:**
|
||
|
||
```json
|
||
{
|
||
"meetingID": "string" // 会议ID(必填)
|
||
}
|
||
```
|
||
|
||
**响应参数:**
|
||
|
||
```json
|
||
{
|
||
"errCode": 0,
|
||
"errMsg": "",
|
||
"errDlt": "",
|
||
"data": {}
|
||
}
|
||
```
|
||
|
||
**说明:**
|
||
- 只有创建者可以删除会议
|
||
- 删除会议不会删除关联的群聊
|
||
|
||
---
|
||
|
||
## 会议状态说明
|
||
|
||
- `1` - 已预约:会议已创建,等待开始
|
||
- `2` - 进行中:会议正在进行
|
||
- `3` - 已结束:会议已结束(用户端不可见)
|
||
- `4` - 已取消:会议已取消(用户端不可见)
|
||
|
||
**注意:** 用户端接口只能查看状态1(已预约)和2(进行中)的会议,状态3(已结束)和4(已取消)的会议对用户端不可见。
|
||
|
||
---
|
||
|
||
## 通用响应格式
|
||
|
||
所有接口都遵循统一的响应格式:
|
||
|
||
```json
|
||
{
|
||
"errCode": 0, // 错误码,0表示成功
|
||
"errMsg": "", // 错误消息
|
||
"errDlt": "", // 错误详情
|
||
"data": {} // 响应数据
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 用户端接口
|
||
|
||
### 5. 获取会议信息(用户端)
|
||
|
||
**接口地址:** `POST /meeting/get_meeting`
|
||
|
||
**请求参数:**
|
||
|
||
```json
|
||
{
|
||
"meetingID": "string" // 会议ID(必填)
|
||
}
|
||
```
|
||
|
||
**响应参数:**
|
||
|
||
```json
|
||
{
|
||
"errCode": 0,
|
||
"errMsg": "",
|
||
"errDlt": "",
|
||
"data": {
|
||
"meetingInfo": {
|
||
"meetingID": "string", // 会议ID
|
||
"subject": "string", // 会议主题
|
||
"coverURL": "string", // 封面URL
|
||
"scheduledTime": 1234567890000, // 预约时间戳(毫秒)
|
||
"status": 1, // 会议状态:1-已预约,2-进行中
|
||
"description": "string", // 会议描述
|
||
"duration": 60, // 会议时长(分钟)
|
||
"enableMic": true, // 是否开启连麦
|
||
"enableComment": true, // 是否开启评论
|
||
"anchorUsers": [ // 主播用户信息列表
|
||
{
|
||
"userID": "user1",
|
||
"nickname": "主播1",
|
||
"faceURL": "https://example.com/avatar1.jpg"
|
||
},
|
||
{
|
||
"userID": "user2",
|
||
"nickname": "主播2",
|
||
"faceURL": "https://example.com/avatar2.jpg"
|
||
}
|
||
],
|
||
"groupID": "string" // 关联的群聊ID
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
**说明:**
|
||
- 用户端接口只显示状态为1(已预约)和2(进行中)的会议
|
||
- 如果会议状态为3(已结束)或4(已取消),将返回错误
|
||
- 用户端接口不返回管理字段(创建者ID、扩展字段、创建时间、更新时间等)
|
||
- 返回的主播信息包含用户ID、昵称、头像等完整用户信息
|
||
|
||
---
|
||
|
||
### 6. 获取会议列表(用户端)
|
||
|
||
**接口地址:** `POST /meeting/get_meetings_public`
|
||
|
||
**请求参数:**
|
||
|
||
```json
|
||
{
|
||
"status": 1, // 会议状态(选填):1-已预约,2-进行中(只能查询这两个状态)
|
||
"keyword": "string", // 搜索关键词(选填,搜索主题和描述)
|
||
"startTime": 1234567890000, // 开始时间戳(毫秒,选填)
|
||
"endTime": 1234567890000, // 结束时间戳(毫秒,选填)
|
||
"pagination": {
|
||
"pageNumber": 1, // 页码,从1开始(选填,默认1)
|
||
"showNumber": 20 // 每页数量(选填,默认20)
|
||
}
|
||
}
|
||
```
|
||
|
||
**响应参数:**
|
||
|
||
```json
|
||
{
|
||
"errCode": 0,
|
||
"errMsg": "",
|
||
"errDlt": "",
|
||
"data": {
|
||
"total": 100, // 总数(只包含状态1和2的会议)
|
||
"meetings": [
|
||
{
|
||
"meetingID": "string", // 会议ID
|
||
"subject": "string", // 会议主题
|
||
"coverURL": "string", // 封面URL
|
||
"scheduledTime": 1234567890000, // 预约时间戳(毫秒)
|
||
"status": 1, // 会议状态:1-已预约,2-进行中
|
||
"description": "string", // 会议描述
|
||
"duration": 60, // 会议时长(分钟)
|
||
"enableMic": true, // 是否开启连麦
|
||
"enableComment": true, // 是否开启评论
|
||
"anchorUsers": [ // 主播用户信息列表
|
||
{
|
||
"userID": "user1",
|
||
"nickname": "主播1",
|
||
"faceURL": "https://example.com/avatar1.jpg"
|
||
},
|
||
{
|
||
"userID": "user2",
|
||
"nickname": "主播2",
|
||
"faceURL": "https://example.com/avatar2.jpg"
|
||
}
|
||
],
|
||
"groupID": "string" // 关联的群聊ID
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
**说明:**
|
||
- 用户端接口只显示状态为1(已预约)和2(进行中)的会议
|
||
- 如果指定status参数,只能传入1或2,传入其他值将返回错误
|
||
- 如果不指定status,查询结果会自动过滤,只返回状态1和2的会议
|
||
- 用户端接口不支持按创建者查询
|
||
- 用户端接口不返回管理字段(创建者ID、扩展字段、创建时间、更新时间等)
|
||
- 返回的主播信息包含用户ID、昵称、头像等完整用户信息
|
||
|
||
---
|
||
|
||
## 注意事项
|
||
|
||
1. 所有接口都需要在请求头中携带 `token` 进行身份验证
|
||
2. 创建和更新会议时,预约时间不能早于当前时间
|
||
3. 创建会议时会自动创建关联的群聊,群聊名称为"群聊-[会议主题]"
|
||
4. 更新会议主题或封面时,会同步更新关联群聊的名称或头像
|
||
5. 只有会议创建者可以更新和删除会议
|
||
6. 用户端接口只提供查看功能,不包含创建、更新、删除等管理功能
|
||
7. 用户端接口返回的数据已过滤管理字段(创建者ID、扩展字段、创建时间、更新时间等)
|
||
8. 用户端接口只显示状态为1(已预约)和2(进行中)的会议,状态3(已结束)和4(已取消)的会议对用户端不可见
|