test #131

Merged
klaus merged 5 commits from test into main 2024-02-14 07:12:42 +00:00
3 changed files with 40 additions and 0 deletions
Showing only changes of commit 5890f9932b - Show all commits

View File

@ -68,6 +68,12 @@ interface AudioContentQueryRepository {
limit: Long = 20
): List<GetAudioContentMainItem>
fun totalCountByTheme(
memberId: Long,
theme: String = "",
isAdult: Boolean = false
): Int
fun findByThemeFor2Weeks(
cloudfrontHost: String,
memberId: Long,
@ -367,6 +373,32 @@ class AudioContentQueryRepositoryImpl(private val queryFactory: JPAQueryFactory)
.fetch()
}
override fun totalCountByTheme(memberId: Long, theme: String, isAdult: Boolean): Int {
var where = audioContent.isActive.isTrue
.and(
audioContent.releaseDate.isNull
.or(audioContent.releaseDate.loe(LocalDateTime.now()))
.or(audioContent.member.id.eq(memberId))
)
if (!isAdult) {
where = where.and(audioContent.isAdult.isFalse)
}
if (theme.isNotBlank()) {
where = where.and(audioContentTheme.theme.eq(theme))
}
return queryFactory
.select(audioContent.id)
.from(audioContent)
.innerJoin(audioContent.member, member)
.innerJoin(audioContent.theme, audioContentTheme)
.where(where)
.fetch()
.size
}
override fun totalCountNewContentFor2Weeks(theme: String, memberId: Long, isAdult: Boolean): Int {
var where = audioContent.isActive.isTrue
.and(audioContent.releaseDate.goe(LocalDateTime.now().minusWeeks(2)))

View File

@ -35,6 +35,12 @@ class AudioContentThemeService(
val theme = queryRepository.findThemeByIdAndActive(themeId)
?: throw SodaException("잘못된 요청입니다.")
val totalCount = contentRepository.totalCountByTheme(
memberId = member.id!!,
theme = theme.theme,
isAdult = member.auth != null
)
val items = contentRepository.findByTheme(
cloudfrontHost = imageHost,
memberId = member.id!!,
@ -50,6 +56,7 @@ class AudioContentThemeService(
return GetContentByThemeResponse(
theme = theme.theme,
totalCount = totalCount,
items = items
)
}

View File

@ -4,5 +4,6 @@ import kr.co.vividnext.sodalive.content.main.GetAudioContentMainItem
data class GetContentByThemeResponse(
val theme: String,
val totalCount: Int,
val items: List<GetAudioContentMainItem>
)