|
@@ -32,6 +32,7 @@ import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
|
|
|
import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomData;
|
|
|
import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember;
|
|
|
import com.ym.mec.biz.dal.entity.ImLiveRoomBlack;
|
|
|
+import com.ym.mec.biz.dal.entity.ImLiveRoomVideo;
|
|
|
import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
import com.ym.mec.biz.dal.page.LiveRoomGoodsOrderQueryInfo;
|
|
|
import com.ym.mec.biz.dal.vo.*;
|
|
@@ -108,7 +109,8 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
private ImLiveRoomReservationService imLiveRoomReservationService;
|
|
|
@Autowired
|
|
|
private ImLiveRoomBlackService imLiveRoomBlackService;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private ImLiveRoomVideoService imLiveRoomVideoService;
|
|
|
@Autowired
|
|
|
private LivePluginContext livePluginContext;
|
|
|
|
|
@@ -659,8 +661,20 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
LivePluginService pluginService = livePluginContext.getPluginService(room.getServiceProvider());
|
|
|
pluginService.sendChatRoomMessage(message);
|
|
|
log.info("roomDestroy>>>> FORCED_OFFLINE {}", JSONObject.toJSONString(message));
|
|
|
- //销毁直播间
|
|
|
- pluginService.chatRoomDestroy(roomUid);
|
|
|
+
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// imFeignService.destroyLiveRoom(roomUid);
|
|
|
log.info("roomDestroy>>>> destroyLiveRoom {}", JSONObject.toJSONString(message));
|
|
|
} catch (Exception e) {
|
|
@@ -1500,11 +1514,16 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
// 腾讯云直播,提前生成录制规则
|
|
|
if (room.getServiceProvider().equals(TencentCloudLivePlugin.PLUGIN_NAME)) {
|
|
|
|
|
|
+ DateTime now = DateTime.now();
|
|
|
+
|
|
|
RTCRequest.RecordStart recordStart = RTCRequest.RecordStart.builder()
|
|
|
.streamName(MessageFormat.format("{0}_{1}", room.getRoomUid(), room.getSpeakerId().toString()))
|
|
|
+ .extra("")
|
|
|
+ .startTime(now.toDateTime().getMillis())
|
|
|
+ .endTime(now.plusDays(1).toDateTime().getMillis())
|
|
|
.build();
|
|
|
|
|
|
- // 生成录制规则
|
|
|
+ // 生成录制任务
|
|
|
pluginService.rtcRoomRecordStart(recordStart);
|
|
|
}
|
|
|
|