| 
														
															@@ -35,8 +35,10 @@ import org.springframework.data.redis.core.RedisTemplate; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.stereotype.Service; 
														 | 
														
														 | 
														
															 import org.springframework.stereotype.Service; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.transaction.annotation.Isolation; 
														 | 
														
														 | 
														
															 import org.springframework.transaction.annotation.Isolation; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.transaction.annotation.Transactional; 
														 | 
														
														 | 
														
															 import org.springframework.transaction.annotation.Transactional; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.*; 
														 | 
														
														 | 
														
															 import java.util.*; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.stream.Collectors; 
														 | 
														
														 | 
														
															 import java.util.stream.Collectors; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import static com.keao.edu.im.pojo.RoleEnum.Student; 
														 | 
														
														 | 
														
															 import static com.keao.edu.im.pojo.RoleEnum.Student; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 /** 
														 | 
														
														 | 
														
															 /** 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -102,18 +104,25 @@ public class RoomServiceImpl implements RoomService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Override 
														 | 
														
														 | 
														
															     @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public BaseResponse joinRoom(Long registrationId, boolean isAudience, boolean isDisableCamera, boolean isMusicMode, String roomId) throws ApiException, Exception { 
														 | 
														
														 | 
														
															     public BaseResponse joinRoom(Long registrationId, boolean isAudience, boolean isDisableCamera, boolean isMusicMode, String roomId) throws ApiException, Exception { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         StudentExamResultApiDto examResult = null; 
														 | 
														
														 | 
														
															         StudentExamResultApiDto examResult = null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        log.info("joinRoom: roomId={}, isAudience={}, isDisableCamera={},isMusicMode={}", roomId, isAudience, isDisableCamera,isMusicMode); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        SysUser sysUser = sysUserFeignService.queryUserInfo(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        String userId = sysUser.getId().toString(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        String realName = sysUser.getRealName(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if(registrationId != null){ 
														 | 
														
														 | 
														
															         if(registrationId != null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             examResult = eduUserFeignService.getExamResult(registrationId); 
														 | 
														
														 | 
														
															             examResult = eduUserFeignService.getExamResult(registrationId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             roomId = examResult.getRoomId(); 
														 | 
														
														 | 
														
															             roomId = examResult.getRoomId(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            List<RoomMember> byRidAndRole = roomMemberDao.findByRidAndRole(roomId, 3); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if(byRidAndRole != null && byRidAndRole.size() > 0){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                log.info("学员加入时,将其他学员退出房间 byRidAndRole{}",byRidAndRole); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                for (RoomMember e: byRidAndRole) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    leaveRoom(e.getExamRegistrationId(),roomId,userId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         CheckUtils.checkArgument(roomId != null, "roomId must't be null"); 
														 | 
														
														 | 
														
															         CheckUtils.checkArgument(roomId != null, "roomId must't be null"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        log.info("joinRoom: roomId={}, isAudience={}, isDisableCamera={},isMusicMode={}", roomId, isAudience, isDisableCamera,isMusicMode); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        SysUser sysUser = sysUserFeignService.queryUserInfo(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        String userId = sysUser.getId().toString(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        String realName = sysUser.getRealName(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ExamRoom examRoom = eduUserFeignService.getExamRoom(Integer.parseInt(roomId)); 
														 | 
														
														 | 
														
															         ExamRoom examRoom = eduUserFeignService.getExamRoom(Integer.parseInt(roomId)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         boolean isAssistant = false; 
														 | 
														
														 | 
														
															         boolean isAssistant = false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (StringUtils.isNotEmpty(examRoom.getAssistantTeacherUserIdList())){ 
														 | 
														
														 | 
														
															         if (StringUtils.isNotEmpty(examRoom.getAssistantTeacherUserIdList())){ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -209,6 +218,7 @@ public class RoomServiceImpl implements RoomService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             roomResult.setRegistrationId(registrationId); 
														 | 
														
														 | 
														
															             roomResult.setRegistrationId(registrationId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         roomResult.setExamFlag(examRoom.getExamFlag()); 
														 | 
														
														 | 
														
															         roomResult.setExamFlag(examRoom.getExamFlag()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<RoomMember> roomMembers = roomMemberDao.findByRid(roomId); 
														 | 
														
														 | 
														
															         List<RoomMember> roomMembers = roomMemberDao.findByRid(roomId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         roomResult.setMembers(roomMembers,examRoom.getShieldUserId()); 
														 | 
														
														 | 
														
															         roomResult.setMembers(roomMembers,examRoom.getShieldUserId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         log.info("join success: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, roleEnum); 
														 | 
														
														 | 
														
															         log.info("join success: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, roleEnum); 
														 |