관리자 콘텐츠 배너 API

- 조회, 등록, 수정시 탭 설정
This commit is contained in:
Klaus 2025-01-21 18:54:06 +09:00
parent 8285589b10
commit 49a5e47f9d
3 changed files with 15 additions and 0 deletions

View File

@ -36,6 +36,7 @@ class AdminContentBannerQueryRepositoryImpl(
.select( .select(
QGetAdminContentBannerResponse( QGetAdminContentBannerResponse(
audioContentBanner.id, audioContentBanner.id,
audioContentBanner.tab.id.coalesce(1),
audioContentBanner.type, audioContentBanner.type,
audioContentBanner.thumbnailImage.prepend("/").prepend(cloudFrontHost), audioContentBanner.thumbnailImage.prepend("/").prepend(cloudFrontHost),
audioContentBanner.event.id, audioContentBanner.event.id,

View File

@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.admin.content.banner
import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.ObjectMapper
import kr.co.vividnext.sodalive.admin.content.series.AdminContentSeriesRepository import kr.co.vividnext.sodalive.admin.content.series.AdminContentSeriesRepository
import kr.co.vividnext.sodalive.admin.content.tab.AdminContentMainTabRepository
import kr.co.vividnext.sodalive.aws.s3.S3Uploader import kr.co.vividnext.sodalive.aws.s3.S3Uploader
import kr.co.vividnext.sodalive.common.SodaException import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.content.main.banner.AudioContentBanner import kr.co.vividnext.sodalive.content.main.banner.AudioContentBanner
@ -22,6 +23,7 @@ class AdminContentBannerService(
private val memberRepository: MemberRepository, private val memberRepository: MemberRepository,
private val seriesRepository: AdminContentSeriesRepository, private val seriesRepository: AdminContentSeriesRepository,
private val eventRepository: EventRepository, private val eventRepository: EventRepository,
private val contentMainTabRepository: AdminContentMainTabRepository,
private val objectMapper: ObjectMapper, private val objectMapper: ObjectMapper,
@Value("\${cloud.aws.s3.bucket}") @Value("\${cloud.aws.s3.bucket}")
@ -64,12 +66,19 @@ class AdminContentBannerService(
null null
} }
val tab = if (request.tabId !== null) {
contentMainTabRepository.findByIdOrNull(request.tabId)
} else {
null
}
val audioContentBanner = AudioContentBanner(type = request.type) val audioContentBanner = AudioContentBanner(type = request.type)
audioContentBanner.link = request.link audioContentBanner.link = request.link
audioContentBanner.isAdult = request.isAdult audioContentBanner.isAdult = request.isAdult
audioContentBanner.event = event audioContentBanner.event = event
audioContentBanner.creator = creator audioContentBanner.creator = creator
audioContentBanner.series = series audioContentBanner.series = series
audioContentBanner.tab = tab
repository.save(audioContentBanner) repository.save(audioContentBanner)
val fileName = generateFileName() val fileName = generateFileName()
@ -156,6 +165,10 @@ class AdminContentBannerService(
audioContentBanner.type = request.type audioContentBanner.type = request.type
} }
if (request.tabId !== null) {
audioContentBanner.tab = contentMainTabRepository.findByIdOrNull(request.tabId)
}
} }
@Transactional @Transactional

View File

@ -5,6 +5,7 @@ import kr.co.vividnext.sodalive.content.main.banner.AudioContentBannerType
data class GetAdminContentBannerResponse @QueryProjection constructor( data class GetAdminContentBannerResponse @QueryProjection constructor(
val id: Long, val id: Long,
val tabId: Long?,
val type: AudioContentBannerType, val type: AudioContentBannerType,
val thumbnailImageUrl: String, val thumbnailImageUrl: String,
val eventId: Long?, val eventId: Long?,