parent
6dd6be183b
commit
3ff84074bd
|
@ -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,
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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> {
|
||||||
|
|
Loading…
Reference in New Issue