From 2f0182e06c54cdab37f647c51ffbe5746bcefdfb Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 13 Feb 2025 14:37:44 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20=EB=8B=A8=ED=8E=B8=20=ED=83=AD=20-=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EC=9D=BC=EA=B0=84=20=EB=9E=AD=ED=82=B9=20?= =?UTF-8?q?API=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AudioContentMainTabContentController.kt | 17 ++++++++++++++ .../AudioContentMainTabContentService.kt | 23 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentController.kt index 375d316..8a7fe18 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentController.kt @@ -31,6 +31,23 @@ class AudioContentMainTabContentController(private val service: AudioContentMain ) } + @GetMapping("/ranking") + fun getAudioContentRanking( + @RequestParam("sort-type", required = false) sortType: String? = "매출", + @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?, + pageable: Pageable + ) = run { + if (member == null) throw SodaException("로그인 정보를 확인해주세요.") + + ApiResponse.ok( + service.getAudioContentRanking( + memberId = member.id!!, + isAdult = member.auth != null, + sortType = sortType ?: "매출" + ) + ) + } + @GetMapping("/new-content-by-theme") fun getNewContentByTheme( @RequestParam("theme") theme: String, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentService.kt index 8c20e44..eb7b011 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/AudioContentMainTabContentService.kt @@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.content.main.tab.content import kr.co.vividnext.sodalive.content.AudioContentRepository import kr.co.vividnext.sodalive.content.ContentType import kr.co.vividnext.sodalive.content.main.GetAudioContentMainItem +import kr.co.vividnext.sodalive.content.main.GetAudioContentRankingItem import kr.co.vividnext.sodalive.content.main.banner.AudioContentBannerService import kr.co.vividnext.sodalive.content.theme.AudioContentThemeQueryRepository import kr.co.vividnext.sodalive.event.EventService @@ -104,6 +105,28 @@ class AudioContentMainTabContentService( ) } + fun getAudioContentRanking( + memberId: Long, + isAdult: Boolean, + sortType: String = "매출" + ): List { + val currentDateTime = LocalDateTime.now() + val dailyRankingStartDate = currentDateTime + .withHour(15) + .withMinute(0) + .withSecond(0) + .minusDays(2) + val dailyRankingEndDate = dailyRankingStartDate + .plusDays(1) + + return rankingService.getContentRanking( + memberId = memberId, + isAdult = isAdult, + startDate = dailyRankingStartDate, + endDate = dailyRankingEndDate + ) + } + fun getNewContentByTheme( theme: String, isAdultContentVisible: Boolean,