parent
82b07897f8
commit
adf181f790
|
@ -283,13 +283,4 @@ class LiveRoomController(
|
||||||
|
|
||||||
ApiResponse.ok(service.getTotalHeartCount(roomId))
|
ApiResponse.ok(service.getTotalHeartCount(roomId))
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/{id}/heart-list")
|
|
||||||
fun heartList(
|
|
||||||
@PathVariable("id") roomId: Long,
|
|
||||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
|
||||||
) = run {
|
|
||||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
|
||||||
ApiResponse.ok(service.getHeartList(roomId))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,6 @@ import kr.co.vividnext.sodalive.live.room.QLiveRoom.liveRoom
|
||||||
import kr.co.vividnext.sodalive.live.room.QQuarterLiveRankings.quarterLiveRankings
|
import kr.co.vividnext.sodalive.live.room.QQuarterLiveRankings.quarterLiveRankings
|
||||||
import kr.co.vividnext.sodalive.live.room.donation.GetLiveRoomDonationItem
|
import kr.co.vividnext.sodalive.live.room.donation.GetLiveRoomDonationItem
|
||||||
import kr.co.vividnext.sodalive.live.room.donation.QGetLiveRoomDonationItem
|
import kr.co.vividnext.sodalive.live.room.donation.QGetLiveRoomDonationItem
|
||||||
import kr.co.vividnext.sodalive.live.room.like.GetLiveRoomHeartListItem
|
|
||||||
import kr.co.vividnext.sodalive.live.room.like.QGetLiveRoomHeartListItem
|
|
||||||
import kr.co.vividnext.sodalive.member.QMember.member
|
import kr.co.vividnext.sodalive.member.QMember.member
|
||||||
import org.springframework.beans.factory.annotation.Value
|
import org.springframework.beans.factory.annotation.Value
|
||||||
import org.springframework.data.jpa.repository.JpaRepository
|
import org.springframework.data.jpa.repository.JpaRepository
|
||||||
|
@ -59,7 +57,6 @@ interface LiveRoomQueryRepository {
|
||||||
fun getActiveRoomIdList(memberId: Long): Int
|
fun getActiveRoomIdList(memberId: Long): Int
|
||||||
fun getTotalHeartCount(roomId: Long): Int?
|
fun getTotalHeartCount(roomId: Long): Int?
|
||||||
fun getLiveRoomCreatorId(roomId: Long): Long?
|
fun getLiveRoomCreatorId(roomId: Long): Long?
|
||||||
fun getHeartList(roomId: Long): List<GetLiveRoomHeartListItem>
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class LiveRoomQueryRepositoryImpl(
|
class LiveRoomQueryRepositoryImpl(
|
||||||
|
@ -349,29 +346,4 @@ class LiveRoomQueryRepositoryImpl(
|
||||||
)
|
)
|
||||||
.fetchFirst()
|
.fetchFirst()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getHeartList(roomId: Long): List<GetLiveRoomHeartListItem> {
|
|
||||||
val where = liveRoom.id.eq(roomId)
|
|
||||||
.and(useCan.canUsage.eq(CanUsage.HEART))
|
|
||||||
.and(useCan.isRefund.isFalse)
|
|
||||||
|
|
||||||
return queryFactory
|
|
||||||
.select(
|
|
||||||
QGetLiveRoomHeartListItem(
|
|
||||||
member.profileImage
|
|
||||||
.coalesce("profile/default-profile.png")
|
|
||||||
.prepend("/")
|
|
||||||
.prepend(cloudFrontHost),
|
|
||||||
member.nickname,
|
|
||||||
useCan.can.add(useCan.rewardCan)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.from(useCan)
|
|
||||||
.innerJoin(useCan.room, liveRoom)
|
|
||||||
.innerJoin(useCan.member, member)
|
|
||||||
.groupBy(useCan.member.id)
|
|
||||||
.where(where)
|
|
||||||
.orderBy(useCan.can.add(useCan.rewardCan).sum().desc())
|
|
||||||
.fetch()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,6 @@ import kr.co.vividnext.sodalive.live.room.info.LiveRoomInfo
|
||||||
import kr.co.vividnext.sodalive.live.room.info.LiveRoomInfoRedisRepository
|
import kr.co.vividnext.sodalive.live.room.info.LiveRoomInfoRedisRepository
|
||||||
import kr.co.vividnext.sodalive.live.room.info.LiveRoomMember
|
import kr.co.vividnext.sodalive.live.room.info.LiveRoomMember
|
||||||
import kr.co.vividnext.sodalive.live.room.kickout.LiveRoomKickOutService
|
import kr.co.vividnext.sodalive.live.room.kickout.LiveRoomKickOutService
|
||||||
import kr.co.vividnext.sodalive.live.room.like.GetLiveRoomHeartListResponse
|
|
||||||
import kr.co.vividnext.sodalive.live.room.like.GetLiveRoomHeartTotalResponse
|
import kr.co.vividnext.sodalive.live.room.like.GetLiveRoomHeartTotalResponse
|
||||||
import kr.co.vividnext.sodalive.live.room.like.LiveRoomLikeHeartRequest
|
import kr.co.vividnext.sodalive.live.room.like.LiveRoomLikeHeartRequest
|
||||||
import kr.co.vividnext.sodalive.live.room.menu.CreateLiveMenuRequest
|
import kr.co.vividnext.sodalive.live.room.menu.CreateLiveMenuRequest
|
||||||
|
@ -1270,14 +1269,4 @@ class LiveRoomService(
|
||||||
fun getTotalHeartCount(roomId: Long): GetLiveRoomHeartTotalResponse {
|
fun getTotalHeartCount(roomId: Long): GetLiveRoomHeartTotalResponse {
|
||||||
return GetLiveRoomHeartTotalResponse(totalHeartCount = repository.getTotalHeartCount(roomId = roomId) ?: 0)
|
return GetLiveRoomHeartTotalResponse(totalHeartCount = repository.getTotalHeartCount(roomId = roomId) ?: 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getHeartList(roomId: Long): GetLiveRoomHeartListResponse {
|
|
||||||
val heartList = repository.getHeartList(roomId = roomId)
|
|
||||||
|
|
||||||
return GetLiveRoomHeartListResponse(
|
|
||||||
heartList = heartList,
|
|
||||||
totalCount = heartList.size,
|
|
||||||
totalHeart = heartList.sumOf { it.heart }
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue