zouxuan 2 years ago
parent
commit
9df167e1be

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImNetworkRoomMemberDao.java

@@ -1,9 +1,12 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yonge.cooleshow.biz.dal.dto.ImNetworkRoomMemberResult;
 import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMember;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 网络教室成员(ImNetworkRoomMember)表数据库访问层
  *
@@ -14,5 +17,6 @@ public interface ImNetworkRoomMemberDao extends BaseMapper<ImNetworkRoomMember>
 
     int insert(@Param("entity") ImNetworkRoomMember roomMember);
 
+    List<ImNetworkRoomMemberResult> queryByRoomId(String roomId);
 }
 

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImNetworkMusicSheetDownloadMessageContent.java

@@ -8,11 +8,11 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 @Data
 public class ImNetworkMusicSheetDownloadMessageContent{
     //伴奏编号
-    @ApiModelProperty(value = "伴奏编号")
+    @ApiModelProperty(value = "伴奏编号,改造需要,这里代表的是曲目编号")
     private Integer id;
 
     //曲目编号
-    @ApiModelProperty(value = "曲目编号")
+    @ApiModelProperty(value = "曲目编号,改造需要,这里代表的是伴奏编号")
     private Integer examSongId;
 
     //声部

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

@@ -131,19 +131,19 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         //获取教室剩余时长
         joinRoomResult.setSurplusTime(DateUtil.secondsBetween(now, courseSchedule.getEndTime()));
         //获取房间所有成员
-        List<ImNetworkRoomMember> roomMemberList = imNetworkRoomMemberService.lambdaQuery().eq(ImNetworkRoomMember::getRoomId,roomId).list();
-        joinRoomResult.setMembers(JSONObject.parseArray(JSONObject.toJSONString(roomMemberList), ImNetworkRoomMemberResult.class));
+        List<ImNetworkRoomMemberResult> members = imNetworkRoomMemberService.getDao().queryByRoomId(roomId);
         //如果是老师,
         if(userRole == RoleEnum.RoleTeacher){
             //重置节拍器数据
             imNetworkRoomMemberStatusService.lambdaUpdate().set(ImNetworkRoomMemberStatus::getPlayMidi,null)
                             .eq(ImNetworkRoomMemberStatus::getRoomId,roomId).update();
             //获取所有学员的伴奏下载详情
-            setMusicSheetList(roomMemberList,Long.parseLong(roomId));
+            setMusicSheetList(members,Long.parseLong(roomId));
         }else {
             //获取节拍器信息
             joinRoomResult.setPlayMidiJson(imNetworkRoomMemberStatusService.getMemberMidi(roomMember));
         }
+        joinRoomResult.setMembers(members);
         //课程结束后关闭教室的时间
         joinRoomResult.setAutoCloseNetworkRoomTime(sysConfigDao.findConfigValue(SysConfigConstant.DESTROY_EXPIRED_PRACTICE_ROOM_MINUTE));
 
@@ -210,16 +210,16 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         //获取教室剩余时长
         joinRoomResult.setSurplusTime(DateUtil.secondsBetween(new Date(), courseSchedule.getEndTime()));
         //获取房间所有成员
-        List<ImNetworkRoomMember> roomMemberList = imNetworkRoomMemberService.lambdaQuery().eq(ImNetworkRoomMember::getRoomId,roomId).list();
-        joinRoomResult.setMembers(JSONObject.parseArray(JSONObject.toJSONString(roomMemberList),ImNetworkRoomMemberResult.class));
+        List<ImNetworkRoomMemberResult> members = imNetworkRoomMemberService.getDao().queryByRoomId(roomId);
         //如果是老师,
         if(userRole == RoleEnum.RoleTeacher){
             //获取所有学员的伴奏下载详情
-            setMusicSheetList(roomMemberList,Long.parseLong(roomId));
+            setMusicSheetList(members,Long.parseLong(roomId));
         }else {
             //获取节拍器信息
             joinRoomResult.setPlayMidiJson(imNetworkRoomMemberStatusService.getMemberMidi(roomMember));
         }
+        joinRoomResult.setMembers(members);
         //课程结束后关闭教室的时间
         joinRoomResult.setAutoCloseNetworkRoomTime(sysConfigDao.findConfigValue(SysConfigConstant.DESTROY_EXPIRED_PRACTICE_ROOM_MINUTE));
         //获取腾讯所需基本信息配置
@@ -229,7 +229,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         return BaseResponse.success(joinRoomResult);
     }
 
-    private void setMusicSheetList(List<ImNetworkRoomMember> roomMemberList,Long courseScheduleId){
+    private void setMusicSheetList(List<ImNetworkRoomMemberResult> roomMemberList,Long courseScheduleId){
         List<CourseScheduleStudentMusicSheetResult> musicSheetResults = courseScheduleStudentMusicSheetService.getDao().
                 queryBySheetIdAndCourseId(null,courseScheduleId,null,null,null);
         if (!CollectionUtils.isEmpty(musicSheetResults)) {
@@ -408,7 +408,8 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         // IM用户ID
         String imUserId = imGroupService.getImUserId(userId,musicSheetDto.getClientType());
         ImNetworkMusicSheetDownloadMessageContent content = JSON.parseObject(JSON.toJSONString(accompaniment), ImNetworkMusicSheetDownloadMessageContent.class);
-        content.setExamSongId(accompaniment.getMusicSheetId().intValue());
+        content.setExamSongId(accompaniment.getId().intValue());
+        content.setId(accompaniment.getMusicSheetId().intValue());
         if(StringUtils.isNotEmpty(accompaniment.getMusicSubjectId())){
             content.setSubjectId(Integer.parseInt(accompaniment.getMusicSubjectId()));
         }

+ 16 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImNetworkRoomMemberMapper.xml

@@ -27,4 +27,20 @@
         user_id_ = VALUES(user_id_),
         role_ = VALUES(role_)
     </insert>
+    <select id="queryByRoomId" resultType="com.yonge.cooleshow.biz.dal.dto.ImNetworkRoomMemberResult">
+        SELECT
+        a.id_ as id,
+        a.room_id_ as roomId,
+        a.user_id_ as userId,
+        a.username_ as userName,
+        a.avatar_ as avatar,
+        a.join_time_ as joinTime,
+        a.role_ as role,
+        a.camera_flag_ as camera,
+        a.mic_flag_ as microphone,
+        a.music_mode_flag_ as musicModeOn,
+        a.hand_flag_ as handUpOn
+        FROM im_network_room_member a
+        WHERE a.room_id_ = #{roomId}
+    </select>
 </mapper>