浏览代码

update im逻辑梳理

zouxuan 4 年之前
父节点
当前提交
aacd2be578
共有 1 个文件被更改,包括 20 次插入51 次删除
  1. 20 51
      edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

+ 20 - 51
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

@@ -105,43 +105,20 @@ public class RoomServiceImpl implements RoomService {
         Long registrationId = roomMember.getExamRegistrationId();
         log.info("joinRoomSuccess: roomId={}, userId={}", roomId,userId);
         Integer anInt = Integer.parseInt(userId);
-
-//        SysUser sysUser = sysUserFeignService.queryUserById(Integer.parseInt(roomMember.getUid()));
-//        String realName = sysUser.getRealName();
         if(registrationId != null){
             examResult = eduUserFeignService.getExamResult(registrationId);
         }
 
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
 
-        ExamRoom examRoom = eduUserFeignService.getExamRoom(Integer.parseInt(roomId));
-        boolean isAssistant = false;
-        if (StringUtils.isNotEmpty(examRoom.getAssistantTeacherUserIdList())){
-            List<String> list = Arrays.asList(examRoom.getAssistantTeacherUserIdList().split(","));
-            if(list.contains(userId)){
-                isAssistant = true;
-            }
-        }
         Date curTime = DateTimeUtils.currentUTC();
-        Room room = roomDao.findByRid(roomId);
-        if (room == null) {
-            saveRoom(roomId, roomId, curTime, null);
-        }
-        RoleEnum roleEnum;
-        if (roomMember == null) {
-            if(anInt.equals(examRoom.getMainTeacherUserId())){
-                roleEnum = RoleEnum.MainTeacher;
-            }else if(isAssistant){
-                roleEnum = RoleEnum.AssistantTeacher;
-            }else {
-                roleEnum = Student;
-            }
-            saveRoomMember(userId,roomMember.getHeadUrl(), roomMember.getName(), roomId, roleEnum.getValue(),true, curTime,registrationId);
-        } else {
-            roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
+        if (!roomDao.existsByRid(roomId)) {
+            saveRoom(roomId,curTime, null);
         }
-        log.info("user exist in the room: roomId={} , userId={}, use the last role={}", roomId, userId, roleEnum);
-        MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Join, userId, roleEnum.getValue());
+//        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);
@@ -159,7 +136,7 @@ public class RoomServiceImpl implements RoomService {
             userInfo.setUpdateDt(curTime);
             userDao.save(userInfo);
         }
-        log.info("join success: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, roleEnum);
+        log.info("join success: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, roomMember.getRole());
         if(registrationId != null){
             if(examResult.getIsFinishedExam() == 1){
                 eduUserFeignService.updateFinishedExam(registrationId,0);
@@ -169,7 +146,7 @@ public class RoomServiceImpl implements RoomService {
             imHelper.startRecord(roomId, registrationId);
 //            exitRoom(roomId,userId);
         }else {
-            eduUserFeignService.upsetTeacherAttendance(examRoom.getId(),anInt,0);
+            eduUserFeignService.upsetTeacherAttendance(Long.parseLong(roomId),anInt,0);
             imHelper.configRecord(roomId);
         }
     }
@@ -200,9 +177,8 @@ public class RoomServiceImpl implements RoomService {
             }
         }
         Date curTime = DateTimeUtils.currentUTC();
-        Room room = roomDao.findByRid(roomId);
-        if (room == null) {
-            saveRoom(roomId, roomId, curTime, null);
+        if (!roomDao.existsByRid(roomId)) {
+            saveRoom(roomId,curTime, null);
         }
         RoleEnum roleEnum;
         RoomResult roomResult = new RoomResult();
@@ -266,10 +242,10 @@ public class RoomServiceImpl implements RoomService {
         return baseResponse;
     }
 
-    private void saveRoom(String roomId, String roomName, Date createTime, String display) {
+    private void saveRoom(String roomId,Date createTime, String display) {
         Room room = new Room();
         room.setRid(roomId);
-        room.setName(roomName);
+        room.setName(roomId);
         room.setCreateDt(createTime);
         room.setDisplay(display);
         try {
@@ -304,29 +280,22 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(userId != null, "userId must't be null");
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
 
-        Room room = roomDao.findByRid(roomId);
-        if (room == null) {
+//        Room room = roomDao.findByRid(roomId);
+        if (!roomDao.existsByRid(roomId)) {
             log.error("room : {} not exist ", roomId);
             return;
         }
-        if (roomMember == null) {
-            log.error("{} not exist in room: {}", userId, roomId);
-            return;
-        }
         int userRole = roomMember.getRole();
         log.info("leaveRoom: roomId={}, role={}", roomId, RoleEnum.getEnumByValue(userRole));
-
+        roomMemberDao.deleteUserByRidAndUid(roomId, userId);
+        userDao.deleteByUid(userId);
         if (roomMemberDao.countByRid(roomId) == 1) {
-            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
             roomDao.deleteByRid(roomId);
-        } else {
-            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-            MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, userRole);
-            msg.setUserName(roomMember.getName());
-            imHelper.publishMessage(userId, roomId, msg);
-            log.info("quit group: roomId={},userId: {}", roomId,userId);
         }
-        userDao.deleteByUid(userId);
+        MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, userRole);
+        msg.setUserName(roomMember.getName());
+        imHelper.publishMessage(userId, roomId, msg);
+        log.info("quit group: roomId={},userId: {}", roomId,userId);
         if(registrationId != null){
             eduUserFeignService.upsetStudentAttendance(registrationId,1);
             imHelper.stopRecord(roomId);