zouxuan 4 years ago
parent
commit
24804fab31

+ 21 - 26
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

@@ -97,9 +97,12 @@ public class RoomServiceImpl implements RoomService {
         }
     }
 
-    public void joinRoomSuccess(RoomMember roomMember) throws Exception {
-        String roomId = roomMember.getRid();
-        String userId = roomMember.getUid();
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.SERIALIZABLE)
+    public void joinRoomSuccess(String roomId,String userId) throws Exception {
+        RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
+        if(roomMember == null){
+            return;
+        }
         Long registrationId = roomMember.getExamRegistrationId();
         log.info("joinRoomSuccess: roomId={}, userId={}, registrationId={}", roomId,userId,registrationId);
 
@@ -264,9 +267,12 @@ public class RoomServiceImpl implements RoomService {
         return roomMember;
     }
 
-    public void leaveRoomSuccess(RoomMember roomMember) throws Exception {
-        String roomId = roomMember.getRid();
-        String userId = roomMember.getUid();
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.SERIALIZABLE)
+    public void leaveRoomSuccess(String roomId,String userId) throws Exception {
+        RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
+        if(roomMember == null){
+            return;
+        }
         Long registrationId = roomMember.getExamRegistrationId();
         log.info("leaveRoomSuccess: roomId={}, userId={}", roomId,userId);
 
@@ -1170,11 +1176,9 @@ public class RoomServiceImpl implements RoomService {
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class, isolation = Isolation.SERIALIZABLE)
     public boolean statusSync(ChannelStateNotify notify) throws Exception {
         String roomId = notify.getRoomId();
         String userId = notify.getUserId();
-        RoomMember roomMember = null;
         switch (notify.getEvent()){
             case 3:
                 log.info("房间销毁 roomId: {}, userId: {}",roomId, userId);
@@ -1182,34 +1186,25 @@ public class RoomServiceImpl implements RoomService {
                 break;
             case 11:
                 //成员加入
-                roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
-                if(roomMember == null){
-                    return false;
-                }
-                joinRoomSuccess(roomMember);
+                joinRoomSuccess(roomId, userId);
                 break;
             case 12:
                 //成员退出
-                roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
-                if(roomMember == null){
-                    return false;
-                }
-                leaveRoomSuccess(roomMember);
+                leaveRoomSuccess(roomId, userId);
                 break;
             case 20:
-                roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
-                if(roomMember == null){
-                    return false;
-                }
-                resourceChange(roomMember,notify.getMembers());
+                resourceChange(roomId, userId,notify.getMembers());
                 break;
         }
         return true;
     }
 
-    private void resourceChange(RoomMember roomMember,List<Member> members){
-        String roomId = roomMember.getRid();
-        String userId = roomMember.getUid();
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.SERIALIZABLE)
+    public void resourceChange(String roomId,String userId,List<Member> members){
+        RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
+        if(roomMember == null){
+            return;
+        }
         log.info("资源变动 roomId: {}, userId: {}",roomId, userId);
         boolean msidFlag = false;
         Integer state = null;