generated from pricelees/issue-pr-template
[#56] 예약 & 결제 프로세스 및 패키지 구조 재정의 #57
@ -4,12 +4,20 @@ import com.sangdol.common.persistence.IDGenerator
|
|||||||
import com.sangdol.roomescape.admin.business.AdminService
|
import com.sangdol.roomescape.admin.business.AdminService
|
||||||
import com.sangdol.roomescape.common.types.AuditingInfo
|
import com.sangdol.roomescape.common.types.AuditingInfo
|
||||||
import com.sangdol.roomescape.region.business.RegionService
|
import com.sangdol.roomescape.region.business.RegionService
|
||||||
|
import com.sangdol.roomescape.store.dto.DetailStoreResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreNameListResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreInfoResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreRegisterRequest
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreRegisterResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreUpdateRequest
|
||||||
import com.sangdol.roomescape.store.exception.StoreErrorCode
|
import com.sangdol.roomescape.store.exception.StoreErrorCode
|
||||||
import com.sangdol.roomescape.store.exception.StoreException
|
import com.sangdol.roomescape.store.exception.StoreException
|
||||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
||||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository
|
import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository
|
||||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreStatus
|
import com.sangdol.roomescape.store.infrastructure.persistence.StoreStatus
|
||||||
import com.sangdol.roomescape.store.web.*
|
import com.sangdol.roomescape.store.mapper.toDetailResponse
|
||||||
|
import com.sangdol.roomescape.store.mapper.toInfoResponse
|
||||||
|
import com.sangdol.roomescape.store.mapper.toSimpleListResponse
|
||||||
import io.github.oshai.kotlinlogging.KLogger
|
import io.github.oshai.kotlinlogging.KLogger
|
||||||
import io.github.oshai.kotlinlogging.KotlinLogging
|
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
@ -85,7 +93,7 @@ class StoreService(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
fun getAllActiveStores(sidoCode: String?, sigunguCode: String?): SimpleStoreListResponse {
|
fun getAllActiveStores(sidoCode: String?, sigunguCode: String?): StoreNameListResponse {
|
||||||
log.info { "[getAllActiveStores] 전체 매장 조회 시작" }
|
log.info { "[getAllActiveStores] 전체 매장 조회 시작" }
|
||||||
|
|
||||||
val regionCode: String? = when {
|
val regionCode: String? = when {
|
||||||
|
|||||||
@ -3,8 +3,8 @@ package com.sangdol.roomescape.store.business
|
|||||||
import com.sangdol.roomescape.store.exception.StoreErrorCode
|
import com.sangdol.roomescape.store.exception.StoreErrorCode
|
||||||
import com.sangdol.roomescape.store.exception.StoreException
|
import com.sangdol.roomescape.store.exception.StoreException
|
||||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository
|
import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository
|
||||||
import com.sangdol.roomescape.store.web.StoreRegisterRequest
|
import com.sangdol.roomescape.store.dto.StoreRegisterRequest
|
||||||
import com.sangdol.roomescape.store.web.StoreUpdateRequest
|
import com.sangdol.roomescape.store.dto.StoreUpdateRequest
|
||||||
import io.github.oshai.kotlinlogging.KLogger
|
import io.github.oshai.kotlinlogging.KLogger
|
||||||
import io.github.oshai.kotlinlogging.KotlinLogging
|
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||||
import org.springframework.stereotype.Component
|
import org.springframework.stereotype.Component
|
||||||
|
|||||||
@ -5,7 +5,12 @@ import com.sangdol.roomescape.admin.infrastructure.persistence.AdminType
|
|||||||
import com.sangdol.roomescape.admin.infrastructure.persistence.Privilege
|
import com.sangdol.roomescape.admin.infrastructure.persistence.Privilege
|
||||||
import com.sangdol.roomescape.auth.web.support.AdminOnly
|
import com.sangdol.roomescape.auth.web.support.AdminOnly
|
||||||
import com.sangdol.roomescape.auth.web.support.Public
|
import com.sangdol.roomescape.auth.web.support.Public
|
||||||
import com.sangdol.roomescape.store.web.*
|
import com.sangdol.roomescape.store.dto.DetailStoreResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreNameListResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreInfoResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreRegisterRequest
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreRegisterResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreUpdateRequest
|
||||||
import io.swagger.v3.oas.annotations.Operation
|
import io.swagger.v3.oas.annotations.Operation
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponse
|
import io.swagger.v3.oas.annotations.responses.ApiResponse
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponses
|
import io.swagger.v3.oas.annotations.responses.ApiResponses
|
||||||
@ -53,7 +58,7 @@ interface PublicStoreAPI {
|
|||||||
fun getStores(
|
fun getStores(
|
||||||
@RequestParam(value = "sido", required = false) sidoCode: String?,
|
@RequestParam(value = "sido", required = false) sidoCode: String?,
|
||||||
@RequestParam(value = "sigungu", required = false) sigunguCode: String?
|
@RequestParam(value = "sigungu", required = false) sigunguCode: String?
|
||||||
): ResponseEntity<CommonApiResponse<SimpleStoreListResponse>>
|
): ResponseEntity<CommonApiResponse<StoreNameListResponse>>
|
||||||
|
|
||||||
@Public
|
@Public
|
||||||
@Operation(summary = "특정 매장의 정보 조회")
|
@Operation(summary = "특정 매장의 정보 조회")
|
||||||
|
|||||||
@ -0,0 +1,22 @@
|
|||||||
|
package com.sangdol.roomescape.store.dto
|
||||||
|
|
||||||
|
import com.sangdol.roomescape.common.types.AuditingInfo
|
||||||
|
import com.sangdol.roomescape.region.web.RegionInfoResponse
|
||||||
|
|
||||||
|
data class StoreRegisterRequest(
|
||||||
|
val name: String,
|
||||||
|
val address: String,
|
||||||
|
val contact: String,
|
||||||
|
val businessRegNum: String,
|
||||||
|
val regionCode: String
|
||||||
|
)
|
||||||
|
|
||||||
|
data class StoreRegisterResponse(
|
||||||
|
val id: Long
|
||||||
|
)
|
||||||
|
|
||||||
|
data class StoreUpdateRequest(
|
||||||
|
val name: String? = null,
|
||||||
|
val address: String? = null,
|
||||||
|
val contact: String? = null,
|
||||||
|
)
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
package com.sangdol.roomescape.store.dto
|
||||||
|
|
||||||
|
import com.sangdol.roomescape.common.types.AuditingInfo
|
||||||
|
import com.sangdol.roomescape.region.web.RegionInfoResponse
|
||||||
|
|
||||||
|
data class StoreNameResponse(
|
||||||
|
val id: Long,
|
||||||
|
val name: String
|
||||||
|
)
|
||||||
|
|
||||||
|
data class StoreNameListResponse(
|
||||||
|
val stores: List<StoreNameResponse>
|
||||||
|
)
|
||||||
|
|
||||||
|
data class StoreInfoResponse(
|
||||||
|
val id: Long,
|
||||||
|
val name: String,
|
||||||
|
val address: String,
|
||||||
|
val contact: String,
|
||||||
|
val businessRegNum: String
|
||||||
|
)
|
||||||
|
|
||||||
|
data class DetailStoreResponse(
|
||||||
|
val id: Long,
|
||||||
|
val name: String,
|
||||||
|
val address: String,
|
||||||
|
val contact: String,
|
||||||
|
val businessRegNum: String,
|
||||||
|
val region: RegionInfoResponse,
|
||||||
|
val audit: AuditingInfo
|
||||||
|
)
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
package com.sangdol.roomescape.store.mapper
|
||||||
|
|
||||||
|
import com.sangdol.roomescape.common.types.AuditingInfo
|
||||||
|
import com.sangdol.roomescape.region.web.RegionInfoResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.DetailStoreResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreInfoResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreNameListResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreNameResponse
|
||||||
|
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
||||||
|
|
||||||
|
fun StoreEntity.toInfoResponse() = StoreInfoResponse(
|
||||||
|
id = this.id,
|
||||||
|
name = this.name,
|
||||||
|
address = this.address,
|
||||||
|
contact = this.contact,
|
||||||
|
businessRegNum = this.businessRegNum
|
||||||
|
)
|
||||||
|
|
||||||
|
fun StoreEntity.toDetailResponse(
|
||||||
|
region: RegionInfoResponse,
|
||||||
|
audit: AuditingInfo
|
||||||
|
) = DetailStoreResponse(
|
||||||
|
id = this.id,
|
||||||
|
name = this.name,
|
||||||
|
address = this.address,
|
||||||
|
contact = this.contact,
|
||||||
|
businessRegNum = this.businessRegNum,
|
||||||
|
region = region,
|
||||||
|
audit = audit,
|
||||||
|
)
|
||||||
|
|
||||||
|
fun List<StoreEntity>.toSimpleListResponse() = StoreNameListResponse(
|
||||||
|
stores = this.map { StoreNameResponse(id = it.id, name = it.name) }
|
||||||
|
)
|
||||||
@ -3,6 +3,10 @@ package com.sangdol.roomescape.store.web
|
|||||||
import com.sangdol.common.types.web.CommonApiResponse
|
import com.sangdol.common.types.web.CommonApiResponse
|
||||||
import com.sangdol.roomescape.store.business.StoreService
|
import com.sangdol.roomescape.store.business.StoreService
|
||||||
import com.sangdol.roomescape.store.docs.AdminStoreAPI
|
import com.sangdol.roomescape.store.docs.AdminStoreAPI
|
||||||
|
import com.sangdol.roomescape.store.dto.DetailStoreResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreRegisterRequest
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreRegisterResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreUpdateRequest
|
||||||
import jakarta.validation.Valid
|
import jakarta.validation.Valid
|
||||||
import org.springframework.http.ResponseEntity
|
import org.springframework.http.ResponseEntity
|
||||||
import org.springframework.web.bind.annotation.*
|
import org.springframework.web.bind.annotation.*
|
||||||
|
|||||||
@ -1,46 +0,0 @@
|
|||||||
package com.sangdol.roomescape.store.web
|
|
||||||
|
|
||||||
import com.sangdol.roomescape.common.types.AuditingInfo
|
|
||||||
import com.sangdol.roomescape.region.web.RegionInfoResponse
|
|
||||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
|
||||||
|
|
||||||
data class StoreRegisterRequest(
|
|
||||||
val name: String,
|
|
||||||
val address: String,
|
|
||||||
val contact: String,
|
|
||||||
val businessRegNum: String,
|
|
||||||
val regionCode: String
|
|
||||||
)
|
|
||||||
|
|
||||||
data class StoreRegisterResponse(
|
|
||||||
val id: Long
|
|
||||||
)
|
|
||||||
|
|
||||||
data class StoreUpdateRequest(
|
|
||||||
val name: String? = null,
|
|
||||||
val address: String? = null,
|
|
||||||
val contact: String? = null,
|
|
||||||
)
|
|
||||||
|
|
||||||
data class DetailStoreResponse(
|
|
||||||
val id: Long,
|
|
||||||
val name: String,
|
|
||||||
val address: String,
|
|
||||||
val contact: String,
|
|
||||||
val businessRegNum: String,
|
|
||||||
val region: RegionInfoResponse,
|
|
||||||
val audit: AuditingInfo
|
|
||||||
)
|
|
||||||
|
|
||||||
fun StoreEntity.toDetailResponse(
|
|
||||||
region: RegionInfoResponse,
|
|
||||||
audit: AuditingInfo
|
|
||||||
) = DetailStoreResponse(
|
|
||||||
id = this.id,
|
|
||||||
name = this.name,
|
|
||||||
address = this.address,
|
|
||||||
contact = this.contact,
|
|
||||||
businessRegNum = this.businessRegNum,
|
|
||||||
region = region,
|
|
||||||
audit = audit,
|
|
||||||
)
|
|
||||||
@ -3,6 +3,8 @@ package com.sangdol.roomescape.store.web
|
|||||||
import com.sangdol.common.types.web.CommonApiResponse
|
import com.sangdol.common.types.web.CommonApiResponse
|
||||||
import com.sangdol.roomescape.store.business.StoreService
|
import com.sangdol.roomescape.store.business.StoreService
|
||||||
import com.sangdol.roomescape.store.docs.PublicStoreAPI
|
import com.sangdol.roomescape.store.docs.PublicStoreAPI
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreNameListResponse
|
||||||
|
import com.sangdol.roomescape.store.dto.StoreInfoResponse
|
||||||
import org.springframework.http.ResponseEntity
|
import org.springframework.http.ResponseEntity
|
||||||
import org.springframework.web.bind.annotation.GetMapping
|
import org.springframework.web.bind.annotation.GetMapping
|
||||||
import org.springframework.web.bind.annotation.PathVariable
|
import org.springframework.web.bind.annotation.PathVariable
|
||||||
@ -18,7 +20,7 @@ class StoreController(
|
|||||||
override fun getStores(
|
override fun getStores(
|
||||||
@RequestParam(value = "sido", required = false) sidoCode: String?,
|
@RequestParam(value = "sido", required = false) sidoCode: String?,
|
||||||
@RequestParam(value = "sigungu", required = false) sigunguCode: String?
|
@RequestParam(value = "sigungu", required = false) sigunguCode: String?
|
||||||
): ResponseEntity<CommonApiResponse<SimpleStoreListResponse>> {
|
): ResponseEntity<CommonApiResponse<StoreNameListResponse>> {
|
||||||
val response = storeService.getAllActiveStores(sidoCode, sigunguCode)
|
val response = storeService.getAllActiveStores(sidoCode, sigunguCode)
|
||||||
|
|
||||||
return ResponseEntity.ok(CommonApiResponse(response))
|
return ResponseEntity.ok(CommonApiResponse(response))
|
||||||
|
|||||||
@ -1,32 +0,0 @@
|
|||||||
package com.sangdol.roomescape.store.web
|
|
||||||
|
|
||||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
|
||||||
|
|
||||||
data class SimpleStoreResponse(
|
|
||||||
val id: Long,
|
|
||||||
val name: String
|
|
||||||
)
|
|
||||||
|
|
||||||
data class SimpleStoreListResponse(
|
|
||||||
val stores: List<SimpleStoreResponse>
|
|
||||||
)
|
|
||||||
|
|
||||||
fun List<StoreEntity>.toSimpleListResponse() = SimpleStoreListResponse(
|
|
||||||
stores = this.map { SimpleStoreResponse(id = it.id, name = it.name) }
|
|
||||||
)
|
|
||||||
|
|
||||||
data class StoreInfoResponse(
|
|
||||||
val id: Long,
|
|
||||||
val name: String,
|
|
||||||
val address: String,
|
|
||||||
val contact: String,
|
|
||||||
val businessRegNum: String
|
|
||||||
)
|
|
||||||
|
|
||||||
fun StoreEntity.toInfoResponse() = StoreInfoResponse(
|
|
||||||
id = this.id,
|
|
||||||
name = this.name,
|
|
||||||
address = this.address,
|
|
||||||
contact = this.contact,
|
|
||||||
businessRegNum = this.businessRegNum
|
|
||||||
)
|
|
||||||
@ -9,7 +9,7 @@ import com.sangdol.roomescape.store.exception.StoreErrorCode
|
|||||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
||||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository
|
import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository
|
||||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreStatus
|
import com.sangdol.roomescape.store.infrastructure.persistence.StoreStatus
|
||||||
import com.sangdol.roomescape.store.web.StoreUpdateRequest
|
import com.sangdol.roomescape.store.dto.StoreUpdateRequest
|
||||||
import com.sangdol.roomescape.supports.*
|
import com.sangdol.roomescape.supports.*
|
||||||
import io.kotest.assertions.assertSoftly
|
import io.kotest.assertions.assertSoftly
|
||||||
import io.kotest.matchers.date.shouldBeAfter
|
import io.kotest.matchers.date.shouldBeAfter
|
||||||
|
|||||||
@ -16,7 +16,7 @@ import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleEntity
|
|||||||
import com.sangdol.roomescape.schedule.web.ScheduleCreateRequest
|
import com.sangdol.roomescape.schedule.web.ScheduleCreateRequest
|
||||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
||||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreStatus
|
import com.sangdol.roomescape.store.infrastructure.persistence.StoreStatus
|
||||||
import com.sangdol.roomescape.store.web.StoreRegisterRequest
|
import com.sangdol.roomescape.store.dto.StoreRegisterRequest
|
||||||
import com.sangdol.roomescape.theme.infrastructure.persistence.Difficulty
|
import com.sangdol.roomescape.theme.infrastructure.persistence.Difficulty
|
||||||
import com.sangdol.roomescape.theme.infrastructure.persistence.ThemeEntity
|
import com.sangdol.roomescape.theme.infrastructure.persistence.ThemeEntity
|
||||||
import com.sangdol.roomescape.theme.dto.ThemeCreateRequest
|
import com.sangdol.roomescape.theme.dto.ThemeCreateRequest
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user