|
@@ -35,8 +35,10 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Isolation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+
|
|
|
import static com.keao.edu.im.pojo.RoleEnum.Student;
|
|
|
|
|
|
/**
|
|
@@ -102,18 +104,25 @@ public class RoomServiceImpl implements RoomService {
|
|
|
@Override
|
|
|
public BaseResponse joinRoom(Long registrationId, boolean isAudience, boolean isDisableCamera, boolean isMusicMode, String roomId) throws ApiException, Exception {
|
|
|
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){
|
|
|
examResult = eduUserFeignService.getExamResult(registrationId);
|
|
|
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");
|
|
|
|
|
|
- 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));
|
|
|
boolean isAssistant = false;
|
|
|
if (StringUtils.isNotEmpty(examRoom.getAssistantTeacherUserIdList())){
|
|
@@ -209,6 +218,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
roomResult.setRegistrationId(registrationId);
|
|
|
}
|
|
|
roomResult.setExamFlag(examRoom.getExamFlag());
|
|
|
+
|
|
|
List<RoomMember> roomMembers = roomMemberDao.findByRid(roomId);
|
|
|
roomResult.setMembers(roomMembers,examRoom.getShieldUserId());
|
|
|
log.info("join success: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, roleEnum);
|