|  | @@ -1,7 +1,6 @@
 | 
	
		
			
				|  |  |  package com.yonge.cooleshow.biz.dal.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import com.alibaba.fastjson.JSON;
 | 
	
		
			
				|  |  | -import com.baomidou.mybatisplus.extension.exceptions.ApiException;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.auth.api.entity.SysUser;
 | 
	
	
		
			
				|  | @@ -29,8 +28,6 @@ import javax.annotation.Resource;
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import static org.bouncycastle.asn1.cms.CMSObjectIdentifiers.data;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * 网络教室房间(ImNetworkRoom)表服务实现类
 | 
	
		
			
				|  |  |   *
 | 
	
	
		
			
				|  | @@ -72,11 +69,12 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public HttpResponseResult<ImNetworkRoomResult> joinRoom(Long courseScheduleId, UserRoleEnum userRole) throws Exception {
 | 
	
		
			
				|  |  |          log.info("joinRoom params:courseScheduleId:{},userRole:{}",courseScheduleId,userRole);
 | 
	
		
			
				|  |  | -        SysUser user = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +        Long userId = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +                map(SysUser::getId).
 | 
	
		
			
				|  |  |                  orElseThrow(()-> new BizException("请登录"));
 | 
	
		
			
				|  |  |          CourseSchedule courseSchedule = Optional.ofNullable(courseScheduleService.getById(courseScheduleId)).
 | 
	
		
			
				|  |  |                  orElseThrow(()->new BizException("房间信息不存在"));
 | 
	
		
			
				|  |  | -        BasicUserInfo sysUser = Optional.ofNullable(teacherDao.getBasicUserInfo(user.getId())).
 | 
	
		
			
				|  |  | +        BasicUserInfo sysUser = Optional.ofNullable(teacherDao.getBasicUserInfo(userId)).
 | 
	
		
			
				|  |  |                  orElseThrow(()-> new BizException("用户信息不存在"));
 | 
	
		
			
				|  |  |          Date now = new Date();
 | 
	
		
			
				|  |  |          courseSchedule.setUpdatedTime(now);
 | 
	
	
		
			
				|  | @@ -125,12 +123,13 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void joinRoomSuccess(String roomId,Long userId) throws Exception {
 | 
	
		
			
				|  |  |          log.info("joinRoomSuccess: roomId={}, userId={}", roomId, userId);
 | 
	
		
			
				|  |  | -        CourseSchedule courseSchedule = Optional.ofNullable(courseScheduleService.getById(roomId)).
 | 
	
		
			
				|  |  | +        Long teacherId = Optional.ofNullable(courseScheduleService.getById(roomId)).
 | 
	
		
			
				|  |  | +                map(CourseSchedule::getTeacherId).
 | 
	
		
			
				|  |  |                  orElseThrow(()->new BizException("房间信息不存在"));
 | 
	
		
			
				|  |  |          BasicUserInfo sysUser = Optional.ofNullable(teacherDao.getBasicUserInfo(userId)).
 | 
	
		
			
				|  |  |                  orElseThrow(()-> new BizException("用户信息不存在"));
 | 
	
		
			
				|  |  |          UserRoleEnum userRole = UserRoleEnum.STUDENT;
 | 
	
		
			
				|  |  | -        if(Objects.equals(courseSchedule.getTeacherId(),userId)){
 | 
	
		
			
				|  |  | +        if(Objects.equals(teacherId,userId)){
 | 
	
		
			
				|  |  |              userRole = UserRoleEnum.TEACHER;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          Date now = new Date();
 | 
	
	
		
			
				|  | @@ -153,9 +152,9 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void joinRoomFailure(String roomId) {
 | 
	
		
			
				|  |  | -        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +        Long userId = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +                map(SysUser::getId).
 | 
	
		
			
				|  |  |                  orElseThrow(()-> new BizException("请登录"));
 | 
	
		
			
				|  |  | -        Long userId = sysUser.getId();
 | 
	
		
			
				|  |  |          log.info("joinRoomFailure: roomId={}, userId={}", roomId, userId);
 | 
	
		
			
				|  |  |          imNetworkRoomMemberService.getDao().delByRidAndUid(roomId, userId);
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -163,9 +162,9 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void leaveRoom(String roomId,UserRoleEnum userRole) throws Exception {
 | 
	
		
			
				|  |  | -        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +        Long userId = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +                map(SysUser::getId).
 | 
	
		
			
				|  |  |                  orElseThrow(()-> new BizException("请登录"));
 | 
	
		
			
				|  |  | -        Long userId = sysUser.getId();
 | 
	
		
			
				|  |  |          log.info("leaveRoom: roomId={}, userId={}", roomId, userId);
 | 
	
		
			
				|  |  |          long courseScheduleId = Long.parseLong(roomId);
 | 
	
		
			
				|  |  |          if (userRole == UserRoleEnum.TEACHER){
 | 
	
	
		
			
				|  | @@ -227,21 +226,22 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void sendImPlayMidiMessage(ImNetworkCustomMessage customMessage) throws Exception {
 | 
	
		
			
				|  |  | -        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +        Long userId = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +                map(SysUser::getId).
 | 
	
		
			
				|  |  |                  orElseThrow(()-> new BizException("请登录"));
 | 
	
		
			
				|  |  | -        Long userId = sysUser.getId();
 | 
	
		
			
				|  |  | -        Long courseScheduleId = customMessage.getCourseScheduleId();
 | 
	
		
			
				|  |  | -        log.info("sendImPlayMidiMessage: roomId={}, userId={}", courseScheduleId, userId);
 | 
	
		
			
				|  |  | +        Long roomId = customMessage.getRoomId();
 | 
	
		
			
				|  |  | +        log.info("sendImPlayMidiMessage: roomId={}, userId={}", roomId, userId);
 | 
	
		
			
				|  |  |          ImNetworkMetronomeMessage displayMessage = new ImNetworkMetronomeMessage(customMessage);
 | 
	
		
			
				|  |  | -        imHelper.publishMessage(userId.toString(), courseScheduleId.toString(), displayMessage, 0);
 | 
	
		
			
				|  |  | +        imHelper.publishMessage(userId.toString(), roomId.toString(), displayMessage, 0);
 | 
	
		
			
				|  |  |          //记录节拍器信息
 | 
	
		
			
				|  |  | -        courseScheduleStudentPaymentService.getDao().adjustPlayMidi(courseScheduleId,userId,customMessage.toString());
 | 
	
		
			
				|  |  | +        courseScheduleStudentPaymentService.getDao().adjustPlayMidi(roomId,customMessage.getUserId(),customMessage.toString());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void pushDownloadMusicSheetMsg(String roomId,Long accompanimentId) throws Exception {
 | 
	
		
			
				|  |  | -        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +        Long userId = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +                map(SysUser::getId).
 | 
	
		
			
				|  |  |                  orElseThrow(()-> new BizException("请登录"));
 | 
	
		
			
				|  |  |          Long courseScheduleId = Long.parseLong(roomId);
 | 
	
		
			
				|  |  |          List<CourseScheduleStudentMusicSheetResult> scheduleStudentMusicSheetResults = courseScheduleStudentMusicSheetService.getDao().
 | 
	
	
		
			
				|  | @@ -264,21 +264,22 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |              musicSheet.setMusicSheetAccompanimentId(accompanimentId);
 | 
	
		
			
				|  |  |              musicSheet.setSpeed(accompaniment.getSpeed());
 | 
	
		
			
				|  |  |              musicSheet.setCourseScheduleId(courseScheduleId);
 | 
	
		
			
				|  |  | -            musicSheet.setUserId(sysUser.getId());
 | 
	
		
			
				|  |  | +            musicSheet.setUserId(userId);
 | 
	
		
			
				|  |  |              musicSheet.setUserType(1);
 | 
	
		
			
				|  |  |              scheduleStudentMusicSheetResults.add(musicSheet);
 | 
	
		
			
				|  |  |              courseScheduleStudentMusicSheetService.getDao().batchInsert(scheduleStudentMusicSheetResults);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          ImNetworkMusicSheetDownloadMessage msg = new ImNetworkMusicSheetDownloadMessage(
 | 
	
		
			
				|  |  |                  JSON.parseObject(JSON.toJSONString(accompaniment), ImNetworkMusicSheetDownloadMessageContent.class));
 | 
	
		
			
				|  |  | -        imHelper.publishMessage(sysUser.getId().toString(), roomId, msg, 0);
 | 
	
		
			
				|  |  | +        imHelper.publishMessage(userId.toString(), roomId, msg, 0);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void display(ImNetworkDisplayDataDto displayData) throws Exception {
 | 
	
		
			
				|  |  |          log.info("display in data = {}", displayData);
 | 
	
		
			
				|  |  | -        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +        Long userId = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +                map(SysUser::getId).
 | 
	
		
			
				|  |  |                  orElseThrow(()-> new BizException("请登录"));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          StringBuffer display = new StringBuffer("display://type=").append(displayData.getType().ordinal()).append("?userId=");
 | 
	
	
		
			
				|  | @@ -288,22 +289,24 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |                  display = new StringBuffer();
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              case TEACHER:
 | 
	
		
			
				|  |  | -                CourseSchedule courseSchedule = courseScheduleService.getById(displayData.getRoomId());
 | 
	
		
			
				|  |  | -                display.append(courseSchedule.getTeacherId()).append("?uri=");
 | 
	
		
			
				|  |  | +                Long teacherId = Optional.ofNullable(courseScheduleService.getById(displayData.getRoomId())).
 | 
	
		
			
				|  |  | +                        map(CourseSchedule::getTeacherId).
 | 
	
		
			
				|  |  | +                        orElseThrow(()->new BizException("房间信息不存在"));
 | 
	
		
			
				|  |  | +                display.append(teacherId).append("?uri=");
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              case SCREEN:
 | 
	
		
			
				|  |  | -                display.append(sysUser.getId()).append("?uri=");
 | 
	
		
			
				|  |  | +                display.append(userId).append("?uri=");
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              case STUDENT:
 | 
	
		
			
				|  |  |                  display.append(displayData.getUserId()).append("?uri=").append(displayData.getUri());
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              default:
 | 
	
		
			
				|  |  | -                display.append(sysUser.getId()).append("?uri=").append(displayData.getUri());
 | 
	
		
			
				|  |  | +                display.append(userId).append("?uri=").append(displayData.getUri());
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          ImNetworkRoom room = baseMapper.findByRoomId(displayData.getRoomId());
 | 
	
		
			
				|  |  |          room.setDisplay(display.toString());
 | 
	
		
			
				|  |  | -        this.updateDisplay(sysUser.getId(),room);
 | 
	
		
			
				|  |  | +        this.updateDisplay(userId,room);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
	
		
			
				|  | @@ -354,21 +357,25 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |                      imHelper.publishMessage(userId.toString(), deviceControl.getRoomId(), deviceResourceMessage, 1);
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  |                  case MUSIC_SHEET:
 | 
	
		
			
				|  |  | +                    Integer musicSheetId = Optional.ofNullable(deviceControl.getMusicSheetAccompanimentId()).
 | 
	
		
			
				|  |  | +                            orElseThrow(()-> new BizException("请选择曲目"));
 | 
	
		
			
				|  |  |                      //关闭所有曲目播放
 | 
	
		
			
				|  |  |                      courseScheduleStudentMusicSheetService.getDao().closePlayStatus(scheduleId,userId);
 | 
	
		
			
				|  |  |                      //打开原音
 | 
	
		
			
				|  |  | -                    courseScheduleStudentMusicSheetService.getDao().openPlayStatus(scheduleId,deviceControl.getMusicScoreAccompanimentId(),userId);
 | 
	
		
			
				|  |  | -                    deviceResourceMessage.setMusicScoreAccompanimentId(deviceControl.getMusicScoreAccompanimentId());
 | 
	
		
			
				|  |  | +                    courseScheduleStudentMusicSheetService.getDao().openPlayStatus(scheduleId,musicSheetId,userId);
 | 
	
		
			
				|  |  | +                    deviceResourceMessage.setMusicSheetAccompanimentId(musicSheetId);
 | 
	
		
			
				|  |  |                      deviceResourceMessage.setUserId(userId.toString());
 | 
	
		
			
				|  |  |                      deviceResourceMessage.setSoundVolume(deviceControl.getSoundVolume());
 | 
	
		
			
				|  |  |                      imHelper.publishMessage(sysUser.getId().toString(), roomId, deviceResourceMessage, 1);
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  |                  case ACCOMPANIMENT:
 | 
	
		
			
				|  |  | +                  Integer musicSheetAccompanimentId = Optional.ofNullable(deviceControl.getMusicSheetAccompanimentId()).
 | 
	
		
			
				|  |  | +                            orElseThrow(()-> new BizException("请选择曲目"));
 | 
	
		
			
				|  |  |                      //关闭所有曲目播放
 | 
	
		
			
				|  |  |                      courseScheduleStudentMusicSheetService.getDao().closePlayStatus(scheduleId,userId);
 | 
	
		
			
				|  |  |                      //打开伴奏
 | 
	
		
			
				|  |  | -                    courseScheduleStudentMusicSheetService.getDao().openAccompanimentPlayStatus(scheduleId, deviceControl.getMusicScoreAccompanimentId(),userId);
 | 
	
		
			
				|  |  | -                    deviceResourceMessage.setMusicScoreAccompanimentId(deviceControl.getMusicScoreAccompanimentId());
 | 
	
		
			
				|  |  | +                    courseScheduleStudentMusicSheetService.getDao().openAccompanimentPlayStatus(scheduleId,musicSheetAccompanimentId,userId);
 | 
	
		
			
				|  |  | +                    deviceResourceMessage.setMusicSheetAccompanimentId(musicSheetAccompanimentId);
 | 
	
		
			
				|  |  |                      deviceResourceMessage.setUserId(userId.toString());
 | 
	
		
			
				|  |  |                      deviceResourceMessage.setSoundVolume(deviceControl.getSoundVolume());
 | 
	
		
			
				|  |  |                      imHelper.publishMessage(sysUser.getId().toString(), roomId, deviceResourceMessage, 1);
 | 
	
	
		
			
				|  | @@ -376,7 +383,6 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |                  default:
 | 
	
		
			
				|  |  |                      //邀请打开指定设备权限
 | 
	
		
			
				|  |  |                      ImNetworkControlDeviceNotifyMessage message = new ImNetworkControlDeviceNotifyMessage(ImNetworkActionEnum.INVITE.ordinal());
 | 
	
		
			
				|  |  | -//                    msg.setTicket(ticket);
 | 
	
		
			
				|  |  |                      message.setType(deviceControl.getDeviceType().ordinal());
 | 
	
		
			
				|  |  |                      message.setOpUserId(sysUser.getId().toString());
 | 
	
		
			
				|  |  |                      message.setOpUserName(sysUser.getUsername());
 | 
	
	
		
			
				|  | @@ -384,7 +390,8 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }else {
 | 
	
		
			
				|  |  | -            ImNetworkRoomMember roomMember = imNetworkRoomMemberService.getById(roomId);
 | 
	
		
			
				|  |  | +            ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId))
 | 
	
		
			
				|  |  | +                    .orElseThrow(()-> new BizException("用户不在房间内"));
 | 
	
		
			
				|  |  |              long scheduleId = Long.parseLong(roomId);
 | 
	
		
			
				|  |  |              switch (deviceControl.getDeviceType()) {
 | 
	
		
			
				|  |  |                  case CAMERA:
 | 
	
	
		
			
				|  | @@ -431,7 +438,8 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |          log.info("approveControlDevice: deviceControl={}", deviceControl);
 | 
	
		
			
				|  |  |          SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  |                  orElseThrow(()-> new BizException("请登录"));
 | 
	
		
			
				|  |  | -        ImNetworkRoomMember roomMember = imNetworkRoomMemberService.getById(deviceControl.getRoomId());
 | 
	
		
			
				|  |  | +        ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(deviceControl.getRoomId(), sysUser.getId())).
 | 
	
		
			
				|  |  | +                orElseThrow(()-> new BizException("用户不在房间内"));
 | 
	
		
			
				|  |  |          switch (deviceControl.getDeviceType()) {
 | 
	
		
			
				|  |  |              case CAMERA:
 | 
	
		
			
				|  |  |                  roomMember.setCameraFlag(deviceControl.getEnable());
 | 
	
	
		
			
				|  | @@ -465,10 +473,13 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void deviceStatusSync(ImNetworkDeviceControlDto deviceStatusSync) throws Exception {
 | 
	
		
			
				|  |  |          log.info("deviceStatusSync: deviceStatusSync={}", deviceStatusSync);
 | 
	
		
			
				|  |  | -        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +        Long userId = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
 | 
	
		
			
				|  |  | +                map(SysUser::getId).
 | 
	
		
			
				|  |  |                  orElseThrow(()-> new BizException("请登录"));
 | 
	
		
			
				|  |  |          ImNetworkDeviceTypeEnum deviceType = deviceStatusSync.getDeviceType();
 | 
	
		
			
				|  |  | -        ImNetworkRoomMember roomMember = imNetworkRoomMemberService.getById(deviceStatusSync.getRoomId());
 | 
	
		
			
				|  |  | +        ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().
 | 
	
		
			
				|  |  | +                        findByRidAndUid(deviceStatusSync.getRoomId(), userId))
 | 
	
		
			
				|  |  | +                .orElseThrow(()-> new BizException("用户不在房间内"));
 | 
	
		
			
				|  |  |          switch (deviceType) {
 | 
	
		
			
				|  |  |              case CAMERA:
 | 
	
		
			
				|  |  |                  roomMember.setCameraFlag(deviceStatusSync.getEnable());
 | 
	
	
		
			
				|  | @@ -484,9 +495,9 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              case EXAM_SONG:
 | 
	
		
			
				|  |  |                  long scheduleId = Long.parseLong(deviceStatusSync.getRoomId());
 | 
	
		
			
				|  |  | -                ImNetworkRoomMusicSheetDownloadData msg = courseScheduleStudentPaymentService.getMemberExamSong(scheduleId, sysUser.getId());
 | 
	
		
			
				|  |  | +                ImNetworkRoomMusicSheetDownloadData msg = courseScheduleStudentPaymentService.getMemberExamSong(scheduleId, userId);
 | 
	
		
			
				|  |  |                  msg.setEnable(deviceStatusSync.getEnable());
 | 
	
		
			
				|  |  | -                courseScheduleStudentPaymentService.getDao().adjustExamSong(scheduleId, sysUser.getId(), JSON.toJSONString(msg));
 | 
	
		
			
				|  |  | +                courseScheduleStudentPaymentService.getDao().adjustExamSong(scheduleId, userId, JSON.toJSONString(msg));
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if(deviceType == ImNetworkDeviceTypeEnum.CAMERA ||
 | 
	
	
		
			
				|  | @@ -496,10 +507,10 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |              imNetworkRoomMemberService.getDao().updateById(roomMember);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          ImNetworkDeviceStateChangedMessage deviceResourceMessage = new ImNetworkDeviceStateChangedMessage(deviceType.ordinal(),deviceStatusSync.getEnable());
 | 
	
		
			
				|  |  | -        deviceResourceMessage.setUserId(sysUser.getId().toString());
 | 
	
		
			
				|  |  | -        ImNetworkRoom room = this.getById(deviceStatusSync.getRoomId());
 | 
	
		
			
				|  |  | +        deviceResourceMessage.setUserId(userId.toString());
 | 
	
		
			
				|  |  | +        ImNetworkRoom room = baseMapper.findByRoomId(deviceStatusSync.getRoomId());
 | 
	
		
			
				|  |  |          deviceResourceMessage.setSoundVolume(room.getSoundVolume());
 | 
	
		
			
				|  |  | -        imHelper.publishMessage(sysUser.getId().toString(), deviceStatusSync.getRoomId(), deviceResourceMessage, 1);
 | 
	
		
			
				|  |  | +        imHelper.publishMessage(userId.toString(), deviceStatusSync.getRoomId(), deviceResourceMessage, 1);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
	
		
			
				|  | @@ -547,7 +558,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 | 
	
		
			
				|  |  |          if (StringUtils.isEmpty(courseBeforeBufferTime)) {
 | 
	
		
			
				|  |  |              courseBeforeBufferTime = "5";
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        Date addMinutes = DateUtil.addMinutes(courseSchedule.getUpdatedTime(), Integer.parseInt(courseBeforeBufferTime));
 | 
	
		
			
				|  |  | +        Date addMinutes = DateUtil.addMinutes(courseSchedule.getStartTime(), Integer.parseInt(courseBeforeBufferTime));
 | 
	
		
			
				|  |  |          return courseSchedule.getStartTime().compareTo(addMinutes) > 0;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |