관리자 시리즈 검색 API - 검색어 추가

관리자/앱 콘텐츠 배너 API - 시리즈 추가
This commit is contained in:
Klaus 2025-01-17 14:00:09 +09:00
parent 40c0b72450
commit ddb49f6215
5 changed files with 15 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.admin.content.banner
import com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.content.main.banner.AudioContentBanner
import kr.co.vividnext.sodalive.content.main.banner.QAudioContentBanner.audioContentBanner
import kr.co.vividnext.sodalive.creator.admin.content.series.QSeries.series
import kr.co.vividnext.sodalive.event.QEvent.event
import kr.co.vividnext.sodalive.member.QMember.member
import org.springframework.beans.factory.annotation.Value
@ -32,6 +33,8 @@ class AdminContentBannerQueryRepositoryImpl(
audioContentBanner.event.thumbnailImage,
audioContentBanner.creator.id,
audioContentBanner.creator.nickname,
audioContentBanner.series.id,
audioContentBanner.series.title,
audioContentBanner.link,
audioContentBanner.isAdult
)
@ -39,6 +42,7 @@ class AdminContentBannerQueryRepositoryImpl(
.from(audioContentBanner)
.leftJoin(audioContentBanner.event, event)
.leftJoin(audioContentBanner.creator, member)
.leftJoin(audioContentBanner.series, series)
.where(audioContentBanner.isActive.isTrue)
.orderBy(audioContentBanner.orders.asc())
.fetch()

View File

@ -11,6 +11,8 @@ data class GetAdminContentBannerResponse @QueryProjection constructor(
val eventThumbnailImage: String?,
val creatorId: Long?,
val creatorNickname: String?,
val seriesId: Long?,
val seriesTitle: String?,
val link: String?,
val isAdult: Boolean
)

View File

@ -80,6 +80,7 @@ class AdminContentSeriesQueryRepositoryImpl(
override fun searchSeriesList(searchWord: String): List<GetAdminSearchSeriesListItem> {
val where = series.isActive.isTrue
.and(series.title.contains(searchWord))
.and(series.member.isNotNull)
.and(series.member.isActive.isTrue)

View File

@ -97,6 +97,8 @@ class AudioContentMainService(
.filter {
if (it.type == AudioContentBannerType.CREATOR && it.creator != null) {
!blockMemberRepository.isBlocked(blockedMemberId = memberId, memberId = it.creator!!.id!!)
} else if (it.type == AudioContentBannerType.SERIES && it.series != null) {
!blockMemberRepository.isBlocked(blockedMemberId = memberId, memberId = it.series!!.member!!.id!!)
} else {
true
}
@ -132,6 +134,11 @@ class AudioContentMainService(
} else {
null
},
seriesId = if (it.type == AudioContentBannerType.SERIES && it.series != null) {
it.series!!.id
} else {
null
},
link = it.link
)
}

View File

@ -8,5 +8,6 @@ data class GetAudioContentBannerResponse(
@JsonProperty("thumbnailImageUrl") val thumbnailImageUrl: String,
@JsonProperty("eventItem") val eventItem: EventItem?,
@JsonProperty("creatorId") val creatorId: Long?,
@JsonProperty("seriesId") val seriesId: Long?,
@JsonProperty("link") val link: String?
)