|  | @@ -253,7 +253,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |          this.save(room);
 | 
	
		
			
				|  |  |          log.info("createTempLiveRoom>>>>>>room:{}", room.getRoomUid());
 | 
	
		
			
				|  |  |          //去融云创建房间及创建房间缓存信息
 | 
	
		
			
				|  |  | -        createLiveRoomInfo(room, sysUser);
 | 
	
		
			
				|  |  | +        this.createLiveRoomInfo(room, sysUser);
 | 
	
		
			
				|  |  |          return roomUid;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -263,15 +263,15 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |      private void createLiveRoomInfo(LiveRoom room) {
 | 
	
		
			
				|  |  |          //查询主讲人信息
 | 
	
		
			
				|  |  |          SysUser sysUser = getSysUser(room.getSpeakerId());
 | 
	
		
			
				|  |  | -        createLiveRoomInfo(room, sysUser);
 | 
	
		
			
				|  |  | +        this.createLiveRoomInfo(room, sysUser);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private void createLiveRoomInfo(LiveRoom room, SysUser sysUser) {
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              //生成主讲人信息
 | 
	
		
			
				|  |  | -            createRoomInfoCache(room, sysUser);
 | 
	
		
			
				|  |  | +            this.createRoomInfoCache(room, sysUser);
 | 
	
		
			
				|  |  |              //去融云创建房间
 | 
	
		
			
				|  |  | -            createLiveRoom(room.getRoomUid(), room.getRoomTitle());
 | 
	
		
			
				|  |  | +            this.createLiveRoom(room.getRoomUid(), room.getRoomTitle());
 | 
	
		
			
				|  |  |          } catch (Exception e) {
 | 
	
		
			
				|  |  |              throw new BizException("创建直播间失败!", e.getCause());
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -352,7 +352,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              //当前时间 大于 直播间过期时间
 | 
	
		
			
				|  |  |              if (now.getTime() >= expiredDate.getTime()) {
 | 
	
		
			
				|  |  | -                destroyLiveRoom(room);
 | 
	
		
			
				|  |  | +                this.destroyLiveRoom(room);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -366,7 +366,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void destroyLiveRoom(String roomUId) {
 | 
	
		
			
				|  |  |          LiveRoom liveRoom = this.getOne(Wrappers.<LiveRoom>lambdaQuery().eq(LiveRoom::getRoomUid, roomUId));
 | 
	
		
			
				|  |  | -        destroyLiveRoom(liveRoom);
 | 
	
		
			
				|  |  | +        this.destroyLiveRoom(liveRoom);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -394,10 +394,23 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          //删除房间
 | 
	
		
			
				|  |  | -        ImDestroyLiveRoom(room.getRoomUid());
 | 
	
		
			
				|  |  | +        this.ImDestroyLiveRoom(room.getRoomUid());
 | 
	
		
			
				|  |  |          //修改房间状态
 | 
	
		
			
				|  |  |          room.setLiveState(2);
 | 
	
		
			
				|  |  |          this.updateById(room);
 | 
	
		
			
				|  |  | +        String speakerIdStr = room.getSpeakerId().toString();
 | 
	
		
			
				|  |  | +        //关闭直播间发送消息
 | 
	
		
			
				|  |  | +        ImRoomMessage message = new ImRoomMessage();
 | 
	
		
			
				|  |  | +        message.setFromUserId(speakerIdStr);
 | 
	
		
			
				|  |  | +        message.setToChatroomId(room.getRoomUid());
 | 
	
		
			
				|  |  | +        message.setObjectName(ImRoomMessage.FORCED_OFFLINE);
 | 
	
		
			
				|  |  | +        message.setContent(speakerIdStr);
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            this.publishRoomMessage(message);
 | 
	
		
			
				|  |  | +            log.info("destroyLiveRoom>>>> FORCED_OFFLINE : {}", speakerIdStr);
 | 
	
		
			
				|  |  | +        } catch (Exception e) {
 | 
	
		
			
				|  |  | +            log.error("destroyLiveRoom>>>>  FORCED_OFFLINE {}", e.getMessage());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -507,7 +520,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |              message.setObjectName(ImRoomMessage.RC_CHATROOM_LEAVE);
 | 
	
		
			
				|  |  |              message.setContent(userId);
 | 
	
		
			
				|  |  |              try {
 | 
	
		
			
				|  |  | -                publishRoomMessage(message);
 | 
	
		
			
				|  |  | +                this.publishRoomMessage(message);
 | 
	
		
			
				|  |  |                  log.info("opsRoom>>>> looker RC_CHATROOM_LEAVE : {}", userJsonStr);
 | 
	
		
			
				|  |  |              } catch (Exception e) {
 | 
	
		
			
				|  |  |                  log.error("opsRoom>>>>  looker error RC_CHATROOM_LEAVE {}", e.getMessage());
 | 
	
	
		
			
				|  | @@ -542,7 +555,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              //查询老师是否有进入过放假,没有则写老师考勤表的进入时间
 | 
	
		
			
				|  |  |              if (Objects.isNull(teacherAttendance)) {
 | 
	
		
			
				|  |  | -                setTeacherAttendance(Long.parseLong(userIdStr), roomInfo.getCourseGroupId(), roomInfo.getCourseId());
 | 
	
		
			
				|  |  | +                this.setTeacherAttendance(Long.parseLong(userIdStr), roomInfo.getCourseGroupId(), roomInfo.getCourseId());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              roomInfoCache.set(roomInfo);
 | 
	
		
			
				|  |  |              log.info("opsRoom>>>> join speakerCache {}", JSONObject.toJSONString(roomInfo));
 | 
	
	
		
			
				|  | @@ -616,12 +629,12 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |       * @param roomUid 房间uid
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      public RoomInfoCache speakerJoinRoom(String roomUid) {
 | 
	
		
			
				|  |  | -        RoomInfoCache roomInfo = speakerCheckRoomInfo(roomUid);
 | 
	
		
			
				|  |  | +        RoomInfoCache roomInfo = this.speakerCheckRoomInfo(roomUid);
 | 
	
		
			
				|  |  |          Date now = new Date();
 | 
	
		
			
				|  |  |          roomInfo.setSpeakerState(0);
 | 
	
		
			
				|  |  |          roomInfo.setJoinRoomTime(now);
 | 
	
		
			
				|  |  |          //查询老师是否有进入过,没有则写老师考勤表的进入时间
 | 
	
		
			
				|  |  | -        setTeacherAttendance(roomInfo.getSpeakerId(), roomInfo.getCourseGroupId(), roomInfo.getCourseId());
 | 
	
		
			
				|  |  | +        this.setTeacherAttendance(roomInfo.getSpeakerId(), roomInfo.getCourseGroupId(), roomInfo.getCourseId());
 | 
	
		
			
				|  |  |          //记录当前用户对应的房间uid
 | 
	
		
			
				|  |  |          redissonClient.getBucket(LIVE_USER_ROOM.replace(USER_ID, roomInfo.getSpeakerId().toString())).set(roomUid, 2L, TimeUnit.DAYS);
 | 
	
		
			
				|  |  |          return roomInfo;
 | 
	
	
		
			
				|  | @@ -635,12 +648,12 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      public RoomInfoCache joinRoom(String roomUid, Long userId) {
 | 
	
		
			
				|  |  |          //获取进入房间人员信息
 | 
	
		
			
				|  |  | -        SysUser sysUser = getSysUser(userId);
 | 
	
		
			
				|  |  | +        SysUser sysUser = this.getSysUser(userId);
 | 
	
		
			
				|  |  |          //校验信息
 | 
	
		
			
				|  |  | -        RoomInfoCache roomInfo = checkStudentRoom(roomUid, sysUser);
 | 
	
		
			
				|  |  | +        RoomInfoCache roomInfo = this.checkStudentRoom(roomUid, sysUser);
 | 
	
		
			
				|  |  |          Date now = new Date();
 | 
	
		
			
				|  |  |          //房间累计用户信息-指只要进入到该房间的用户都要记录
 | 
	
		
			
				|  |  | -        RMap<Long, String> roomTotalUser = getTotalUserCache(roomUid);
 | 
	
		
			
				|  |  | +        RMap<Long, String> roomTotalUser = this.getTotalUserCache(roomUid);
 | 
	
		
			
				|  |  |          //判断是否第一次进房间
 | 
	
		
			
				|  |  |          RoomUserInfoCache userInfo;
 | 
	
		
			
				|  |  |          if (roomTotalUser.containsKey(userId)) {
 | 
	
	
		
			
				|  | @@ -653,7 +666,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |              userInfo.setUserName(sysUser.getRealName());
 | 
	
		
			
				|  |  |              userInfo.setFirstJoinTime(now);
 | 
	
		
			
				|  |  |              //查询学生是否有进入过,没有则写学生考勤表的进入时间
 | 
	
		
			
				|  |  | -            setStudentAttendance(userId, roomInfo.getCourseGroupId(), roomInfo.getCourseId());
 | 
	
		
			
				|  |  | +            this.setStudentAttendance(userId, roomInfo.getCourseGroupId(), roomInfo.getCourseId());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          userInfo.setDynamicJoinTime(now);
 | 
	
		
			
				|  |  |          //用户json信息
 | 
	
	
		
			
				|  | @@ -661,7 +674,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |          //写入人员缓存
 | 
	
		
			
				|  |  |          roomTotalUser.fastPut(userId, userJsonStr);
 | 
	
		
			
				|  |  |          //写入在线人员缓存
 | 
	
		
			
				|  |  | -        RMap<Long, String> onlineUserCache = getOnlineUserCache(roomUid);
 | 
	
		
			
				|  |  | +        RMap<Long, String> onlineUserCache = this.getOnlineUserCache(roomUid);
 | 
	
		
			
				|  |  |          onlineUserCache.fastPut(userId, userJsonStr);
 | 
	
		
			
				|  |  |          log.info("joinRoom>>>> userInfo: {}", userJsonStr);
 | 
	
		
			
				|  |  |          //向直播间发送当前在线人数消息
 | 
	
	
		
			
				|  | @@ -782,7 +795,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 | 
	
		
			
				|  |  |          message.setContent(sendMap);
 | 
	
		
			
				|  |  |          //发送消息
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            publishRoomMessage(message);
 | 
	
		
			
				|  |  | +            this.publishRoomMessage(message);
 | 
	
		
			
				|  |  |              log.info("sendOnlineUserCount>>>> message: {}", JSONObject.toJSONString(message));
 | 
	
		
			
				|  |  |          } catch (Exception e) {
 | 
	
		
			
				|  |  |              log.error("sendOnlineUserCount>>>> error {}", e.getMessage());
 |