zouxuan 5 years ago
parent
commit
b143e0963d

+ 24 - 15
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

@@ -33,6 +33,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
@@ -76,6 +77,28 @@ public class RoomServiceImpl implements RoomService {
         return baseResponse;
     }
 
+    @Async
+    public void exitRoom(String roomId,String userId){
+        List<RoomMember> byRidAndRole = roomMemberDao.findByRidAndRole(roomId, 3);
+        if(byRidAndRole != null && byRidAndRole.size() > 0){
+            log.info("学员加入时,将其他学员退出房间 byRidAndRole{}",byRidAndRole);
+            for (RoomMember e: byRidAndRole) {
+                if(e.getUid().equals(userId)){
+                    continue;
+                }
+                roomMemberDao.deleteUserByRidAndUid(roomId, e.getUid());
+                MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, 3);
+                msg.setUserName(e.getName());
+                userDao.deleteByUid(userId);
+                try {
+                    imHelper.publishMessage(userId, roomId, msg);
+                } catch (Exception e1) {
+                    e1.printStackTrace();
+                }
+            }
+        }
+    }
+
     public void joinRoomSuccess(Long registrationId,String roomId,String userId) throws Exception {
         StudentExamResultApiDto examResult = null;
         log.info("joinRoomSuccess: roomId={}, isAudience={}, isDisableCamera={},isMusicMode={}", roomId);
@@ -85,21 +108,6 @@ public class RoomServiceImpl implements RoomService {
         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) {
-                    if(e.getUid().equals(userId)){
-                        continue;
-                    }
-                    roomMemberDao.deleteUserByRidAndUid(roomId, e.getUid());
-                    MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, 3);
-                    msg.setUserName(e.getName());
-                    userDao.deleteByUid(userId);
-                    imHelper.publishMessage(userId, roomId, msg);
-//                    leaveRoom(e.getExamRegistrationId(),roomId,userId);
-                }
-            }
         }
 
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
@@ -158,6 +166,7 @@ public class RoomServiceImpl implements RoomService {
             this.publishMessage(eduUserFeignService.getPublishMessage(registrationId));
             eduUserFeignService.upsetStudentAttendance(registrationId,0);
             imHelper.startRecord(roomId, registrationId);
+//            exitRoom(roomId,userId);
         }else {
             eduUserFeignService.upsetTeacherAttendance(examRoom.getId(),sysUser.getId(),0);
             imHelper.configRecord(roomId);

+ 0 - 18
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java

@@ -726,16 +726,7 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		publishMessageDto.setRoomId(examRoomStudentRelation.getExamRoomId().toString());
 		MemberChangedMessage msg = new MemberChangedMessage(action, examRoomStudentRelation.getStudentId().toString(),3);
 
-//		NeedCheckingDetailDto needCheckingDetailDto = examCertificationService.needCheckingDetail(examRoomStudentRelation.getExamRegistrationId());
-//		msg.setWaitNum(needCheckingDetailDto.getWaitNum());
-//		msg.setClassroomSwitch(needCheckingDetailDto.getClassroomSwitch());
-//		msg.setOpenFlag(needCheckingDetailDto.getOpenFlag());
-
 		msg.setAppParamJson(examCertificationService.basicNeedCheckingDetail(examRoomStudentRelation.getExamRoomId()));
-//		Map<String,Object> paramMap = new HashMap<>(2);
-//		paramMap.put("studentQueue",this.queryNeedCheckingList(examRoomStudentRelation.getExamRoomId()));
-//		paramMap.put("examCertification",examCertificationService.findDetailByStudentId(examRoomStudentRelation.getExamRegistrationId()));
-//		msg.setWebParamJson(JSONObject.toJSONString(paramMap));
 		publishMessageDto.setMemberChangedMessage(msg);
 		imFeignService.publishMessage(publishMessageDto);
 	}
@@ -756,15 +747,6 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Student_Queue, examRoomStudentRelation.getStudentId().toString(),3);
 
 		msg.setAppParamJson(examCertificationService.basicNeedCheckingDetail(examRoomStudentRelation.getExamRoomId()));
-
-//		NeedCheckingDetailDto needCheckingDetailDto = examCertificationService.needCheckingDetail(examRoomStudentRelation.getExamRegistrationId());
-//		msg.setWaitNum(needCheckingDetailDto.getWaitNum());
-//		msg.setClassroomSwitch(needCheckingDetailDto.getClassroomSwitch());
-//		msg.setOpenFlag(needCheckingDetailDto.getOpenFlag());
-//		Map<String,Object> paramMap = new HashMap<>(2);
-//		paramMap.put("studentQueue",this.queryNeedCheckingList(examRoomStudentRelation.getExamRoomId()));
-//		paramMap.put("examCertification",examCertificationService.findDetailByStudentId(examRoomStudentRelation.getExamRegistrationId()));
-//		msg.setWebParamJson(JSONObject.toJSONString(paramMap));
 		publishMessageDto.setMemberChangedMessage(msg);
 		return publishMessageDto;
 	}