콘텐츠 랭킹 데이터 전체보기 API 추가
This commit is contained in:
parent
333458a184
commit
9146e2e231
|
@ -148,4 +148,13 @@ class AudioContentController(private val service: AudioContentService) {
|
|||
|
||||
ApiResponse.ok(service.audioContentLike(request, member))
|
||||
}
|
||||
|
||||
@GetMapping("/ranking")
|
||||
fun getAudioContentRanking(
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
|
||||
ApiResponse.ok(service.getAudioContentRanking(member = member))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ import kr.co.vividnext.sodalive.content.like.AudioContentLike
|
|||
import kr.co.vividnext.sodalive.content.like.AudioContentLikeRepository
|
||||
import kr.co.vividnext.sodalive.content.like.PutAudioContentLikeRequest
|
||||
import kr.co.vividnext.sodalive.content.like.PutAudioContentLikeResponse
|
||||
import kr.co.vividnext.sodalive.content.main.GetAudioContentRanking
|
||||
import kr.co.vividnext.sodalive.content.order.OrderRepository
|
||||
import kr.co.vividnext.sodalive.content.order.OrderType
|
||||
import kr.co.vividnext.sodalive.content.theme.AudioContentThemeQueryRepository
|
||||
|
@ -29,9 +30,11 @@ import org.springframework.stereotype.Service
|
|||
import org.springframework.transaction.annotation.Transactional
|
||||
import org.springframework.web.multipart.MultipartFile
|
||||
import java.text.SimpleDateFormat
|
||||
import java.time.DayOfWeek
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneId
|
||||
import java.time.format.DateTimeFormatter
|
||||
import java.time.temporal.TemporalAdjusters
|
||||
import java.util.Locale
|
||||
|
||||
@Service
|
||||
|
@ -573,4 +576,34 @@ class AudioContentService(
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun getAudioContentRanking(member: Member): GetAudioContentRanking {
|
||||
val currentDateTime = LocalDateTime.now()
|
||||
val startDate = currentDateTime
|
||||
.withHour(15)
|
||||
.withMinute(0)
|
||||
.withSecond(0)
|
||||
.minusWeeks(1)
|
||||
.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY))
|
||||
val endDate = startDate
|
||||
.plusDays(7)
|
||||
|
||||
val startDateFormatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일")
|
||||
val endDateFormatter = DateTimeFormatter.ofPattern("MM월 dd일")
|
||||
|
||||
val contentRankingItemList = repository
|
||||
.getAudioContentRanking(
|
||||
cloudfrontHost = coverImageHost,
|
||||
startDate = startDate,
|
||||
endDate = endDate,
|
||||
isAdult = member.auth != null,
|
||||
limit = 50
|
||||
)
|
||||
|
||||
return GetAudioContentRanking(
|
||||
startDate = startDate.format(startDateFormatter),
|
||||
endDate = endDate.minusDays(1).format(endDateFormatter),
|
||||
items = contentRankingItemList
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue