라이브 방

- 로그인 없이 조회 가능하도록 수정
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?,
pageable: Pageable
) = run {
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
ApiResponse.ok(
service.getRoomList(
dateString,

View File

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

View File

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