zouxuan 2 jaren geleden
bovenliggende
commit
23d3a64233

+ 24 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomServiceImpl.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.ImNetworkRoomDao;
@@ -113,6 +114,15 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         //定时销毁房间
         //初始化房间用户信息
         ImNetworkRoomMember roomMember = imNetworkRoomMemberService.initRoomMember(roomId,sysUser,userRole,!courseSchedule.getMuteAll());
+        List<CourseScheduleStudentMusicSheetResult> studentMusicSheetResults =
+                courseScheduleStudentMusicSheetService.getDao().queryBySheetIdAndCourseId(null, Long.parseLong(roomId), null, null, null);
+        if(!CollectionUtils.isEmpty(studentMusicSheetResults)){
+            List<CourseScheduleStudentMusicSheetResult> musicScores = studentMusicSheetResults.stream().
+                    filter(e -> e.getUserId().equals(userId)).collect(Collectors.toList());
+            String toJSONString = JSON.toJSONString(musicScores, SerializerFeature.DisableCircularReferenceDetect);
+            List<CourseScheduleStudentMusicSheetResult> lists = JSON.parseArray(toJSONString, CourseScheduleStudentMusicSheetResult.class);
+            roomMember.setMusicSheetResults(lists);
+        }
         joinRoomResult.setUserInfo(roomMember);
         //获取教室剩余时长
         joinRoomResult.setSurplusTime(DateUtil.secondsBetween(now, courseSchedule.getEndTime()));
@@ -177,6 +187,15 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         String imUserId = imGroupService.getImUserId(userId, userRole);
         ImNetworkRoomMember roomMember = imNetworkRoomMemberService.lambdaQuery().eq(ImNetworkRoomMember::getRoomId,roomId)
                 .eq(ImNetworkRoomMember::getUserId,imUserId).last("LIMIT 1").one();
+        List<CourseScheduleStudentMusicSheetResult> studentMusicSheetResults =
+                courseScheduleStudentMusicSheetService.getDao().queryBySheetIdAndCourseId(null, Long.parseLong(roomId), null, null, null);
+        if(!CollectionUtils.isEmpty(studentMusicSheetResults)){
+            List<CourseScheduleStudentMusicSheetResult> musicScores = studentMusicSheetResults.stream().
+                    filter(e -> e.getUserId().equals(userId)).collect(Collectors.toList());
+            String toJSONString = JSON.toJSONString(musicScores, SerializerFeature.DisableCircularReferenceDetect);
+            List<CourseScheduleStudentMusicSheetResult> lists = JSON.parseArray(toJSONString, CourseScheduleStudentMusicSheetResult.class);
+            roomMember.setMusicSheetResults(lists);
+        }
         joinRoomResult.setUserInfo(roomMember);
         //获取教室剩余时长
         joinRoomResult.setSurplusTime(DateUtil.secondsBetween(new Date(), courseSchedule.getEndTime()));
@@ -349,11 +368,11 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         Long accompanimentId = Optional.of(musicSheetDto).map(ImNetworkMusicSheetDto::getMusicScoreAccompanimentId).orElseThrow(() -> new BizException("伴奏编号不能为空"));
         log.info("pushDownloadMusicSheetMsg: roomId:{} ,accompanimentId:{}", roomId,accompanimentId);
         Long userId = sysUserService.getUserId();
-        List<CourseScheduleStudentMusicSheetResult> scheduleStudentMusicSheetResults = courseScheduleStudentMusicSheetService.getDao().
-                queryBySheetIdAndCourseId(accompanimentId, Long.parseLong(roomId), null, null, 0);
-
         MusicSheetAccompaniment accompaniment = musicSheetAccompanimentService.lambdaQuery().eq(MusicSheetAccompaniment::getMusicSheetId,accompanimentId)
                 .last("LIMIT 1").one();
+        List<CourseScheduleStudentMusicSheetResult> scheduleStudentMusicSheetResults = courseScheduleStudentMusicSheetService.getDao().
+                queryBySheetIdAndCourseId(accompaniment.getId(), Long.parseLong(roomId), null, null, 0);
+
         if (scheduleStudentMusicSheetResults.isEmpty()) {
             //第一次下载,生成数据
             List<CourseScheduleStudentPayment> studentPayments =
@@ -361,14 +380,14 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             Set<Long> studentIds = studentPayments.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toSet());
             studentIds.forEach(e -> {
                 CourseScheduleStudentMusicSheetResult musicSheet = new CourseScheduleStudentMusicSheetResult();
-                musicSheet.setMusicScoreAccompanimentId(accompanimentId);
+                musicSheet.setMusicScoreAccompanimentId(accompaniment.getId());
                 musicSheet.setSpeed(accompaniment.getSpeed());
                 musicSheet.setCourseScheduleId(Long.parseLong(roomId));
                 musicSheet.setUserId(e);
                 scheduleStudentMusicSheetResults.add(musicSheet);
             });
             CourseScheduleStudentMusicSheetResult musicSheet = new CourseScheduleStudentMusicSheetResult();
-            musicSheet.setMusicScoreAccompanimentId(accompanimentId);
+            musicSheet.setMusicScoreAccompanimentId(accompaniment.getId());
             musicSheet.setSpeed(accompaniment.getSpeed());
             musicSheet.setCourseScheduleId(Long.parseLong(roomId));
             musicSheet.setUserId(userId);