|
|
@@ -177,12 +177,8 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void update(ImLiveBroadcastRoomDto dto) {
|
|
|
ImLiveBroadcastRoom obj = this.getById(dto.getId());
|
|
|
- if (obj.getLiveState() == 1) {
|
|
|
- obj.setRoomTitle(dto.getRoomTitle());
|
|
|
- } else {
|
|
|
- BeanUtils.copyProperties(dto, obj);
|
|
|
- obj.setRoomConfig(JSONObject.toJSONString(dto.getRoomConfig()));
|
|
|
- }
|
|
|
+ BeanUtils.copyProperties(dto, obj);
|
|
|
+ obj.setRoomConfig(JSONObject.toJSONString(dto.getRoomConfig()));
|
|
|
obj.setUpdatedBy(getSysUser().getId());
|
|
|
obj.setUpdatedTime(new Date());
|
|
|
log.info("update room >>> :{}", JSONObject.toJSONString(obj));
|
|
|
@@ -259,32 +255,25 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
|
|
|
private void destroyExpiredLiveRoom(Date now, ImLiveBroadcastRoom room, int expiredMinute) {
|
|
|
log.error("roomDestroy destroyExpiredLiveRoom >>>> now {} roomInfo : {} expiredMinute:{}", now, JSONObject.toJSONString(room), expiredMinute);
|
|
|
- //过期时间= 房间正式开始时间+expiredMinute 分钟
|
|
|
- Date expiredTime = DateUtil.addMinutes(room.getCreatedTime(), expiredMinute);
|
|
|
- // 现在 大于等于 过期时间
|
|
|
- if (now.getTime() >= expiredTime.getTime()) {
|
|
|
- //获取直播间主讲人信息
|
|
|
- RBucket<RoomSpeakerInfo> speakerCache = redissonClient.getBucket(LIVE_SPEAKER_INFO.replace(USER_ID, room.getSpeakerId().toString()));
|
|
|
- if (speakerCache.isExists()) {
|
|
|
- RoomSpeakerInfo speakerInfo = speakerCache.get();
|
|
|
- //超过expiredMinute分钟,没有进入房间
|
|
|
- if (Objects.isNull(speakerInfo.getJoinRoomTime())) {
|
|
|
- roomDestroy(room);
|
|
|
- return;
|
|
|
- }
|
|
|
+ //获取直播间主讲人信息
|
|
|
+ RBucket<RoomSpeakerInfo> speakerCache = redissonClient.getBucket(LIVE_SPEAKER_INFO.replace(USER_ID, room.getSpeakerId().toString()));
|
|
|
+ if (speakerCache.isExists()) {
|
|
|
+ RoomSpeakerInfo speakerInfo = speakerCache.get();
|
|
|
+ //过期时间= 房间正式开始时间+expiredMinute 分钟
|
|
|
+ Date expiredTime = DateUtil.addMinutes(room.getCreatedTime(), expiredMinute);
|
|
|
+ //当前时间 大于(创建房间时填入的开播时间 + 设置的过期分钟数)并且 主播没有进入房间
|
|
|
+ if (now.getTime() >= expiredTime.getTime() && Objects.isNull(speakerInfo.getJoinRoomTime())) {
|
|
|
+ roomDestroy(room);
|
|
|
+ log.info("roomDestroy not joinRoom >>>> roomId:{}", room.getId());
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- //超过expiredMinute分钟,但是未开启直播,则销毁
|
|
|
- if (Objects.isNull(speakerInfo.getState())) {
|
|
|
+ if (Objects.nonNull(speakerInfo.getExitRoomTime())) {
|
|
|
+ Date comparedTime = DateUtil.addMinutes(speakerInfo.getExitRoomTime(), expiredMinute);
|
|
|
+ //当前时间 大于 创建房间时填入的开播时间 并且 当前时间 大于 (主播退出时间 + 设置的过期分钟数) 并且 是直播中断状态
|
|
|
+ if (now.getTime() >= room.getCreatedTime().getTime() && now.getTime() >= comparedTime.getTime() && speakerInfo.getState() != 0) {
|
|
|
roomDestroy(room);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- //现在时间 大于 (退出房间的时间 + expiredMinute 分钟),则销毁
|
|
|
- if (Objects.nonNull(speakerInfo.getExitRoomTime())) {
|
|
|
- Date comparedTime = DateUtil.addMinutes(speakerInfo.getExitRoomTime(), expiredMinute);
|
|
|
- if (now.getTime() >= comparedTime.getTime() && speakerInfo.getState() != 0) {
|
|
|
- roomDestroy(room);
|
|
|
- }
|
|
|
+ log.info("roomDestroy exitRoom >>>> roomId:{}", room.getId());
|
|
|
}
|
|
|
}
|
|
|
}
|