generated from pricelees/issue-pr-template
feat: 다른 서비스에서 사용할 지역 정보 조회 서비스 로직 추가
This commit is contained in:
parent
7c967defcc
commit
7a6afc7282
@ -7,11 +7,7 @@ import org.springframework.transaction.annotation.Transactional
|
||||
import roomescape.region.exception.RegionErrorCode
|
||||
import roomescape.region.exception.RegionException
|
||||
import roomescape.region.infrastructure.persistence.RegionRepository
|
||||
import roomescape.region.web.RegionCodeResponse
|
||||
import roomescape.region.web.SidoListResponse
|
||||
import roomescape.region.web.SidoResponse
|
||||
import roomescape.region.web.SigunguListResponse
|
||||
import roomescape.region.web.SigunguResponse
|
||||
import roomescape.region.web.*
|
||||
|
||||
private val log: KLogger = KotlinLogging.logger {}
|
||||
|
||||
@ -61,4 +57,17 @@ class RegionService(
|
||||
throw RegionException(RegionErrorCode.REGION_CODE_NOT_FOUND)
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun findRegionInfo(regionCode: String): RegionInfoResponse {
|
||||
log.info { "[RegionService.findRegionInfo] 지역 정보 조회 시작: regionCode=${regionCode}" }
|
||||
|
||||
return regionRepository.findByCode(regionCode)?.let {
|
||||
log.info { "[RegionService.findRegionInfo] 지역 정보 조회 완료: code=${it} regionCode=${regionCode}" }
|
||||
RegionInfoResponse(it.code, it.sidoName, it.sigunguName)
|
||||
} ?: run {
|
||||
log.warn { "[RegionService.findRegionInfo] 지역 정보 조회 실패: regionCode=${regionCode}" }
|
||||
throw RegionException(RegionErrorCode.REGION_CODE_NOT_FOUND)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,8 @@ import org.springframework.data.repository.query.Param
|
||||
|
||||
interface RegionRepository : JpaRepository<RegionEntity, String> {
|
||||
|
||||
@Query("""
|
||||
@Query(
|
||||
"""
|
||||
SELECT
|
||||
new kotlin.Pair(r.sidoCode, r.sidoName)
|
||||
FROM
|
||||
@ -15,10 +16,12 @@ interface RegionRepository : JpaRepository<RegionEntity, String> {
|
||||
r.sidoCode
|
||||
ORDER BY
|
||||
r.sidoName
|
||||
""")
|
||||
"""
|
||||
)
|
||||
fun readAllSido(): List<Pair<String, String>>
|
||||
|
||||
@Query("""
|
||||
@Query(
|
||||
"""
|
||||
SELECT
|
||||
new kotlin.Pair(r.sigunguCode, r.sigunguName)
|
||||
FROM
|
||||
@ -29,12 +32,14 @@ interface RegionRepository : JpaRepository<RegionEntity, String> {
|
||||
r.sigunguCode
|
||||
ORDER BY
|
||||
r.sigunguName
|
||||
""")
|
||||
"""
|
||||
)
|
||||
fun findAllSigunguBySido(
|
||||
@Param("sidoCode") sidoCode: String
|
||||
): List<Pair<String, String>>
|
||||
|
||||
@Query("""
|
||||
@Query(
|
||||
"""
|
||||
SELECT
|
||||
r.code
|
||||
FROM
|
||||
@ -42,9 +47,12 @@ interface RegionRepository : JpaRepository<RegionEntity, String> {
|
||||
WHERE
|
||||
r.sidoCode = :sidoCode
|
||||
AND r.sigunguCode = :sigunguCode
|
||||
""")
|
||||
"""
|
||||
)
|
||||
fun findRegionCode(
|
||||
@Param("sidoCode") sidoCode: String,
|
||||
@Param("sigunguCode") sigunguCode: String,
|
||||
): String?
|
||||
|
||||
fun findByCode(regionCode: String): RegionEntity?
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user