zouxuan 1 년 전
부모
커밋
2dbcd0ee35

+ 31 - 31
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImServiceImpl.java

@@ -287,37 +287,37 @@ public class ImServiceImpl implements ImService {
                     break;
             }
         }else {
-            ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.lambdaQuery()
-                            .eq(ImNetworkRoomMember::getRoomId,roomId)
-                    .eq(ImNetworkRoomMember::getUserId,deviceControl.getUserId())
-                    .eq(ImNetworkRoomMember::getRole,RoleEnum.RoleTeacher.getValue()).last("LIMIT 1").one())
-                    .orElseThrow(()-> new BizException("用户不在房间内"));
-            switch (deviceControl.getDeviceType()) {
-                case CAMERA:
-                    roomMember.setCameraFlag(deviceControl.getEnable());
-                    break;
-                case MICROPHONE:
-                    roomMember.setMicFlag(deviceControl.getEnable());
-                    break;
-                case HAND_UP:
-                    roomMember.setHandFlag(deviceControl.getEnable());
-                    break;
-                case MUSIC_MODE:
-                    roomMember.setMusicModeFlag(deviceControl.getEnable());
-                    break;
-                case EXAM_SONG:
-                    ImNetworkRoomMusicSheetDownloadData msg = imNetworkRoomMemberStatusService.getMemberExamSong(roomId, roomMember.getUserId());
-                    msg.setEnable(false);
-                    imNetworkRoomMemberStatusService.lambdaUpdate()
-                            .eq(ImNetworkRoomMemberStatus::getRoomId,roomId)
-                            .eq(ImNetworkRoomMemberStatus::getImUserId,roomMember.getUserId())
-                            .set(ImNetworkRoomMemberStatus::getMusicSheetDownloadJson,JSON.toJSONString(msg)).update();
-                    break;
-            }
-            if(deviceControl.getDeviceType() != ImNetworkDeviceTypeEnum.MUSIC_SHEET &&
-                    deviceControl.getDeviceType() != ImNetworkDeviceTypeEnum.EXAM_SONG &&
-                    deviceControl.getDeviceType() != ImNetworkDeviceTypeEnum.ACCOMPANIMENT){
-                imNetworkRoomMemberService.getDao().updateById(roomMember);
+            if(deviceControl.getDeviceType() == ImNetworkDeviceTypeEnum.EXAM_SONG){
+                ImNetworkRoomMusicSheetDownloadData msg = imNetworkRoomMemberStatusService.getMemberExamSong(roomId, deviceControl.getUserId());
+                msg.setEnable(false);
+                imNetworkRoomMemberStatusService.lambdaUpdate()
+                        .eq(ImNetworkRoomMemberStatus::getRoomId,roomId)
+                        .set(ImNetworkRoomMemberStatus::getMusicSheetDownloadJson,JSON.toJSONString(msg)).update();
+            }else {
+                ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.lambdaQuery()
+                                .eq(ImNetworkRoomMember::getRoomId,roomId)
+                                .eq(ImNetworkRoomMember::getUserId,deviceControl.getUserId())
+                                .eq(ImNetworkRoomMember::getRole,RoleEnum.RoleStudent.getValue()).last("LIMIT 1").one())
+                        .orElseThrow(()-> new BizException("用户不在房间内"));
+                switch (deviceControl.getDeviceType()) {
+                    case CAMERA:
+                        roomMember.setCameraFlag(deviceControl.getEnable());
+                        break;
+                    case MICROPHONE:
+                        roomMember.setMicFlag(deviceControl.getEnable());
+                        break;
+                    case HAND_UP:
+                        roomMember.setHandFlag(deviceControl.getEnable());
+                        break;
+                    case MUSIC_MODE:
+                        roomMember.setMusicModeFlag(deviceControl.getEnable());
+                        break;
+                }
+                if(deviceControl.getDeviceType() != ImNetworkDeviceTypeEnum.MUSIC_SHEET &&
+                        deviceControl.getDeviceType() != ImNetworkDeviceTypeEnum.EXAM_SONG &&
+                        deviceControl.getDeviceType() != ImNetworkDeviceTypeEnum.ACCOMPANIMENT){
+                    imNetworkRoomMemberService.getDao().updateById(roomMember);
+                }
             }
             if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(pluginService.pluginName())) {
                 // 腾讯消息

+ 5 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleStudentMusicSheetDao.xml

@@ -54,12 +54,15 @@
     </update>
 
     <resultMap id="CourseScheduleStudentMusicSheetResult" type="com.yonge.cooleshow.biz.dal.dto.CourseScheduleStudentMusicSheetResult" extends="BaseResultMap">
-        <result property="url" column="metronome_url_"/>
+        <result property="url" column="url"/>
         <result property="mp3Url" column="audio_file_url_"/>
         <result property="musicScoreName" column="music_sheet_name_"/>
     </resultMap>
     <select id="queryBySheetIdAndCourseId" resultMap="CourseScheduleStudentMusicSheetResult">
-        SELECT cssm.*,ms.audio_file_url_,ms.metronome_url_,ms.music_sheet_name_  FROM course_schedule_student_music_sheet cssm
+        SELECT cssm.*,ms.music_sheet_name_ ,
+        CASE WHEN ms.audio_file_url_ IS NOT NULL AND ms.audio_file_url_ != '' THEN ms.audio_file_url_
+        WHEN ms.metronome_url_ IS NOT NULL AND ms.metronome_url_ != '' THEN ms.metronome_url_ ELSE ms.url_ END AS url
+        FROM course_schedule_student_music_sheet cssm
         LEFT JOIN music_sheet_accompaniment msa ON cssm.music_sheet_accompaniment_id_ = msa.id_
         LEFT JOIN music_sheet ms ON ms.id_ = msa.music_sheet_id_
         <where>