|
@@ -6,8 +6,6 @@ import com.alibaba.fastjson.serializer.SerializerFeature;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.google.common.collect.Maps;
|
|
|
-import com.microsvc.toolkit.common.response.paging.PageInfo;
|
|
|
-import com.microsvc.toolkit.common.response.template.R;
|
|
|
import com.microsvc.toolkit.middleware.rtc.RTCRoomPluginContext;
|
|
|
import com.microsvc.toolkit.middleware.rtc.RTCRoomPluginService;
|
|
|
import com.microsvc.toolkit.middleware.rtc.enums.EMemberAction;
|
|
@@ -601,8 +599,10 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
}
|
|
|
//已下载的伴奏列表
|
|
|
- if (scheduleStudentMusicScores != null && scheduleStudentMusicScores.size() > 0) {
|
|
|
- List<CourseScheduleStudentMusicScore> musicScores = scheduleStudentMusicScores.stream().filter(e -> e.getUserId().equals(sysUser.getId())).collect(Collectors.toList());
|
|
|
+ this.initCourseScheduleStudentMusicScore(scheduleStudentMusicScores);
|
|
|
+ if (CollectionUtils.isNotEmpty(scheduleStudentMusicScores)) {
|
|
|
+ List<CourseScheduleStudentMusicScore> musicScores = scheduleStudentMusicScores.stream()
|
|
|
+ .filter(e -> e.getUserId().equals(sysUser.getId())).collect(Collectors.toList());
|
|
|
String toJSONString = JSON.toJSONString(musicScores, SerializerFeature.DisableCircularReferenceDetect);
|
|
|
List<CourseScheduleStudentMusicScore> lists = JSON.parseArray(toJSONString, CourseScheduleStudentMusicScore.class);
|
|
|
userResult.setScheduleStudentMusicScores(lists);
|
|
@@ -642,17 +642,8 @@ public class RoomServiceImpl implements RoomService {
|
|
|
Set<String> userIds = roomMemberList.stream().map(RoomMember::getUid).collect(Collectors.toSet());
|
|
|
Map<Integer, String> midiMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryMidiByUserIdsAndCourseId(userIds, courseId.toString()));
|
|
|
Map<Integer, String> examSongMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryExamSongByUserIdsAndCourseId(userIds, courseId.toString()));
|
|
|
+ this.initCourseScheduleStudentMusicScore(scheduleStudentMusicScores);
|
|
|
roomResult.setMembers(roomMemberList, midiMap, examSongMap, scheduleStudentMusicScores);
|
|
|
-
|
|
|
- // 全员静音状态开启
|
|
|
- /*if (muteAll && TencentCloudRTCPlugin.PLUGIN_NAME.equals(courseSchedule.getServiceProvider())) {
|
|
|
- for (RoomResult.MemberResult item : roomResult.getMembers()) {
|
|
|
- // 重置学生用户当前静音状态
|
|
|
- if (RoleStudent.getValue() == item.getRole()) {
|
|
|
- item.setMicrophone(false);
|
|
|
- }
|
|
|
- }
|
|
|
- }*/
|
|
|
}
|
|
|
roomResult.setWhiteboards(whiteboardDao.findByRid(roomId));
|
|
|
if (room != null) {
|
|
@@ -674,6 +665,27 @@ public class RoomServiceImpl implements RoomService {
|
|
|
businessLogger.info("join room: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, userName, roleEnum);
|
|
|
}
|
|
|
|
|
|
+ private void initCourseScheduleStudentMusicScore(List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores) {
|
|
|
+ if(CollectionUtils.isEmpty(scheduleStudentMusicScores)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Long> musicSheetSoundIds = scheduleStudentMusicScores.stream().map(e->Long.parseLong(e.getMusicScoreAccompanimentId())).collect(Collectors.toList());
|
|
|
+ List<CbsMusicSheetWrapper.MusicSheetAccApplication> sheetApplications = this.getSheetApplications(musicSheetSoundIds);
|
|
|
+ Map<Long, CbsMusicSheetWrapper.MusicSheetAccApplication> sheetApplicationMap = sheetApplications.stream()
|
|
|
+ .collect(Collectors.toMap(CbsMusicSheetWrapper.MusicSheetAccApplication::getId, Function.identity()));
|
|
|
+ for (CourseScheduleStudentMusicScore studentMusicScore : scheduleStudentMusicScores) {
|
|
|
+ CbsMusicSheetWrapper.MusicSheetAccApplication sheetApplication =
|
|
|
+ sheetApplicationMap.get(Long.parseLong(studentMusicScore.getMusicScoreAccompanimentId()));
|
|
|
+ if(sheetApplication == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ studentMusicScore.setMusicScoreName(sheetApplication.getName());
|
|
|
+ studentMusicScore.setMp3Url(sheetApplication.getMp3Url());
|
|
|
+ studentMusicScore.setUrl(sheetApplication.getUrl());
|
|
|
+ courseScheduleStudentMusicScoreDao.update(studentMusicScore);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void joinImGroup(String roomId, Integer actualTeacherId, CourseSchedule courseSchedule) throws Exception {
|
|
|
|
|
|
String joinImGroupKey = "joinImGroup:" + roomId;
|
|
@@ -2225,6 +2237,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
Set<String> userIds = roomMemberList.stream().map(RoomMember::getUid).collect(Collectors.toSet());
|
|
|
Map<Integer, String> midiMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryMidiByUserIdsAndCourseId(userIds, roomId.substring(1)));
|
|
|
Map<Integer, String> examSongMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryExamSongByUserIdsAndCourseId(userIds, roomId.substring(1)));
|
|
|
+ this.initCourseScheduleStudentMusicScore(scheduleStudentMusicScores);
|
|
|
roomResult.setMembers(roomMemberList, midiMap, examSongMap, scheduleStudentMusicScores);
|
|
|
|
|
|
// 全员静音开启状态
|
|
@@ -2704,22 +2717,26 @@ public class RoomServiceImpl implements RoomService {
|
|
|
courseScheduleStudentPaymentDao.adjustPlayMidi(Long.parseLong(roomId.substring(1)), playMidiMessageData.getUserId(), content);
|
|
|
}
|
|
|
|
|
|
- private CbsMusicSheetWrapper.MusicSheetApplication getSheetApplication(String musicSheetSoundId){
|
|
|
+ private CbsMusicSheetWrapper.MusicSheetAccApplication getSheetApplication(String musicSheetSoundId){
|
|
|
CbsMusicSheetWrapper.MusicSheetApplicationQuery query = sysMusicScoreService.getMusicSheetApplicationQuery();
|
|
|
query.setRows(1);
|
|
|
query.setMusicSheetSoundId(Long.parseLong(musicSheetSoundId));
|
|
|
- List<CbsMusicSheetWrapper.MusicSheetApplication> applications = sysMusicScoreService.queryCbsMusicSheetApplication(query);
|
|
|
+ List<CbsMusicSheetWrapper.MusicSheetAccApplication> applications = sysMusicScoreService.queryCbsMusicSheetSoundApplication(query).getRows();
|
|
|
if (CollectionUtils.isEmpty(applications)) {
|
|
|
throw new BizException("曲目信息不存在");
|
|
|
}
|
|
|
- CbsMusicSheetWrapper.MusicSheetApplication sheetApplication = applications.get(0);
|
|
|
- if (CollectionUtils.isEmpty(sheetApplication.getMusicSheetSoundList())) {
|
|
|
- throw new BizException("曲目原音信息不存在");
|
|
|
- }
|
|
|
- if (CollectionUtils.isEmpty(sheetApplication.getMusicSheetAccompanimentList())) {
|
|
|
- throw new BizException("曲目伴奏信息不存在");
|
|
|
+ return applications.get(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<CbsMusicSheetWrapper.MusicSheetAccApplication> getSheetApplications(List<Long> musicSheetSoundIds){
|
|
|
+ CbsMusicSheetWrapper.MusicSheetApplicationQuery query = sysMusicScoreService.getMusicSheetApplicationQuery();
|
|
|
+ query.setRows(musicSheetSoundIds.size());
|
|
|
+ query.setMusicSheetSoundIds(musicSheetSoundIds);
|
|
|
+ List<CbsMusicSheetWrapper.MusicSheetAccApplication> applications = sysMusicScoreService.queryCbsMusicSheetSoundApplication(query).getRows();
|
|
|
+ if (CollectionUtils.isEmpty(applications)) {
|
|
|
+ throw new BizException("曲目信息不存在");
|
|
|
}
|
|
|
- return sheetApplication;
|
|
|
+ return applications;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -2732,9 +2749,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
courseScheduleStudentMusicScoreDao.queryByScoreIdAndCourseId(musicScoreData.getMusicScoreAccompanimentId(),
|
|
|
courseScheduleId, null, null, 0);
|
|
|
//获取曲目信息
|
|
|
- CbsMusicSheetWrapper.MusicSheetApplication sheetApplication = this.getSheetApplication(musicScoreData.getMusicScoreAccompanimentId());
|
|
|
- //获取曲目原音信息
|
|
|
- List<CbsMusicSheetWrapper.MusicSheetSound> soundList = sheetApplication.getMusicSheetSoundList();
|
|
|
+ CbsMusicSheetWrapper.MusicSheetAccApplication sheetApplication = this.getSheetApplication(musicScoreData.getMusicScoreAccompanimentId());
|
|
|
if (scheduleStudentMusicScores.size() == 0) {
|
|
|
//第一次下载,生成数据
|
|
|
List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseScheduleId);
|
|
@@ -2756,8 +2771,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
scheduleStudentMusicScores.add(musicScore);
|
|
|
courseScheduleStudentMusicScoreDao.batchInsert(scheduleStudentMusicScores);
|
|
|
}
|
|
|
- CbsMusicSheetWrapper.MusicSheetSound sheetSound = soundList.get(0);
|
|
|
- SysMusicScoreAccompaniment accompaniment = sysMusicScoreAccompanimentService.initSysMusicScoreAccompaniment(sheetApplication, sheetSound);
|
|
|
+ SysMusicScoreAccompaniment accompaniment = sysMusicScoreAccompanimentService.initSysMusicScoreAccompaniment(sheetApplication);
|
|
|
accompaniment.setId(musicScoreData.getMusicScoreAccompanimentId());
|
|
|
MusicScoreMessage musicScoreMessage = JSON.parseObject(JSON.toJSONString(accompaniment), MusicScoreMessage.class);
|
|
|
// 发送消息
|
|
@@ -2844,13 +2858,11 @@ public class RoomServiceImpl implements RoomService {
|
|
|
if (CollectionUtils.isEmpty(studentMusicScores)) {
|
|
|
throw new BizException("学员不存在此下载曲目");
|
|
|
}
|
|
|
- CbsMusicSheetWrapper.MusicSheetApplication sheetApplication = this.getSheetApplication(accompanimentId);
|
|
|
+ CbsMusicSheetWrapper.MusicSheetAccApplication sheetApplication = this.getSheetApplication(accompanimentId);
|
|
|
for (CourseScheduleStudentMusicScore studentMusicScore : studentMusicScores) {
|
|
|
studentMusicScore.setMusicScoreName(sheetApplication.getName());
|
|
|
- CbsMusicSheetWrapper.MusicSheetSound sound = sheetApplication.getMusicSheetSoundList().get(0);
|
|
|
- studentMusicScore.setMp3Url(sound.getAudioFileUrl());
|
|
|
- CbsMusicSheetWrapper.MusicSheetAccompaniment accompaniment = sheetApplication.getMusicSheetAccompanimentList().get(0);
|
|
|
- studentMusicScore.setUrl(accompaniment.getAudioFileUrl());
|
|
|
+ studentMusicScore.setMp3Url(sheetApplication.getMp3Url());
|
|
|
+ studentMusicScore.setUrl(sheetApplication.getUrl());
|
|
|
courseScheduleStudentMusicScoreDao.update(studentMusicScore);
|
|
|
}
|
|
|
CourseScheduleStudentMusicScore studentMusicScore = studentMusicScores.get(0);
|