diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt index 3244c86..171c8a3 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt @@ -42,6 +42,7 @@ import kr.co.vividnext.sodalive.member.Gender import kr.co.vividnext.sodalive.member.Member import kr.co.vividnext.sodalive.member.MemberRepository import kr.co.vividnext.sodalive.member.MemberRole +import kr.co.vividnext.sodalive.member.block.BlockMemberRepository import kr.co.vividnext.sodalive.utils.generateFileName import org.springframework.beans.factory.annotation.Value import org.springframework.data.domain.Pageable @@ -63,6 +64,7 @@ class LiveRoomService( private val roomInfoRepository: LiveRoomInfoRedisRepository, private val roomCancelRepository: LiveRoomCancelRepository, private val kickOutService: LiveRoomKickOutService, + private val blockMemberRepository: BlockMemberRepository, private val useCanCalculateRepository: UseCanCalculateRepository, private val reservationRepository: LiveReservationRepository, @@ -419,6 +421,12 @@ class LiveRoomService( throw SodaException("비밀번호가 일치하지 않습니다.\n다시 확인 후 입력해주세요.") } + val isBlocked = blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = room.member!!.id!!) + if (isBlocked) throw SodaException("${room.member!!.nickname}님의 요청으로 라이브에 입장할 수 없습니다.") + + val kickOutCount = kickOutService.getKickOutCount(roomId = room.id!!, userId = member.id!!) + if (kickOutCount >= 2) throw SodaException("${room.member!!.nickname}님의 요청으로 라이브에 참여할 수 없습니다.") + val lock = getOrCreateLock(memberId = member.id!!) lock.write { var roomInfo = roomInfoRepository.findByIdOrNull(request.roomId)