라이브 방

- 로그인 없이 조회 가능하도록 수정
This commit is contained in:
Klaus 2025-03-22 06:26:17 +09:00
parent 6dd6be183b
commit 3ff84074bd
3 changed files with 36 additions and 26 deletions

View File

@ -38,8 +38,6 @@ class LiveRoomController(
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?, @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
pageable: Pageable pageable: Pageable
) = run { ) = run {
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
ApiResponse.ok( ApiResponse.ok(
service.getRoomList( service.getRoomList(
dateString, dateString,

View File

@ -29,7 +29,7 @@ interface LiveRoomQueryRepository {
offset: Long, offset: Long,
limit: Long, limit: Long,
timezone: String, timezone: String,
memberId: Long, memberId: Long?,
isCreator: Boolean, isCreator: Boolean,
isAdult: Boolean isAdult: Boolean
): List<LiveRoom> ): List<LiveRoom>
@ -38,14 +38,14 @@ interface LiveRoomQueryRepository {
date: LocalDateTime, date: LocalDateTime,
offset: Long, offset: Long,
limit: Long, limit: Long,
memberId: Long, memberId: Long?,
isCreator: Boolean, isCreator: Boolean,
isAdult: Boolean isAdult: Boolean
): List<LiveRoom> ): List<LiveRoom>
fun getLiveRoomListReservationWithoutDate( fun getLiveRoomListReservationWithoutDate(
timezone: String, timezone: String,
memberId: Long, memberId: Long?,
isCreator: Boolean, isCreator: Boolean,
isAdult: Boolean isAdult: Boolean
): List<LiveRoom> ): List<LiveRoom>
@ -72,7 +72,7 @@ class LiveRoomQueryRepositoryImpl(
offset: Long, offset: Long,
limit: Long, limit: Long,
timezone: String, timezone: String,
memberId: Long, memberId: Long?,
isCreator: Boolean, isCreator: Boolean,
isAdult: Boolean isAdult: Boolean
): List<LiveRoom> { ): List<LiveRoom> {
@ -85,7 +85,7 @@ class LiveRoomQueryRepositoryImpl(
where = where.and(liveRoom.isAdult.isFalse) where = where.and(liveRoom.isAdult.isFalse)
} }
if (isCreator) { if (isCreator && memberId != null) {
where = where.and( where = where.and(
liveRoom.isAvailableJoinCreator.isTrue liveRoom.isAvailableJoinCreator.isTrue
.or(liveRoom.member.id.eq(memberId)) .or(liveRoom.member.id.eq(memberId))
@ -112,7 +112,7 @@ class LiveRoomQueryRepositoryImpl(
date: LocalDateTime, date: LocalDateTime,
offset: Long, offset: Long,
limit: Long, limit: Long,
memberId: Long, memberId: Long?,
isCreator: Boolean, isCreator: Boolean,
isAdult: Boolean isAdult: Boolean
): List<LiveRoom> { ): List<LiveRoom> {
@ -129,7 +129,7 @@ class LiveRoomQueryRepositoryImpl(
where = where.and(liveRoom.isAdult.isFalse) where = where.and(liveRoom.isAdult.isFalse)
} }
if (isCreator) { if (isCreator && memberId != null) {
where = where.and( where = where.and(
liveRoom.isAvailableJoinCreator.isTrue liveRoom.isAvailableJoinCreator.isTrue
.or(liveRoom.member.id.eq(memberId)) .or(liveRoom.member.id.eq(memberId))
@ -148,7 +148,7 @@ class LiveRoomQueryRepositoryImpl(
override fun getLiveRoomListReservationWithoutDate( override fun getLiveRoomListReservationWithoutDate(
timezone: String, timezone: String,
memberId: Long, memberId: Long?,
isCreator: Boolean, isCreator: Boolean,
isAdult: Boolean isAdult: Boolean
): List<LiveRoom> { ): List<LiveRoom> {
@ -169,7 +169,7 @@ class LiveRoomQueryRepositoryImpl(
where = where.and(liveRoom.isAdult.isFalse) where = where.and(liveRoom.isAdult.isFalse)
} }
if (isCreator) { if (isCreator && memberId != null) {
where = where.and( where = where.and(
liveRoom.isAvailableJoinCreator.isTrue liveRoom.isAvailableJoinCreator.isTrue
.or(liveRoom.member.id.eq(memberId)) .or(liveRoom.member.id.eq(memberId))

View File

@ -118,42 +118,54 @@ class LiveRoomService(
status: LiveRoomStatus, status: LiveRoomStatus,
isAdultContentVisible: Boolean, isAdultContentVisible: Boolean,
pageable: Pageable, pageable: Pageable,
member: Member, member: Member?,
timezone: String timezone: String
): List<GetRoomListResponse> { ): List<GetRoomListResponse> {
val roomList = if (status == LiveRoomStatus.NOW) { val roomList = if (status == LiveRoomStatus.NOW) {
getLiveRoomListNow( getLiveRoomListNow(
pageable, pageable,
timezone, timezone,
memberId = member.id!!, memberId = member?.id,
isCreator = member.role == MemberRole.CREATOR, isCreator = member?.role == MemberRole.CREATOR,
isAdult = member.auth != null && isAdultContentVisible isAdult = member?.auth != null && isAdultContentVisible
) )
} else if (dateString != null) { } else if (dateString != null) {
getLiveRoomListReservationWithDate( getLiveRoomListReservationWithDate(
dateString, dateString,
pageable, pageable,
timezone, timezone,
memberId = member.id!!, memberId = member?.id,
isCreator = member.role == MemberRole.CREATOR, isCreator = member?.role == MemberRole.CREATOR,
isAdult = member.auth != null && isAdultContentVisible isAdult = member?.auth != null && isAdultContentVisible
) )
} else { } else {
getLiveRoomListReservationWithoutDate( getLiveRoomListReservationWithoutDate(
timezone, timezone,
isCreator = member.role == MemberRole.CREATOR, isCreator = member?.role == MemberRole.CREATOR,
memberId = member.id!!, memberId = member?.id,
isAdult = member.auth != null && isAdultContentVisible isAdult = member?.auth != null && isAdultContentVisible
) )
} }
return roomList return roomList
.filter { !blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it.member!!.id!!) } .filter {
if (member?.id != null) {
!blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it.member!!.id!!)
} else {
true
}
}
.map { .map {
val roomInfo = roomInfoRepository.findByIdOrNull(it.id!!) val roomInfo = roomInfoRepository.findByIdOrNull(it.id!!)
val reservations = it.reservations val reservations = it.reservations
.filter { reservation -> reservation.member!!.id!! == member.id!! && reservation.isActive } .filter { reservation ->
if (member?.id != null) {
reservation.member!!.id!! == member.id!! && reservation.isActive
} else {
true
}
}
val beginDateTime = it.beginDateTime val beginDateTime = it.beginDateTime
.atZone(ZoneId.of("UTC")) .atZone(ZoneId.of("UTC"))
@ -202,7 +214,7 @@ class LiveRoomService(
private fun getLiveRoomListNow( private fun getLiveRoomListNow(
pageable: Pageable, pageable: Pageable,
timezone: String, timezone: String,
memberId: Long, memberId: Long?,
isCreator: Boolean, isCreator: Boolean,
isAdult: Boolean isAdult: Boolean
): List<LiveRoom> { ): List<LiveRoom> {
@ -220,7 +232,7 @@ class LiveRoomService(
dateString: String, dateString: String,
pageable: Pageable, pageable: Pageable,
timezone: String, timezone: String,
memberId: Long, memberId: Long?,
isCreator: Boolean, isCreator: Boolean,
isAdult: Boolean isAdult: Boolean
): List<LiveRoom> { ): List<LiveRoom> {
@ -242,7 +254,7 @@ class LiveRoomService(
private fun getLiveRoomListReservationWithoutDate( private fun getLiveRoomListReservationWithoutDate(
timezone: String, timezone: String,
memberId: Long, memberId: Long?,
isCreator: Boolean, isCreator: Boolean,
isAdult: Boolean isAdult: Boolean
): List<LiveRoom> { ): List<LiveRoom> {