zouxuan 4 年之前
父節點
當前提交
6046395647

+ 3 - 1
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -36,7 +36,9 @@ public class RoomController{
     }
     }
 
 
     @RequestMapping(value = "/leave", method = RequestMethod.POST)
     @RequestMapping(value = "/leave", method = RequestMethod.POST)
-    public Object leaveRoom(@RequestBody ReqUserData data){
+    public Object leaveRoom(@RequestBody RoomStatusNotify roomStatusNotify) throws Exception {
+        //成员退出
+        roomService.leaveRoomSuccess(roomStatusNotify.getRoomId(), roomStatusNotify.getUserId());
         return new BaseResponse<>();
         return new BaseResponse<>();
     }
     }
 
 

+ 13 - 1
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -47,6 +47,7 @@ import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import java.util.*;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 import static com.ym.pojo.RoleEnum.RoleStudent;
 import static com.ym.pojo.RoleEnum.RoleStudent;
@@ -272,7 +273,11 @@ public class RoomServiceImpl implements RoomService {
             redisTemplate.delete(joinSuccessKey);
             redisTemplate.delete(joinSuccessKey);
             return;
             return;
         }
         }
-        redisTemplate.opsForValue().set("joinRoomSuccess"+ roomId + userId,roomId);
+        String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
+        if(redisTemplate.hasKey(leaveSuccessKey)){
+            redisTemplate.delete(leaveSuccessKey);
+        }
+        redisTemplate.opsForValue().set(joinSuccessKey,roomId,2l,TimeUnit.SECONDS);
         log.info("joinRoomSuccess : roomId={}, userId={}", roomId, userId);
         log.info("joinRoomSuccess : roomId={}, userId={}", roomId, userId);
 
 
         RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
         RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
@@ -381,10 +386,17 @@ public class RoomServiceImpl implements RoomService {
         if(roomMember == null){
         if(roomMember == null){
             return ;
             return ;
         }
         }
+        String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
+        if(redisTemplate.hasKey(leaveSuccessKey)){
+            redisTemplate.delete(leaveSuccessKey);
+            return;
+        }
         String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
         String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
         if(redisTemplate.hasKey(joinSuccessKey)){
         if(redisTemplate.hasKey(joinSuccessKey)){
             redisTemplate.delete(joinSuccessKey);
             redisTemplate.delete(joinSuccessKey);
         }
         }
+        redisTemplate.opsForValue().set(leaveSuccessKey,roomId,2,TimeUnit.SECONDS);
+        //记录
         log.info("leaveRoomSuccess: roomId={}, userId={}", roomId,userId);
         log.info("leaveRoomSuccess: roomId={}, userId={}", roomId,userId);
         RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
         RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
         Integer firstCourseId = Integer.parseInt(roomId.substring(1));
         Integer firstCourseId = Integer.parseInt(roomId.substring(1));