|  | @@ -99,31 +99,15 @@ public class RoomServiceImpl implements RoomService {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public void joinRoomSuccess(RoomMember roomMember) throws Exception {
 | 
	
		
			
				|  |  | -        StudentExamApiDto examResult = null;
 | 
	
		
			
				|  |  |          String roomId = roomMember.getRid();
 | 
	
		
			
				|  |  |          String userId = roomMember.getUid();
 | 
	
		
			
				|  |  |          Long registrationId = roomMember.getExamRegistrationId();
 | 
	
		
			
				|  |  | -        log.info("joinRoomSuccess: roomId={}, userId={}", roomId,userId);
 | 
	
		
			
				|  |  | -        Integer anInt = Integer.parseInt(userId);
 | 
	
		
			
				|  |  | -        if(registrationId != null){
 | 
	
		
			
				|  |  | -            examResult = eduUserFeignService.getExamResult(registrationId);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        CheckUtils.checkArgument(roomId != null, "roomId must't be null");
 | 
	
		
			
				|  |  | +        log.info("joinRoomSuccess: roomId={}, userId={}, registrationId={}", roomId,userId,registrationId);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          Date curTime = DateTimeUtils.currentUTC();
 | 
	
		
			
				|  |  |          if (!roomDao.existsByRid(roomId)) {
 | 
	
		
			
				|  |  |              saveRoom(roomId,curTime, null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -//        RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        log.info("user exist in the room: roomId={} , userId={}, use the last role={}", roomId, userId, roomMember.getRole());
 | 
	
		
			
				|  |  | -        MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Join, userId, roomMember.getRole());
 | 
	
		
			
				|  |  | -        msg.setTimestamp(curTime);
 | 
	
		
			
				|  |  | -        msg.setUserName(roomMember.getName());
 | 
	
		
			
				|  |  | -        msg.setCamera(true);
 | 
	
		
			
				|  |  | -        imHelper.publishMessage(userId, roomId, msg);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          UserInfo userInfo = userDao.findByUid(userId);
 | 
	
		
			
				|  |  |          if (userInfo == null) {
 | 
	
		
			
				|  |  |              userInfo = new UserInfo();
 | 
	
	
		
			
				|  | @@ -136,17 +120,22 @@ public class RoomServiceImpl implements RoomService {
 | 
	
		
			
				|  |  |              userInfo.setUpdateDt(curTime);
 | 
	
		
			
				|  |  |              userDao.save(userInfo);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Join, userId, roomMember.getRole());
 | 
	
		
			
				|  |  | +        msg.setTimestamp(curTime);
 | 
	
		
			
				|  |  | +        msg.setUserName(roomMember.getName());
 | 
	
		
			
				|  |  | +        msg.setCamera(true);
 | 
	
		
			
				|  |  | +        imHelper.publishMessage(userId, roomId, msg);
 | 
	
		
			
				|  |  |          log.info("join success: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, roomMember.getRole());
 | 
	
		
			
				|  |  |          if(registrationId != null){
 | 
	
		
			
				|  |  | +            StudentExamApiDto examResult = eduUserFeignService.getExamResult(registrationId);
 | 
	
		
			
				|  |  |              if(examResult.getIsFinishedExam() == 1){
 | 
	
		
			
				|  |  |                  eduUserFeignService.updateFinishedExam(registrationId,0);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              this.publishMessage(eduUserFeignService.getPublishMessage(registrationId));
 | 
	
		
			
				|  |  |              eduUserFeignService.upsetStudentAttendance(registrationId,0);
 | 
	
		
			
				|  |  |              imHelper.startRecord(roomId, registrationId);
 | 
	
		
			
				|  |  | -//            exitRoom(roomId,userId);
 | 
	
		
			
				|  |  |          }else {
 | 
	
		
			
				|  |  | -            eduUserFeignService.upsetTeacherAttendance(Long.parseLong(roomId),anInt,0);
 | 
	
		
			
				|  |  | +            eduUserFeignService.upsetTeacherAttendance(Long.parseLong(roomId),Integer.parseInt(userId),0);
 | 
	
		
			
				|  |  |              imHelper.configRecord(roomId);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -248,11 +237,7 @@ public class RoomServiceImpl implements RoomService {
 | 
	
		
			
				|  |  |          room.setName(roomId);
 | 
	
		
			
				|  |  |          room.setCreateDt(createTime);
 | 
	
		
			
				|  |  |          room.setDisplay(display);
 | 
	
		
			
				|  |  | -        try {
 | 
	
		
			
				|  |  | -            roomDao.save(room);
 | 
	
		
			
				|  |  | -        }catch (Exception e){
 | 
	
		
			
				|  |  | -            throw new BizException("当前线上课人数较多,请稍后重试");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        roomDao.save(room);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private void saveRoomMember(String userId, String headUrl, String userName, String roomId, int role, boolean cameraOn, Date joinTime,Long examRegistrationId) {
 | 
	
	
		
			
				|  | @@ -277,10 +262,6 @@ public class RoomServiceImpl implements RoomService {
 | 
	
		
			
				|  |  |          Long registrationId = roomMember.getExamRegistrationId();
 | 
	
		
			
				|  |  |          log.info("leaveRoomSuccess: roomId={}, userId={}", roomId,userId);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        CheckUtils.checkArgument(userId != null, "userId must't be null");
 | 
	
		
			
				|  |  | -        CheckUtils.checkArgument(roomId != null, "roomId must't be null");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -//        Room room = roomDao.findByRid(roomId);
 | 
	
		
			
				|  |  |          if (!roomDao.existsByRid(roomId)) {
 | 
	
		
			
				|  |  |              log.error("room : {} not exist ", roomId);
 | 
	
		
			
				|  |  |              return;
 |