|
@@ -57,8 +57,6 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
private IMHelper imHelper;
|
|
|
@Resource
|
|
|
private MusicSheetAccompanimentService musicSheetAccompanimentService;
|
|
|
- @Resource
|
|
|
- private MusicSheetService musicSheetService;
|
|
|
|
|
|
@Override
|
|
|
public ImNetworkRoomDao getDao() {
|
|
@@ -137,16 +135,21 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
this.initRoom(roomId, Long.parseLong(roomId), userRole, userId, now);
|
|
|
//获取房间用户信息
|
|
|
ImNetworkRoomMember roomMember = imNetworkRoomMemberService.initRoomMember(roomId,sysUser,userRole);
|
|
|
- //发送加入房间的消息
|
|
|
+ //发送人员变动消息
|
|
|
+ publishMemberChangedMessage(roomMember);
|
|
|
+ //记录考勤
|
|
|
+ }
|
|
|
+
|
|
|
+ //发送人员变动消息
|
|
|
+ private void publishMemberChangedMessage(ImNetworkRoomMember roomMember) throws Exception {
|
|
|
ImNetworkRoomMemberChangedMessage msg = new ImNetworkRoomMemberChangedMessage(roomMember,ImNetworkRoomMemberChangedEnum.JOIN);
|
|
|
//获取节拍器信息
|
|
|
- ImNetworkCustomMessage imNetworkCustomMessage = courseScheduleStudentPaymentService.getMemberMidi(Long.parseLong(roomId), userId);
|
|
|
+ ImNetworkCustomMessage imNetworkCustomMessage = courseScheduleStudentPaymentService.getMemberMidi(Long.parseLong(roomMember.getRoomId()), roomMember.getUserId());
|
|
|
msg.setMetronomeSwitch(imNetworkCustomMessage.getEnable());
|
|
|
//获取伴奏信息
|
|
|
- ImNetworkRoomMusicSheetDownloadData musicSheetDownloadData = courseScheduleStudentPaymentService.getMemberExamSong(Long.parseLong(roomId), userId);
|
|
|
+ ImNetworkRoomMusicSheetDownloadData musicSheetDownloadData = courseScheduleStudentPaymentService.getMemberExamSong(Long.parseLong(roomMember.getRoomId()), roomMember.getUserId());
|
|
|
msg.setExamSongSwitch(musicSheetDownloadData.getEnable());
|
|
|
- imHelper.publishMessage(userId.toString(), roomId, msg);
|
|
|
- //记录考勤
|
|
|
+ imHelper.publishMessage(roomMember.getUserId().toString(), roomMember.getRoomId(), msg);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -462,7 +465,11 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
msg.setType(deviceControl.getDeviceType().ordinal());
|
|
|
msg.setOpUserId(sysUser.getId().toString());
|
|
|
msg.setOpUserName(sysUser.getUsername());
|
|
|
- imHelper.publishMessage(sysUser.getId().toString(),deviceControl.getUserId().toString(), deviceControl.getRoomId(), msg);
|
|
|
+ //获取老师编号
|
|
|
+ Long teacherId = Optional.ofNullable(courseScheduleService.getById(deviceControl.getRoomId())).
|
|
|
+ map(CourseSchedule::getTeacherId).
|
|
|
+ orElseThrow(()->new BizException("房间信息不存在"));
|
|
|
+ imHelper.publishMessage(sysUser.getId().toString(),teacherId.toString(), deviceControl.getRoomId(), msg);
|
|
|
|
|
|
ImNetworkDeviceStateChangedMessage deviceResourceMessage = new ImNetworkDeviceStateChangedMessage(deviceControl.getDeviceType().ordinal(),deviceControl.getEnable());
|
|
|
deviceResourceMessage.setUserId(sysUser.getId().toString());
|
|
@@ -523,17 +530,22 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
msg.setType(deviceControl.getDeviceType().ordinal());
|
|
|
msg.setOpUserId(sysUser.getId().toString());
|
|
|
msg.setOpUserName(sysUser.getUsername());
|
|
|
- imHelper.publishMessage(sysUser.getId().toString(),deviceControl.getUserId().toString(), deviceControl.getRoomId(), msg);
|
|
|
+ //获取老师编号
|
|
|
+ Long teacherId = Optional.ofNullable(courseScheduleService.getById(deviceControl.getRoomId())).
|
|
|
+ map(CourseSchedule::getTeacherId).
|
|
|
+ orElseThrow(()->new BizException("房间信息不存在"));
|
|
|
+ imHelper.publishMessage(sysUser.getId().toString(),teacherId.toString(), deviceControl.getRoomId(), msg);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void musicSheetDownNotify(String roomId, Long accompanimentId, Integer status) throws Exception {
|
|
|
log.info("musicSheetDownNotify: roomId={},accompanimentId={},status={}", roomId,accompanimentId,status);
|
|
|
- SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
|
|
|
+ Long userId = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
|
|
|
+ map(SysUser::getId).
|
|
|
orElseThrow(()-> new BizException("请登录"));
|
|
|
Long scheduleId = Long.parseLong(roomId);
|
|
|
- List<CourseScheduleStudentMusicSheetResult> studentMusicSheetResults = courseScheduleStudentMusicSheetService.getDao().queryBySheetIdAndCourseId(accompanimentId, scheduleId, sysUser.getId(), null, null);
|
|
|
+ List<CourseScheduleStudentMusicSheetResult> studentMusicSheetResults = courseScheduleStudentMusicSheetService.getDao().queryBySheetIdAndCourseId(accompanimentId, scheduleId,userId, null, null);
|
|
|
if(CollectionUtils.isEmpty(studentMusicSheetResults)){
|
|
|
return;
|
|
|
}
|
|
@@ -548,7 +560,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
//给老师发送学员曲目下载状态
|
|
|
CourseSchedule courseSchedule = courseScheduleService.getById(scheduleId);
|
|
|
ImNetworkMusicSheetDownloadStatusMessage statusMessage = new ImNetworkMusicSheetDownloadStatusMessage(status,studentMusicSheetResults);
|
|
|
- imHelper.publishMessage(sysUser.getId().toString(), courseSchedule.getTeacherId().toString(), roomId, statusMessage);
|
|
|
+ imHelper.publishMessage(userId.toString(), courseSchedule.getTeacherId().toString(), roomId, statusMessage);
|
|
|
}
|
|
|
|
|
|
//校验用户是否提前进入教室
|