瀏覽代碼

Merge remote-tracking branch 'origin/test' into test

Joburgess 4 年之前
父節點
當前提交
abf860e240

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleStudentMusicScore.java

@@ -10,10 +10,19 @@ public class CourseScheduleStudentMusicScore {
     private Integer userType = 0;
     private Integer musicScoreAccompanimentId;
     private Integer playStatus = 0;
+    private Integer accompanimentPlayStatus = 0;
     private Integer speed;
     private Date createTime;
     private Date updateTime;
 
+    public Integer getAccompanimentPlayStatus() {
+        return accompanimentPlayStatus;
+    }
+
+    public void setAccompanimentPlayStatus(Integer accompanimentPlayStatus) {
+        this.accompanimentPlayStatus = accompanimentPlayStatus;
+    }
+
     public Integer getUserType() {
         return userType;
     }

+ 8 - 4
mec-biz/src/main/resources/config/mybatis/courseScheduleStudentMusicScoreMapper.xml

@@ -14,6 +14,7 @@
         <result column="down_status_" property="downStatus"/>
         <result column="music_score_accompaniment_id_" property="musicScoreAccompanimentId"/>
         <result column="play_status_" property="playStatus"/>
+        <result column="accompaniment_play_status_" property="accompanimentPlayStatus"/>
         <result column="speed_" property="speed"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
@@ -32,14 +33,14 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleStudentMusicScore" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
-        INSERT INTO course_schedule_student_music_score (course_schedule_id_,user_id_,user_type_,down_status_,music_score_accompaniment_id_,play_status_,speed_,create_time_,update_time_)
-        VALUES(#{courseScheduleId},#{userId},#{userType},#{downStatus},#{musicScoreAccompanimentId},#{playStatus},#{speed},now(),now())
+        INSERT INTO course_schedule_student_music_score (course_schedule_id_,user_id_,user_type_,down_status_,music_score_accompaniment_id_,play_status_,accompaniment_play_status_,speed_,create_time_,update_time_)
+        VALUES(#{courseScheduleId},#{userId},#{userType},#{downStatus},#{musicScoreAccompanimentId},#{playStatus},#{accompanimentPlayStatus},#{speed},now(),now())
     </insert>
     <insert id="batchInsert">
-        INSERT INTO course_schedule_student_music_score (course_schedule_id_,user_id_,user_type_,down_status_,music_score_accompaniment_id_,play_status_,speed_,create_time_,update_time_)
+        INSERT INTO course_schedule_student_music_score (course_schedule_id_,user_id_,user_type_,down_status_,music_score_accompaniment_id_,play_status_,accompaniment_play_status_,speed_,create_time_,update_time_)
         VALUE
         <foreach collection="scheduleStudentMusicScores" item="item" separator=",">
-            (#{item.courseScheduleId},#{item.userId},#{item.userType},#{item.downStatus},#{item.musicScoreAccompanimentId},#{item.playStatus},#{item.speed},now(),now())
+            (#{item.courseScheduleId},#{item.userId},#{item.userType},#{item.downStatus},#{item.musicScoreAccompanimentId},#{item.playStatus},#{item.accompanimentPlayStatus},#{item.speed},now(),now())
         </foreach>
     </insert>
 
@@ -47,6 +48,9 @@
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleStudentMusicScore">
         UPDATE course_schedule_student_music_score
         <set>
+            <if test="accompanimentPlayStatus != null">
+                accompaniment_play_status_ = #{accompanimentPlayStatus},
+            </if>
             <if test="downStatus != null">
                 down_status_ = #{downStatus},
             </if>

+ 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);
@@ -1094,11 +1100,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;