zouxuan 4 лет назад
Родитель
Сommit
15eda3cacc

+ 7 - 1
mec-im/src/main/java/com/ym/pojo/RoomResult.java

@@ -2,6 +2,7 @@ package com.ym.pojo;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.ym.mec.biz.dal.entity.CourseScheduleStudentMusicScore;
 import lombok.Data;
 import lombok.Getter;
 import lombok.Setter;
@@ -11,6 +12,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * Created by weiqinxiao on 2019/2/28.
@@ -41,6 +43,7 @@ public class RoomResult {
         boolean microphone;
         boolean handUpOn;
         ExamSongDownloadData examSongDownloadJson;
+        List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores;
         CustomMessage playMidiJson;
     }
 
@@ -51,7 +54,7 @@ public class RoomResult {
         int curPg;
     }
 
-    public void setMembers(List<RoomMember> roomMemberList, Map<Integer,String> midiMap,Map<Integer,String> examSongMap) {
+    public void setMembers(List<RoomMember> roomMemberList, Map<Integer,String> midiMap,Map<Integer,String> examSongMap,List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores) {
         for (RoomMember member : roomMemberList) {
             MemberResult result = new MemberResult();
             result.setUserId(member.getUid());
@@ -63,6 +66,9 @@ public class RoomResult {
             result.setHandUpOn(member.isHand());
             result.setHeadUrl(member.getHeadUrl());
             result.setPlayMidiJson(JSONObject.parseObject(midiMap.get(Integer.parseInt(member.getUid())),CustomMessage.class));
+            if(scheduleStudentMusicScores != null && scheduleStudentMusicScores.size() > 0){
+                result.setScheduleStudentMusicScores(scheduleStudentMusicScores.stream().filter(e->e.getUserId() == Integer.parseInt(result.getUserId())).collect(Collectors.toList()));
+            }
             ExamSongDownloadData examSongDownloadData;
             String json = examSongMap.get(Integer.parseInt(member.getUid()));
             if(StringUtils.isEmpty(json)){

+ 9 - 2
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -206,6 +206,8 @@ public class RoomServiceImpl implements RoomService {
             userResult.setJoinTime(member.getJoinDt());
         }
 
+        List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores = courseScheduleStudentMusicScoreDao.queryByScoreIdAndCourseId(null, courseId,null, null, null);
+
         String display = "";
         if (roleEnum == RoleTeacher) {
             display = "display://type=1?userId=" + userId + "?uri=";
@@ -221,6 +223,10 @@ public class RoomServiceImpl implements RoomService {
             }
             //获取学员曲目下载状态
             userResult.setExamSongDownloadJson(examSongDownloadData);
+            //已下载的伴奏列表
+            if(scheduleStudentMusicScores != null && scheduleStudentMusicScores.size() > 0){
+                userResult.setScheduleStudentMusicScores(scheduleStudentMusicScores.stream().filter(e->e.getUserId() == sysUser.getId()).collect(Collectors.toList()));
+            }
             Room room = roomDao.findByRid(roomId);
             if (room != null) {
                 display = room.getDisplay();
@@ -248,7 +254,7 @@ public class RoomServiceImpl implements RoomService {
             Set<String> userIds = roomMemberList.stream().map(e -> e.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()));
-            roomResult.setMembers(roomMemberList,midiMap,examSongMap);
+            roomResult.setMembers(roomMemberList,midiMap,examSongMap,scheduleStudentMusicScores);
         }
         roomResult.setWhiteboards(whiteboardDao.findByRid(roomId));
         log.info("join room: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, userName, roleEnum);
@@ -1105,11 +1111,12 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         List<RoomMember> roomMemberList = roomMemberDao.findByRid(roomId);
         if(roomMemberList != null && roomMemberList.size() > 0){
+            List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores = courseScheduleStudentMusicScoreDao.queryByScoreIdAndCourseId(null, Long.parseLong(roomId.substring(1)), null, null, null);
             RoomResult roomResult = new RoomResult();
             Set<String> userIds = roomMemberList.stream().map(e -> e.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)));
-            roomResult.setMembers(roomMemberList,midiMap,examSongMap);
+            roomResult.setMembers(roomMemberList,midiMap,examSongMap,scheduleStudentMusicScores);
             return roomResult.getMembers();
         }
         return null;