zouxuan 4 年之前
父节点
当前提交
835a1c51e1
共有 1 个文件被更改,包括 10 次插入6 次删除
  1. 10 6
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

+ 10 - 6
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -474,29 +474,33 @@ public class RoomServiceImpl implements RoomService {
             username = sysUser.getUsername();
             studentAttendanceService.addStudentAttendanceSignOut(firstCourseId.longValue(),parseInt);
         }
-        roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-        userDao.deleteByUid(userId);
         Room room = roomDao.findByRid(roomId);
         if (room == null) {
+            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
+            userDao.deleteByUid(userId);
             return;
         }
         if (roleEnum != RoleStudent && isUserDisplay(room, userId)) {
             updateDisplay(roomId, userId, "", 0);
         }
-        if (roomMemberDao.countByRid(roomId) == 0) {
+        if (roomMemberDao.countByRid(roomId) <= 1) {
+            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
             roomDao.deleteByRid(roomId);
+            deleteWhiteboardByUser(roomId, userId);
             imHelper.dismiss(userId, roomId);
             log.info("leaveRoomSuccess dismiss the room: {},userId: {}", roomId,userId);
         } else {
+            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
             MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, roleEnum.getValue());
             msg.setUserName(username);
             imHelper.publishMessage(userId, roomId, msg);
             imHelper.quit(new String[]{userId}, roomId);
             log.info("leaveRoomSuccess quit group: roomId={},userId: {}", roomId,userId);
         }
+        userDao.deleteByUid(userId);
     }
 
-    /*public void deleteWhiteboardByUser(String roomId, String userId) throws Exception {
+    public void deleteWhiteboardByUser(String roomId, String userId) throws Exception {
         List<Whiteboard> whiteboardList = whiteboardDao.findByRidAndCreator(roomId, userId);
         if (!whiteboardList.isEmpty()) {
             whiteboardDao.deleteByRidAndCreator(roomId, userId);
@@ -504,7 +508,7 @@ public class RoomServiceImpl implements RoomService {
                 whiteBoardHelper.destroy(wb.getWbRoom());
             }
         }
-    }*/
+    }
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Override
@@ -1392,7 +1396,7 @@ public class RoomServiceImpl implements RoomService {
                     if (apiResultInfo.getCode() == 200) {
                         roomMemberDao.deleteUserByRidAndUid(member.getRid(), member.getUid());
                         roomDao.deleteByRid(member.getRid());
-//                        deleteWhiteboardByUser(member.getRid(), member.getUid());
+                        deleteWhiteboardByUser(member.getRid(), member.getUid());
                         log.info("dismiss the room: {},userId: {}", member.getRid(),userId);
                     } else {
                         log.error("{} exit {} room error: {}", member.getUid(), member.getRid(), apiResultInfo.getErrorMessage());