라이브 입장 - 퇴장 횟수 체크, 차단된 유저 체크

This commit is contained in:
Klaus 2023-08-07 14:47:00 +09:00
parent 6ff38decab
commit b556219e36
1 changed files with 8 additions and 0 deletions

View File

@ -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)