feat(series-banner): 시리즈 배너를 언어별로 등록하고 노출한다
This commit is contained in:
@@ -56,7 +56,9 @@ class AdminContentSeriesBannerController(
|
||||
val banners = bannerService.getActiveBanners(pageable)
|
||||
val response = SeriesBannerListPageResponse(
|
||||
totalCount = banners.totalElements,
|
||||
content = banners.content.map { SeriesBannerResponse.from(it, imageHost) }
|
||||
content = banners.content.map {
|
||||
SeriesBannerResponse.from(it, imageHost, appendLanguageToSeriesTitle = true)
|
||||
}
|
||||
)
|
||||
ApiResponse.ok(response)
|
||||
}
|
||||
@@ -82,7 +84,7 @@ class AdminContentSeriesBannerController(
|
||||
val objectMapper = ObjectMapper()
|
||||
val request = objectMapper.readValue(requestString, SeriesBannerRegisterRequest::class.java)
|
||||
|
||||
val banner = bannerService.registerBanner(seriesId = request.seriesId, imagePath = "")
|
||||
val banner = bannerService.registerBanner(seriesId = request.seriesId, imagePath = "", lang = request.lang)
|
||||
val imagePath = saveImage(banner.id!!, image)
|
||||
val updatedBanner = bannerService.updateBanner(banner.id!!, imagePath)
|
||||
val response = SeriesBannerResponse.from(updatedBanner, imageHost)
|
||||
|
||||
@@ -2,10 +2,12 @@ package kr.co.vividnext.sodalive.admin.content.series.banner.dto
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty
|
||||
import kr.co.vividnext.sodalive.content.series.main.banner.SeriesBanner
|
||||
import kr.co.vividnext.sodalive.i18n.Lang
|
||||
|
||||
// 시리즈 배너 등록 요청 DTO
|
||||
data class SeriesBannerRegisterRequest(
|
||||
@JsonProperty("seriesId") val seriesId: Long
|
||||
@JsonProperty("seriesId") val seriesId: Long,
|
||||
@JsonProperty("lang") val lang: Lang? = null
|
||||
)
|
||||
|
||||
// 시리즈 배너 수정 요청 DTO
|
||||
@@ -22,14 +24,30 @@ data class SeriesBannerResponse(
|
||||
val seriesTitle: String
|
||||
) {
|
||||
companion object {
|
||||
fun from(banner: SeriesBanner, imageHost: String): SeriesBannerResponse {
|
||||
fun from(
|
||||
banner: SeriesBanner,
|
||||
imageHost: String,
|
||||
appendLanguageToSeriesTitle: Boolean = false
|
||||
): SeriesBannerResponse {
|
||||
return SeriesBannerResponse(
|
||||
id = banner.id!!,
|
||||
imagePath = "$imageHost/${banner.imagePath}",
|
||||
seriesId = banner.series.id!!,
|
||||
seriesTitle = banner.series.title
|
||||
seriesTitle = if (appendLanguageToSeriesTitle) {
|
||||
"${banner.series.title} (${getLanguageLabel(banner.lang)})"
|
||||
} else {
|
||||
banner.series.title
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
private fun getLanguageLabel(lang: Lang): String {
|
||||
return when (lang) {
|
||||
Lang.KO -> "한국어"
|
||||
Lang.EN -> "영어"
|
||||
Lang.JA -> "일본어"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user