parent
03bd915fa5
commit
2a96467d9c
|
@ -64,7 +64,7 @@ interface AudioContentQueryRepository {
|
|||
|
||||
fun findByTheme(
|
||||
memberId: Long,
|
||||
theme: String = "",
|
||||
theme: List<String> = emptyList(),
|
||||
sortType: SortType = SortType.NEWEST,
|
||||
isAdult: Boolean = false,
|
||||
contentType: ContentType,
|
||||
|
@ -89,7 +89,7 @@ interface AudioContentQueryRepository {
|
|||
|
||||
fun totalCountByTheme(
|
||||
memberId: Long,
|
||||
theme: String = "",
|
||||
theme: List<String> = emptyList(),
|
||||
isAdult: Boolean = false,
|
||||
contentType: ContentType
|
||||
): Int
|
||||
|
@ -98,7 +98,7 @@ interface AudioContentQueryRepository {
|
|||
isFree: Boolean = false,
|
||||
cloudfrontHost: String,
|
||||
memberId: Long,
|
||||
theme: String = "",
|
||||
theme: List<String> = emptyList(),
|
||||
isAdult: Boolean = false,
|
||||
contentType: ContentType,
|
||||
offset: Long = 0,
|
||||
|
@ -107,7 +107,7 @@ interface AudioContentQueryRepository {
|
|||
|
||||
fun totalCountNewContentFor2Weeks(
|
||||
isFree: Boolean = false,
|
||||
theme: String,
|
||||
theme: List<String> = emptyList(),
|
||||
memberId: Long,
|
||||
isAdult: Boolean,
|
||||
contentType: ContentType
|
||||
|
@ -360,7 +360,7 @@ class AudioContentQueryRepositoryImpl(
|
|||
|
||||
override fun findByTheme(
|
||||
memberId: Long,
|
||||
theme: String,
|
||||
theme: List<String>,
|
||||
sortType: SortType,
|
||||
isAdult: Boolean,
|
||||
contentType: ContentType,
|
||||
|
@ -406,8 +406,8 @@ class AudioContentQueryRepositoryImpl(
|
|||
}
|
||||
}
|
||||
|
||||
if (theme.isNotBlank()) {
|
||||
where = where.and(audioContentTheme.theme.eq(theme))
|
||||
if (theme.isNotEmpty()) {
|
||||
where = where.and(audioContentTheme.theme.`in`(theme))
|
||||
}
|
||||
|
||||
if (isFree) {
|
||||
|
@ -525,7 +525,12 @@ class AudioContentQueryRepositoryImpl(
|
|||
.size
|
||||
}
|
||||
|
||||
override fun totalCountByTheme(memberId: Long, theme: String, isAdult: Boolean, contentType: ContentType): Int {
|
||||
override fun totalCountByTheme(
|
||||
memberId: Long,
|
||||
theme: List<String>,
|
||||
isAdult: Boolean,
|
||||
contentType: ContentType
|
||||
): Int {
|
||||
var where = audioContent.isActive.isTrue
|
||||
.and(audioContent.duration.isNotNull)
|
||||
.and(
|
||||
|
@ -544,8 +549,8 @@ class AudioContentQueryRepositoryImpl(
|
|||
}
|
||||
}
|
||||
|
||||
if (theme.isNotBlank()) {
|
||||
where = where.and(audioContentTheme.theme.eq(theme))
|
||||
if (theme.isNotEmpty()) {
|
||||
where = where.and(audioContentTheme.theme.`in`(theme))
|
||||
}
|
||||
|
||||
return queryFactory
|
||||
|
@ -560,7 +565,7 @@ class AudioContentQueryRepositoryImpl(
|
|||
|
||||
override fun totalCountNewContentFor2Weeks(
|
||||
isFree: Boolean,
|
||||
theme: String,
|
||||
theme: List<String>,
|
||||
memberId: Long,
|
||||
isAdult: Boolean,
|
||||
contentType: ContentType
|
||||
|
@ -584,8 +589,8 @@ class AudioContentQueryRepositoryImpl(
|
|||
}
|
||||
}
|
||||
|
||||
if (theme.isNotBlank()) {
|
||||
where = where.and(audioContentTheme.theme.eq(theme))
|
||||
if (theme.isNotEmpty()) {
|
||||
where = where.and(audioContentTheme.theme.`in`(theme))
|
||||
}
|
||||
|
||||
if (isFree) {
|
||||
|
@ -606,7 +611,7 @@ class AudioContentQueryRepositoryImpl(
|
|||
isFree: Boolean,
|
||||
cloudfrontHost: String,
|
||||
memberId: Long,
|
||||
theme: String,
|
||||
theme: List<String>,
|
||||
isAdult: Boolean,
|
||||
contentType: ContentType,
|
||||
offset: Long,
|
||||
|
@ -631,8 +636,8 @@ class AudioContentQueryRepositoryImpl(
|
|||
}
|
||||
}
|
||||
|
||||
if (theme.isNotBlank()) {
|
||||
where = where.and(audioContentTheme.theme.eq(theme))
|
||||
if (theme.isNotEmpty()) {
|
||||
where = where.and(audioContentTheme.theme.`in`(theme))
|
||||
}
|
||||
|
||||
if (isFree) {
|
||||
|
|
|
@ -28,6 +28,17 @@ class AudioContentMainService(
|
|||
@Cacheable(cacheNames = ["default"], key = "'themeList:' + ':' + #isAdult")
|
||||
fun getThemeList(isAdult: Boolean): List<String> {
|
||||
return audioContentThemeRepository.getActiveThemeOfContent(isAdult = isAdult)
|
||||
.filter {
|
||||
it != "오디오북" &&
|
||||
it != "모닝콜" &&
|
||||
it != "알람" &&
|
||||
it != "슬립콜" &&
|
||||
it != "다시듣기" &&
|
||||
it != "ASMR" &&
|
||||
it != "릴레이" &&
|
||||
it != "챌린지" &&
|
||||
it != "자기소개"
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
|
@ -40,7 +51,7 @@ class AudioContentMainService(
|
|||
): List<GetAudioContentMainItem> {
|
||||
return repository.findByTheme(
|
||||
memberId = member.id!!,
|
||||
theme = theme,
|
||||
theme = listOf(theme),
|
||||
isAdult = member.auth != null && isAdultContentVisible,
|
||||
contentType = contentType,
|
||||
offset = pageable.offset,
|
||||
|
@ -57,19 +68,37 @@ class AudioContentMainService(
|
|||
member: Member,
|
||||
pageable: Pageable
|
||||
): GetNewContentAllResponse {
|
||||
val isAdult = member.auth != null && isAdultContentVisible
|
||||
val themeList = if (theme.isBlank()) {
|
||||
audioContentThemeRepository.getActiveThemeOfContent(isAdult = isAdult)
|
||||
.filter {
|
||||
it != "오디오북" &&
|
||||
it != "모닝콜" &&
|
||||
it != "알람" &&
|
||||
it != "슬립콜" &&
|
||||
it != "다시듣기" &&
|
||||
it != "ASMR" &&
|
||||
it != "릴레이" &&
|
||||
it != "챌린지" &&
|
||||
it != "자기소개"
|
||||
}
|
||||
} else {
|
||||
listOf(theme)
|
||||
}
|
||||
|
||||
val totalCount = repository.totalCountNewContentFor2Weeks(
|
||||
isFree,
|
||||
theme,
|
||||
themeList,
|
||||
memberId = member.id!!,
|
||||
isAdult = member.auth != null && isAdultContentVisible,
|
||||
isAdult = isAdult,
|
||||
contentType = contentType
|
||||
)
|
||||
val items = repository.findByThemeFor2Weeks(
|
||||
isFree,
|
||||
cloudfrontHost = imageHost,
|
||||
memberId = member.id!!,
|
||||
theme = theme,
|
||||
isAdult = member.auth != null && isAdultContentVisible,
|
||||
theme = themeList,
|
||||
isAdult = isAdult,
|
||||
contentType = contentType,
|
||||
offset = pageable.offset,
|
||||
limit = pageable.pageSize.toLong()
|
||||
|
|
|
@ -35,7 +35,7 @@ class AudioContentMainTabAsmrService(
|
|||
|
||||
val newAsmrContentList = contentRepository.findByTheme(
|
||||
memberId = memberId,
|
||||
theme = theme,
|
||||
theme = listOf(theme),
|
||||
isAdult = isAdult,
|
||||
contentType = ContentType.ALL,
|
||||
limit = 10
|
||||
|
|
|
@ -57,7 +57,7 @@ class AudioContentMainTabContentService(
|
|||
// 새로운 단편
|
||||
val newContentList = audioContentRepository.findByTheme(
|
||||
memberId = member.id!!,
|
||||
theme = "",
|
||||
theme = themeOfContentList,
|
||||
isAdult = member.auth != null,
|
||||
contentType = ContentType.ALL,
|
||||
offset = 0,
|
||||
|
@ -167,10 +167,29 @@ class AudioContentMainTabContentService(
|
|||
contentType: ContentType,
|
||||
member: Member
|
||||
): List<GetAudioContentMainItem> {
|
||||
val isAdult = member.auth != null && isAdultContentVisible
|
||||
|
||||
val themeList = if (theme.isBlank()) {
|
||||
audioContentThemeRepository.getActiveThemeOfContent(isAdult = isAdult)
|
||||
.filter {
|
||||
it != "오디오북" &&
|
||||
it != "모닝콜" &&
|
||||
it != "알람" &&
|
||||
it != "슬립콜" &&
|
||||
it != "다시듣기" &&
|
||||
it != "ASMR" &&
|
||||
it != "릴레이" &&
|
||||
it != "챌린지" &&
|
||||
it != "자기소개"
|
||||
}
|
||||
} else {
|
||||
listOf(theme)
|
||||
}
|
||||
|
||||
return audioContentRepository.findByTheme(
|
||||
memberId = member.id!!,
|
||||
theme = theme,
|
||||
isAdult = member.auth != null && isAdultContentVisible,
|
||||
theme = themeList,
|
||||
isAdult = isAdult,
|
||||
contentType = contentType,
|
||||
offset = 0,
|
||||
limit = 10
|
||||
|
|
|
@ -137,7 +137,7 @@ class AudioContentMainTabFreeService(
|
|||
): List<GetAudioContentMainItem> {
|
||||
return audioContentRepository.findByTheme(
|
||||
memberId = member.id!!,
|
||||
theme = theme,
|
||||
theme = listOf(theme),
|
||||
isAdult = member.auth != null && isAdultContentVisible,
|
||||
contentType = contentType,
|
||||
offset = offset,
|
||||
|
|
|
@ -35,7 +35,7 @@ class AudioContentMainTabLiveReplayService(
|
|||
|
||||
val newLiveReplayContentList = contentRepository.findByTheme(
|
||||
memberId = memberId,
|
||||
theme = theme,
|
||||
theme = listOf(theme),
|
||||
isAdult = isAdult,
|
||||
contentType = ContentType.ALL,
|
||||
limit = 10
|
||||
|
|
|
@ -34,14 +34,14 @@ class AudioContentThemeService(
|
|||
|
||||
val totalCount = contentRepository.totalCountByTheme(
|
||||
memberId = member.id!!,
|
||||
theme = theme.theme,
|
||||
theme = listOf(theme.theme),
|
||||
isAdult = member.auth != null && isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
|
||||
val items = contentRepository.findByTheme(
|
||||
memberId = member.id!!,
|
||||
theme = theme.theme,
|
||||
theme = listOf(theme.theme),
|
||||
sortType = sortType,
|
||||
isAdult = member.auth != null && isAdultContentVisible,
|
||||
contentType = contentType,
|
||||
|
|
Loading…
Reference in New Issue