Web

最近更新时间:2024-11-28 15:30:43

我的收藏
本文介绍了 TUIRoomKit 的预定课堂功能,并且详细地说明了如何使用 RoomEngine 的接口来开发对接您的排课系统。
您可以根据 跑通 Demo 的指引,先体验下此功能。

功能体验

预定课堂

1. 在 Classroom 课前预览页面单击预定课堂 > 填写课堂预定信息及设置相关权限。



2. 完成设置后,单击预定课堂



3. 预定成功后在右侧房间列表中会显示预定成功的课堂。




预定房间控制

预定设置

课前预览页单击预定房间后,弹出预定课堂设置框,您可以根据自己的需求设置房间信息,其中可设置内容包含:课堂名称开始时间房间时长时区参与成员安全设置(进房密码)成员管理(全体静音、全体禁画)等。



注意:
TUIRoomKit 的邀请成员列表的成员信息来自于 IM 好友关系 ,需要使用 IM 完成好友关系的添加。您可以通过添加 IM 好友关系的方式来完成用户数据的替换。此时您需要通过 IM REST API 采用添加好友关系的方式得到 IM 好友关系链的数据。若您进行参会成员通讯录的数据导入或添加用户,可参见 添加好友。若您需要移除参会成员,即删除 IM 关系链中的好友关系即可,具体可参见 删除好友

查看详情

点击预定的课堂的详情信息,可以显示预定后的课堂的具体信息。




修改房间信息

点击预定的课堂的修改房间,可以对预定后的课堂的设置进行修改。




分享课堂

您可以通过单击邀请

弹出课堂信息邀请框,通过单击复制课堂号与链接,将预定课堂信息复制到粘贴板分享给其他用户。




注意事项

预定房间的开始时间不能早于当前时间,但没有提前预订的天数限制。
如果需要同时预定不同日期/时间的房间,请分次选择时间并提交。
房间预定成功后,如果房间内没有用户,该房间将从预定开始时间起保留6小时,在此期间您可以随时回到该房间。
预定房间成功后,您将获得房间号和预定信息。完成设置后,点击预定课堂即可。

对接排课系统

针对课堂的管理,我们提供了 服务端 API客户端 API 供您使用,您可以结合服务端 API客户端 API 来实现您的功能。

服务端 API

创建课堂

您可以通过调用 room_engine_http_srv/create_room 接口来创建一个课堂。同时,您可以指定某个用户为老师,并设置课堂名称、课堂开始时间、课堂时长等。

解散课堂

您可以调用 room_engine_http_srv/destroy_room 接口来解散一个课堂。

客户端 API

Classroom 的预约课堂功能依赖 TUIRoomEngine SDK 实现,您可以在 Classroom 工程中使用 roomEngine 对象来对接您的排课系统。

预约课堂

您可以通过调用 scheduleConference 接口来预约课堂。使用该接口预约课堂时,系统会自动将当前角色设置为老师,无法指定其他用户。
const roomEngine = new TUIRoomEngine();
const conferenceListManager = roomEngine.getConferenceListManager();
await conferenceListManager.scheduleConference({
roomId: '12345', // 填入您的房间 Id, 注意房间 Id 要求为字符串类型
scheduleStartTime: 1720004257, // 填入您的会议预定开始时间的时间戳,单位秒。
scheduleEndTime: 1720001317, // 填入您的会议预定结束时间的时间戳,单位秒。
});

取消预约课堂

您可以调用 cancelConference 接口来取消预约课堂。
const roomEngine = new TUIRoomEngine();
const conferenceListManager = roomEngine.getConferenceListManager();
await conferenceListManager.cancelConference({
roomId: '12345', // 填入您要取消的会议 Id,即房间 roomId。
);

修改预约课堂信息

您可以调用 updateConferenceInfo 接口来修改已经预约的课堂的信息。
const roomEngine = new TUIRoomEngine();
const conferenceListManager = roomEngine.getConferenceListManager();
await conferenceListManager.updateConferenceInfo({
roomId: '12345', // 填入您要更新的会议房间 roomId 。
roomName: 'myRoomName', // 填入您更新后的会议名称。
scheduleStartTime: 1720004257, // 填入您更新后的会议预定开始时间的时间戳,单位秒。
scheduleEndTime: 1720001317, // 填入您更新后的会议预定结束时间的时间戳,单位秒。
);

查询预约课堂列表

您可以调用 fetchScheduledConferenceList 接口来查询与您有关的已预约课堂的信息。
const roomEngine = new TUIRoomEngine();
const conferenceListManager = roomEngine.getConferenceListManager();
const conferenceList = [];
let result;
let cursor = '';
let count = 20;
do {
result = await conferenceListManager.fetchScheduledConferenceList({ cursor, count });
conferenceList.push(...result.conferenceList);
cursor = result.cursor;
} while (cursor !== '')

查询已邀请成员列表

您可以调用 fetchAttendeeList 接口来查询已经邀请的成员列表。
const roomEngine = new TUIRoomEngine();
const conferenceListManager = roomEngine.getConferenceListManager();
const attendeeList = [];
let result;
let cursor = '';
let totalCount = 0;
let roomId = '12345';
let count = 20;
do {
result = await conferenceListManager.fetchAttendeeList({ roomId, cursor, count });
attendeeList.push(...result.attendeeList);
cursor = result.cursor;
totalCount = result.totalCount;
} while (cursor !== '')

邀请成员加入课堂

您可以调用 addAttendeesByAdmin 接口来添加成员至邀请列表。
const roomEngine = new TUIRoomEngine();
const conferenceListManager = roomEngine.getConferenceListManager();
await conferenceListManager.addAttendeesByAdmin({
roomId: '12345', // 填入您要添加成员的会议 Id ,即房间 roomId 。
userIdList: ['123'], // 填入您要邀请的成员 Id 数组。
});

移除成员

您可以调用 removeAttendeesByAdmin 接口从邀请列表移除成员。
const roomEngine = new TUIRoomEngine();
const conferenceListManager = roomEngine.getConferenceListManager();
await conferenceListManager.removeAttendeesByAdmin({
roomId: '12345', // 填入您要移除成员的会议 Id ,即房间 roomId 。
userIdList: ['123'], // 填入您要移除的成员 Id 数组。
});