shangke 2 lat temu
rodzic
commit
aab5ccb39e

+ 13 - 3
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -239,19 +239,24 @@ public class RoomServiceImpl implements RoomService {
                 log.info("join error Over max count: roomId = {}, userId = {}", roomId, userId);
                 return new BaseResponse(ErrorEnum.ERR_OVER_MAX_COUNT, ErrorEnum.ERR_OVER_MAX_COUNT.getErrMsg(), null);
             }
+
+            boolean microphone = true;
             if (teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())) {
                 roleEnum = RoleTeacher;
                 userName = sysUser.getRealName();
             } else {
                 roleEnum = RoleStudent;
                 userName = sysUser.getUsername();
+
+                // 学生加入房间,判定老师是否已开启全员静音
+                microphone = !muteAll;
             }
 
-            userResult.setMicrophone(!muteAll);
+            userResult.setMicrophone(microphone);
             userResult.setCamera(true);
             userResult.setHandUpOn(false);
             userResult.setJoinTime(curTime);
-            saveRoomMember(userId, sysUser.getAvatar(), userName, roomId, roleEnum.getValue(), curTime, !muteAll);
+            saveRoomMember(userId, sysUser.getAvatar(), userName, roomId, roleEnum.getValue(), curTime, microphone);
         } else {
             roleEnum = RoleEnum.getEnumByValue(member.getRole());
             if (roleEnum == RoleTeacher) {
@@ -485,14 +490,19 @@ public class RoomServiceImpl implements RoomService {
         RoomMember member = roomMemberDao.findByRidAndUid(roomId, userId);
         String userName;
         if (member == null) {
+
+            boolean microphone = true;
             if (teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())) {
                 roleEnum = RoleTeacher;
                 userName = sysUser.getRealName();
             } else {
                 roleEnum = RoleStudent;
                 userName = sysUser.getUsername();
+
+                // 判定老师是否已开启全员静音
+                microphone = !courseSchedule.getMuteAll();
             }
-            member = saveRoomMember(userId, sysUser.getAvatar(), userName, roomId, roleEnum.getValue(), curTime, !courseSchedule.getMuteAll());
+            member = saveRoomMember(userId, sysUser.getAvatar(), userName, roomId, roleEnum.getValue(), curTime, microphone);
         }
         return member;
     }