generated from pricelees/issue-pr-template
[#44] 매장 기능 도입 #45
@ -8,6 +8,7 @@ import org.springframework.stereotype.Service
|
|||||||
import org.springframework.transaction.annotation.Transactional
|
import org.springframework.transaction.annotation.Transactional
|
||||||
import roomescape.admin.business.AdminService
|
import roomescape.admin.business.AdminService
|
||||||
import roomescape.common.config.next
|
import roomescape.common.config.next
|
||||||
|
import roomescape.common.dto.AuditInfo
|
||||||
import roomescape.theme.exception.ThemeErrorCode
|
import roomescape.theme.exception.ThemeErrorCode
|
||||||
import roomescape.theme.exception.ThemeException
|
import roomescape.theme.exception.ThemeException
|
||||||
import roomescape.theme.infrastructure.persistence.ThemeEntity
|
import roomescape.theme.infrastructure.persistence.ThemeEntity
|
||||||
@ -42,18 +43,9 @@ class ThemeService(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
fun findThemesByIds(request: ThemeIdListRequest): ThemeInfoListResponse {
|
fun findAllInfosByIds(request: ThemeIdListRequest): ThemeInfoListResponse {
|
||||||
log.info { "[ThemeService.findThemesByIds] 예약 페이지에서의 테마 목록 조회 시작: themeIds=${request.themeIds}" }
|
log.info { "[ThemeService.findThemesByIds] 예약 페이지에서의 테마 목록 조회 시작: themeIds=${request.themeIds}" }
|
||||||
val result: MutableList<ThemeEntity> = mutableListOf()
|
val result: List<ThemeEntity> = themeRepository.findAllByIdIn(request.themeIds)
|
||||||
|
|
||||||
for (id in request.themeIds) {
|
|
||||||
val theme: ThemeEntity? = themeRepository.findByIdOrNull(id)
|
|
||||||
if (theme == null) {
|
|
||||||
log.warn { "[ThemeService.findThemesByIds] id=${id} 인 테마 조회 실패" }
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
result.add(theme)
|
|
||||||
}
|
|
||||||
|
|
||||||
return result.toInfoListResponse().also {
|
return result.toInfoListResponse().also {
|
||||||
log.info { "[ThemeService.findThemesByIds] ${it.themes.size} / ${request.themeIds.size} 개 테마 조회 완료" }
|
log.info { "[ThemeService.findThemesByIds] ${it.themes.size} / ${request.themeIds.size} 개 테마 조회 완료" }
|
||||||
@ -80,8 +72,9 @@ class ThemeService(
|
|||||||
|
|
||||||
val createdBy = adminService.findOperatorOrUnknown(theme.createdBy)
|
val createdBy = adminService.findOperatorOrUnknown(theme.createdBy)
|
||||||
val updatedBy = adminService.findOperatorOrUnknown(theme.updatedBy)
|
val updatedBy = adminService.findOperatorOrUnknown(theme.updatedBy)
|
||||||
|
val audit = AuditInfo(theme.createdAt, createdBy, theme.updatedAt, updatedBy)
|
||||||
|
|
||||||
return theme.toAdminThemeDetailResponse(createdBy, updatedBy)
|
return theme.toAdminThemeDetailResponse(audit)
|
||||||
.also { log.info { "[ThemeService.findAdminThemeDetail] 테마 상세 조회 완료: id=$id, name=${theme.name}" } }
|
.also { log.info { "[ThemeService.findAdminThemeDetail] 테마 상세 조회 완료: id=$id, name=${theme.name}" } }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,9 +84,8 @@ class ThemeService(
|
|||||||
|
|
||||||
themeValidator.validateCanCreate(request)
|
themeValidator.validateCanCreate(request)
|
||||||
|
|
||||||
val theme: ThemeEntity = themeRepository.save(
|
val theme: ThemeEntity = request.toEntity(id = tsidFactory.next())
|
||||||
request.toEntity(tsidFactory.next())
|
.also { themeRepository.save(it) }
|
||||||
)
|
|
||||||
|
|
||||||
return ThemeCreateResponse(theme.id).also {
|
return ThemeCreateResponse(theme.id).also {
|
||||||
log.info { "[ThemeService.createTheme] 테마 생성 완료: id=${theme.id}, name=${theme.name}" }
|
log.info { "[ThemeService.createTheme] 테마 생성 완료: id=${theme.id}, name=${theme.name}" }
|
||||||
@ -155,7 +147,6 @@ class ThemeService(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// Common (공통 메서드)
|
// Common (공통 메서드)
|
||||||
// ========================================
|
// ========================================
|
||||||
|
|||||||
@ -9,4 +9,6 @@ interface ThemeRepository : JpaRepository<ThemeEntity, Long> {
|
|||||||
fun findActiveThemes(): List<ThemeEntity>
|
fun findActiveThemes(): List<ThemeEntity>
|
||||||
|
|
||||||
fun existsByName(name: String): Boolean
|
fun existsByName(name: String): Boolean
|
||||||
|
|
||||||
|
fun findAllByIdIn(themeIds: List<Long>): List<ThemeEntity>
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user