|
@@ -16,6 +16,7 @@ import com.microsvc.toolkit.middleware.live.message.LiveRoomMessage;
|
|
|
import com.microsvc.toolkit.middleware.live.message.LiveRoomUser;
|
|
|
import com.microsvc.toolkit.middleware.live.message.RTCRequest;
|
|
|
import com.microsvc.toolkit.middleware.live.message.RTCRoom;
|
|
|
+import com.microsvc.toolkit.middleware.live.message.TencentWrapper;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.auth.api.enums.SysUserType;
|
|
@@ -1987,6 +1988,37 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
liveBroadcastRoomMemberDao.updateLiveRoomStatus(userIds, callbackAfterNewMemberJoin.getGroupId(),liveRoomStatus);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void destroyLiveRoom() {
|
|
|
+ //查询状态是 未开始和已开始 的直播间
|
|
|
+ List<ImLiveBroadcastRoom> list = this.list(Wrappers.<ImLiveBroadcastRoom>lambdaQuery()
|
|
|
+ .in(ImLiveBroadcastRoom::getLiveState, 1)
|
|
|
+ .eq(ImLiveBroadcastRoom::getRoomState, 0));
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (ImLiveBroadcastRoom imLiveBroadcastRoom : list) {
|
|
|
+
|
|
|
+ LivePluginService pluginService = livePluginContext.getPluginService(
|
|
|
+ imLiveBroadcastRoom.getServiceProvider());
|
|
|
+ try {
|
|
|
+ TencentWrapper.LiveStreamState liveStreamState = pluginService.liveStreamState(
|
|
|
+ imLiveBroadcastRoom.getRoomUid() + imLiveBroadcastRoom.getSpeakerId());
|
|
|
+ if (liveStreamState == null) {
|
|
|
+ log.error("查询直播间流失败,返回结果为空");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!"active".equals(liveStreamState.getStreamState())) {
|
|
|
+ roomDestroy(imLiveBroadcastRoom.getRoomUid());
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+
|
|
|
+ log.error("查询直播间流失败", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 查询直播间所有用户信息
|