|
@@ -288,7 +288,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
param.put("clientType", SysUserType.TEACHER.getCode());
|
|
|
}
|
|
|
Page<ImLiveBroadcastRoomVo> pageInfo = PageUtil.concatTimePage(param, "startTime", "endTime");
|
|
|
- pageInfo.setDesc("a.created_time_");
|
|
|
+ // pageInfo.setDesc("a.created_time_");
|
|
|
param.put("tenantId", TenantContextHolder.getTenantId());
|
|
|
IPage<ImLiveBroadcastRoomVo> page = baseMapper.queryPage(pageInfo, param);
|
|
|
|
|
@@ -662,16 +662,19 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
pluginService.sendChatRoomMessage(message);
|
|
|
log.info("roomDestroy>>>> FORCED_OFFLINE {}", JSONObject.toJSONString(message));
|
|
|
|
|
|
+ //销毁直播间
|
|
|
+ pluginService.chatRoomDestroy(roomUid);
|
|
|
+
|
|
|
+ // 录制任务Id
|
|
|
if (room.getServiceProvider().equals(TencentCloudLivePlugin.PLUGIN_NAME)) {
|
|
|
|
|
|
- // 录制任务Id
|
|
|
List<String> collect = imLiveRoomVideoService.lambdaQuery()
|
|
|
.eq(ImLiveRoomVideo::getRoomUid, roomUid).list().stream()
|
|
|
.map(ImLiveRoomVideo::getRecordId).distinct().collect(Collectors.toList());
|
|
|
|
|
|
for (String taskId : collect) {
|
|
|
- //销毁直播间
|
|
|
- pluginService.chatRoomDestroy(taskId);
|
|
|
+ // 删除录制任务
|
|
|
+ pluginService.rtcRoomRecordStop(taskId);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -682,6 +685,10 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private String getStreamId(String roomUid, Integer speakerId) {
|
|
|
+ return roomUid + "_" + speakerId;
|
|
|
+ }
|
|
|
+
|
|
|
//获取该直播间所有数据写入数据库-并清理缓存
|
|
|
private void insertAndCleanLiveData(String roomUid, Integer speakerId) {
|
|
|
log.info("insertAndCleanLiveData >>>> roomUid : {}", roomUid);
|
|
@@ -1745,7 +1752,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
sysMessageService.batchSendImGroupMessage(MessageTypeEnum.IM_SHARE_LIVE_URL, sysUser.getId().toString(), "liveRoom?" + roomUid, groupIds.split(","), null,
|
|
|
imLiveBroadcastRoomVo.getTenantName(), imLiveBroadcastRoomVo.getRoomTitle(), imLiveBroadcastRoomVo.getSpeakerName(),
|
|
|
DateUtil.format(imLiveBroadcastRoomVo.getLiveStartTime(), DateUtil.CHINESE_DATA_FORMAT_1),
|
|
|
- imLiveBroadcastRoomVo.getLiveRemark(), HttpUtil.getSortUrl(baseApiUrl + "/#/liveClassTransfer?roomUid=" + roomUid));
|
|
|
+ imLiveBroadcastRoomVo.getLiveRemark(), baseApiUrl + "/#/liveClassTransfer?roomUid=" + roomUid);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2032,12 +2039,13 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
LivePluginService pluginService = livePluginContext.getPluginService(
|
|
|
imLiveBroadcastRoom.getServiceProvider());
|
|
|
try {
|
|
|
- TencentWrapper.LiveStreamState liveStreamState = pluginService.liveStreamState(
|
|
|
- imLiveBroadcastRoom.getRoomUid() + imLiveBroadcastRoom.getSpeakerId());
|
|
|
+ TencentWrapper.LiveStreamState liveStreamState = pluginService
|
|
|
+ .liveStreamState(getStreamId(imLiveBroadcastRoom.getRoomUid(),imLiveBroadcastRoom.getSpeakerId()));
|
|
|
if (liveStreamState == null) {
|
|
|
log.error("查询直播间流失败,返回结果为空");
|
|
|
continue;
|
|
|
}
|
|
|
+ log.info("查询直播间流状态:{},roomUid:{}", JSON.toJSONString(liveStreamState), imLiveBroadcastRoom.getRoomUid());
|
|
|
if (!"active".equals(liveStreamState.getStreamState())) {
|
|
|
roomDestroy(imLiveBroadcastRoom.getRoomUid());
|
|
|
}
|