새로운 콘텐츠 전체보기

- 무료 콘텐츠 전체보기를 위해 isFree 파라미터 추가
This commit is contained in:
Klaus 2025-02-14 15:55:21 +09:00
parent e1bfd944e9
commit 713d42a674
3 changed files with 17 additions and 0 deletions

View File

@ -81,6 +81,7 @@ interface AudioContentQueryRepository {
): Int ): Int
fun findByThemeFor2Weeks( fun findByThemeFor2Weeks(
isFree: Boolean = false,
cloudfrontHost: String, cloudfrontHost: String,
memberId: Long, memberId: Long,
theme: String = "", theme: String = "",
@ -91,6 +92,7 @@ interface AudioContentQueryRepository {
): List<GetAudioContentMainItem> ): List<GetAudioContentMainItem>
fun totalCountNewContentFor2Weeks( fun totalCountNewContentFor2Weeks(
isFree: Boolean = false,
theme: String, theme: String,
memberId: Long, memberId: Long,
isAdult: Boolean, isAdult: Boolean,
@ -456,6 +458,7 @@ class AudioContentQueryRepositoryImpl(
} }
override fun totalCountNewContentFor2Weeks( override fun totalCountNewContentFor2Weeks(
isFree: Boolean,
theme: String, theme: String,
memberId: Long, memberId: Long,
isAdult: Boolean, isAdult: Boolean,
@ -484,6 +487,10 @@ class AudioContentQueryRepositoryImpl(
where = where.and(audioContentTheme.theme.eq(theme)) where = where.and(audioContentTheme.theme.eq(theme))
} }
if (isFree) {
where = where.and(audioContent.price.loe(0))
}
return queryFactory return queryFactory
.select(audioContent.id) .select(audioContent.id)
.from(audioContent) .from(audioContent)
@ -495,6 +502,7 @@ class AudioContentQueryRepositoryImpl(
} }
override fun findByThemeFor2Weeks( override fun findByThemeFor2Weeks(
isFree: Boolean,
cloudfrontHost: String, cloudfrontHost: String,
memberId: Long, memberId: Long,
theme: String, theme: String,
@ -526,6 +534,10 @@ class AudioContentQueryRepositoryImpl(
where = where.and(audioContentTheme.theme.eq(theme)) where = where.and(audioContentTheme.theme.eq(theme))
} }
if (isFree) {
where = where.and(audioContent.price.loe(0))
}
return queryFactory return queryFactory
.select( .select(
QGetAudioContentMainItem( QGetAudioContentMainItem(

View File

@ -92,6 +92,7 @@ class AudioContentMainController(
@GetMapping("/new/all") @GetMapping("/new/all")
fun getNewContentAllByTheme( fun getNewContentAllByTheme(
@RequestParam("isFree", required = false) isFree: Boolean? = null,
@RequestParam("theme") theme: String, @RequestParam("theme") theme: String,
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null, @RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
@RequestParam("contentType", required = false) contentType: ContentType? = null, @RequestParam("contentType", required = false) contentType: ContentType? = null,
@ -102,6 +103,7 @@ class AudioContentMainController(
ApiResponse.ok( ApiResponse.ok(
service.getNewContentFor2WeeksByTheme( service.getNewContentFor2WeeksByTheme(
isFree = isFree ?: false,
theme = theme, theme = theme,
isAdultContentVisible = isAdultContentVisible ?: true, isAdultContentVisible = isAdultContentVisible ?: true,
contentType = contentType ?: ContentType.ALL, contentType = contentType ?: ContentType.ALL,

View File

@ -50,6 +50,7 @@ class AudioContentMainService(
@Transactional(readOnly = true) @Transactional(readOnly = true)
fun getNewContentFor2WeeksByTheme( fun getNewContentFor2WeeksByTheme(
isFree: Boolean,
theme: String, theme: String,
isAdultContentVisible: Boolean, isAdultContentVisible: Boolean,
contentType: ContentType, contentType: ContentType,
@ -57,12 +58,14 @@ class AudioContentMainService(
pageable: Pageable pageable: Pageable
): GetNewContentAllResponse { ): GetNewContentAllResponse {
val totalCount = repository.totalCountNewContentFor2Weeks( val totalCount = repository.totalCountNewContentFor2Weeks(
isFree,
theme, theme,
memberId = member.id!!, memberId = member.id!!,
isAdult = member.auth != null && isAdultContentVisible, isAdult = member.auth != null && isAdultContentVisible,
contentType = contentType contentType = contentType
) )
val items = repository.findByThemeFor2Weeks( val items = repository.findByThemeFor2Weeks(
isFree,
cloudfrontHost = imageHost, cloudfrontHost = imageHost,
memberId = member.id!!, memberId = member.id!!,
theme = theme, theme = theme,