浏览代码

网络教室

zouxuan 3 年之前
父节点
当前提交
cd2336073d

+ 5 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomServiceImpl.java

@@ -190,10 +190,14 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         log.info("quitRoomSuccess: roomId={}, userId={}", roomId, userId);
         //防止幂等
         StringBuffer sb  = new StringBuffer(QUIT_ROOM_SUCCESS).append(roomId).append(userId);
-        if (!redissonClient.getBucket(sb.toString()).setIfExists(userId,3, TimeUnit.SECONDS)){
+        if (!redissonClient.getBucket(sb.toString()).setIfExists(userId,1, TimeUnit.SECONDS)){
             log.info("quitRoomSuccess break: roomId={}, userId={}", roomId, userId);
             return;
         }
+        ImNetworkRoomMember roomMember = imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId);
+        if(Objects.isNull(roomMember)){
+            return;
+        }
         CourseSchedule courseSchedule = Optional.ofNullable(courseScheduleService.getById(roomId))
                 .orElseThrow(()->new BizException("房间信息不存在"));
         Long courseScheduleId = courseSchedule.getId();
@@ -202,7 +206,6 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             roleEnum = UserRoleEnum.TEACHER;
         }
         //记录考勤信息
-
         ImNetworkRoom room = baseMapper.findByRoomId(roomId);
         if (roleEnum == UserRoleEnum.TEACHER){
             //如果老师退出房间,关闭伴奏
@@ -216,7 +219,6 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             //老师退出房间,初始化节拍器和伴奏播放配置
             courseScheduleStudentPaymentService.adjustPlayMidiAndMusicSheet(courseSchedule.getId(), null, null,"");
         }
-        ImNetworkRoomMember roomMember = imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId);
         int memberNum = imNetworkRoomMemberService.getDao().countByRoomId(roomId);
         if (memberNum <= 1) {
             imHelper.dismiss(userId.toString(), roomId);