From 5dbf5eba5fe5938440d401f182a242a35c70c1d5 Mon Sep 17 00:00:00 2001 From: naemoo Date: Sun, 26 Jun 2022 17:27:31 +0900 Subject: [PATCH 01/10] =?UTF-8?q?feat:=20DeliveryInfoEntity=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ssu/commerce/delivery/domain/Address.kt | 20 ++++++++ .../commerce/delivery/domain/DeliveryFee.kt | 17 +++++++ .../delivery/domain/DeliveryInfoEntity.kt | 46 +++++++++++++++++++ .../delivery/domain/enum/DeliveryFeeType.kt | 5 ++ .../delivery/domain/enum/DeliveryStatus.kt | 16 +++++++ .../delivery/domain/enum/DeliveryType.kt | 5 ++ 6 files changed, 109 insertions(+) create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/domain/Address.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryFee.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryFeeType.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryStatus.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryType.kt diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/Address.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/Address.kt new file mode 100644 index 0000000..932441e --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/Address.kt @@ -0,0 +1,20 @@ +package com.ssu.commerce.delivery.domain + +import javax.persistence.Column +import javax.persistence.Embeddable + +@Embeddable +data class Address( + @Column(length = 255, nullable = false) + val addressBase: String, + @Column(length = 255, nullable = false) + val addressDetail: String, + @Column(length = 255) + val message: String? = null, + @Column(length = 10, nullable = false) + val zipcode: String, + @Column(length = 15, nullable = false) + val phoneNumber1: String, + @Column(length = 15) + val phoneNumber2: String? = null +) diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryFee.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryFee.kt new file mode 100644 index 0000000..6a3c3b5 --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryFee.kt @@ -0,0 +1,17 @@ +package com.ssu.commerce.delivery.domain + +import com.ssu.commerce.delivery.domain.enum.DeliveryFeeType +import java.math.BigDecimal +import javax.persistence.Column +import javax.persistence.Embeddable +import javax.persistence.EnumType +import javax.persistence.Enumerated + +@Embeddable +data class DeliveryFee( + @Column(length = 4, nullable = false) + @Enumerated(EnumType.STRING) + val deliveryFeeType: DeliveryFeeType, + @Column(nullable = false) + val baseFee: BigDecimal +) diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt new file mode 100644 index 0000000..e04047d --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt @@ -0,0 +1,46 @@ +package com.ssu.commerce.delivery.domain + +import com.ssu.commerce.core.jpa.BaseEntity +import com.ssu.commerce.delivery.domain.enum.DeliveryStatus +import com.ssu.commerce.delivery.domain.enum.DeliveryType +import java.time.LocalDateTime +import javax.persistence.Column +import javax.persistence.Embedded +import javax.persistence.Entity +import javax.persistence.EnumType +import javax.persistence.Enumerated +import javax.persistence.GeneratedValue +import javax.persistence.GenerationType +import javax.persistence.Id +import javax.persistence.Table + +@Entity +@Table(name = "delivery_info") +data class DeliveryInfoEntity( + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(nullable = false, updatable = false) + val id: Long? = null, + @Column(nullable = false, updatable = false) + val cartId: Long, + @Column(nullable = false, updatable = false) + val orderBookId: Long, + @Embedded + val deliveryFee: DeliveryFee, + @Column(nullable = false, updatable = false) + val sellerAccountId: Long, + @Column(nullable = false, updatable = false) + val lenderAccountId: Long, + @Embedded + var lenderAddress: Address, + @Column(nullable = false, updatable = false) + @Enumerated(EnumType.STRING) + var deliveryType: DeliveryType, + @Column(nullable = false, updatable = false) + @Enumerated(EnumType.STRING) + var status: DeliveryStatus, + @Column(nullable = false, updatable = false) + val deliveryStartedAt: LocalDateTime, + @Column(nullable = false, updatable = false) + val deliveryArrivedAt: LocalDateTime, +) : BaseEntity() diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryFeeType.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryFeeType.kt new file mode 100644 index 0000000..a962754 --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryFeeType.kt @@ -0,0 +1,5 @@ +package com.ssu.commerce.delivery.domain.enum + +enum class DeliveryFeeType(val description: String) { + FREE("무료"), PAID("유료") +} diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryStatus.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryStatus.kt new file mode 100644 index 0000000..54f4a2b --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryStatus.kt @@ -0,0 +1,16 @@ +package com.ssu.commerce.delivery.domain.enum + +enum class DeliveryStatus(val description: String) { + DS00("배송 요청"), + DS01("배송 준비"), + DS02("배송 중"), + DS03("배송 완료"), + + DS04("반송 요청"), + DS05("반송 준비"), + DS06("반송 중"), + DS07("반송 완료"), + + DS10("배송 취소"), + DS11("반송 취소") +} diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryType.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryType.kt new file mode 100644 index 0000000..5cf238f --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryType.kt @@ -0,0 +1,5 @@ +package com.ssu.commerce.delivery.domain.enum + +enum class DeliveryType(val description: String) { + DELIVERY("택배배송"), DIRECT("직배송"); +} From 2dcd6b840c9726a83d79ed60387ed6f847d27e19 Mon Sep 17 00:00:00 2001 From: naemoo Date: Sun, 26 Jun 2022 20:51:59 +0900 Subject: [PATCH 02/10] =?UTF-8?q?feat:=20DeliveryInfoRepository=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt | 4 ++-- .../ssu/commerce/delivery/domain/DeliveryInfoRepository.kt | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoRepository.kt diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt index e04047d..37d23f3 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt @@ -19,7 +19,7 @@ import javax.persistence.Table data class DeliveryInfoEntity( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(nullable = false, updatable = false) + @Column(updatable = false) val id: Long? = null, @Column(nullable = false, updatable = false) val cartId: Long, @@ -42,5 +42,5 @@ data class DeliveryInfoEntity( @Column(nullable = false, updatable = false) val deliveryStartedAt: LocalDateTime, @Column(nullable = false, updatable = false) - val deliveryArrivedAt: LocalDateTime, + val deliveryArrivedAt: LocalDateTime ) : BaseEntity() diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoRepository.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoRepository.kt new file mode 100644 index 0000000..0cd25d0 --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoRepository.kt @@ -0,0 +1,7 @@ +package com.ssu.commerce.delivery.domain + +import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.stereotype.Repository + +@Repository +interface DeliveryInfoRepository : JpaRepository From c643497f95a657cec069de6577e1ad4f88ac07b4 Mon Sep 17 00:00:00 2001 From: naemoo Date: Sun, 3 Jul 2022 14:58:42 +0900 Subject: [PATCH 03/10] =?UTF-8?q?fature:=20=EA=B1=B0=EB=9E=98=20column=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt index 37d23f3..61dfb99 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt @@ -22,7 +22,7 @@ data class DeliveryInfoEntity( @Column(updatable = false) val id: Long? = null, @Column(nullable = false, updatable = false) - val cartId: Long, + val transactionId: Long, @Column(nullable = false, updatable = false) val orderBookId: Long, @Embedded From 65a928a4555deb93fd423b0508150eb7ea78e45e Mon Sep 17 00:00:00 2001 From: naemoo Date: Sat, 9 Jul 2022 16:30:09 +0900 Subject: [PATCH 04/10] =?UTF-8?q?chore:=20Configuration=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ssu/commerce/delivery/DeliveryApplication.kt | 4 ---- .../ssu/commerce/delivery/configs/CoreConfiguration.kt | 8 ++++++++ .../ssu/commerce/delivery/configs/VaultConfiguration.kt | 8 ++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/configs/CoreConfiguration.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/configs/VaultConfiguration.kt diff --git a/src/main/kotlin/com/ssu/commerce/delivery/DeliveryApplication.kt b/src/main/kotlin/com/ssu/commerce/delivery/DeliveryApplication.kt index 67b3d8a..6c951b1 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/DeliveryApplication.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/DeliveryApplication.kt @@ -1,12 +1,8 @@ package com.ssu.commerce.delivery -import com.ssu.commerce.core.configs.EnableSsuCommerceCore -import com.ssu.commerce.vault.config.EnableSsuCommerceVault import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication -@EnableSsuCommerceVault -@EnableSsuCommerceCore @SpringBootApplication class DeliveryApplication diff --git a/src/main/kotlin/com/ssu/commerce/delivery/configs/CoreConfiguration.kt b/src/main/kotlin/com/ssu/commerce/delivery/configs/CoreConfiguration.kt new file mode 100644 index 0000000..01ac1b0 --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/configs/CoreConfiguration.kt @@ -0,0 +1,8 @@ +package com.ssu.commerce.delivery.configs + +import com.ssu.commerce.core.configs.EnableSsuCommerceCore +import org.springframework.context.annotation.Configuration + +@EnableSsuCommerceCore +@Configuration +class CoreConfiguration diff --git a/src/main/kotlin/com/ssu/commerce/delivery/configs/VaultConfiguration.kt b/src/main/kotlin/com/ssu/commerce/delivery/configs/VaultConfiguration.kt new file mode 100644 index 0000000..b18d1d2 --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/configs/VaultConfiguration.kt @@ -0,0 +1,8 @@ +package com.ssu.commerce.delivery.configs + +import com.ssu.commerce.vault.config.EnableSsuCommerceVault +import org.springframework.context.annotation.Configuration + +@EnableSsuCommerceVault +@Configuration +class VaultConfiguration From fa89d5649dc2b4ed8b443b20f633f5b16fe2fb22 Mon Sep 17 00:00:00 2001 From: naemoo Date: Sat, 9 Jul 2022 17:02:23 +0900 Subject: [PATCH 05/10] =?UTF-8?q?feature=20:=20=EB=8F=84=EB=A9=94=EC=9D=B8?= =?UTF-8?q?=20=EB=A0=88=EC=9D=B4=EC=96=B4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../delivery/domain/{Address.kt => AddressInfo.kt} | 2 +- .../domain/{DeliveryFee.kt => DeliveryFeeInfo.kt} | 4 ++-- .../ssu/commerce/delivery/domain/DeliveryInfoEntity.kt | 8 ++++---- .../commerce/delivery/domain/DeliveryInfoRepository.kt | 8 +++++++- .../delivery/domain/{enum => enums}/DeliveryFeeType.kt | 2 +- .../delivery/domain/{enum => enums}/DeliveryStatus.kt | 2 +- .../delivery/domain/{enum => enums}/DeliveryType.kt | 2 +- 7 files changed, 17 insertions(+), 11 deletions(-) rename src/main/kotlin/com/ssu/commerce/delivery/domain/{Address.kt => AddressInfo.kt} (95%) rename src/main/kotlin/com/ssu/commerce/delivery/domain/{DeliveryFee.kt => DeliveryFeeInfo.kt} (81%) rename src/main/kotlin/com/ssu/commerce/delivery/domain/{enum => enums}/DeliveryFeeType.kt (66%) rename src/main/kotlin/com/ssu/commerce/delivery/domain/{enum => enums}/DeliveryStatus.kt (87%) rename src/main/kotlin/com/ssu/commerce/delivery/domain/{enum => enums}/DeliveryType.kt (69%) diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/Address.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/AddressInfo.kt similarity index 95% rename from src/main/kotlin/com/ssu/commerce/delivery/domain/Address.kt rename to src/main/kotlin/com/ssu/commerce/delivery/domain/AddressInfo.kt index 932441e..3509521 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/domain/Address.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/AddressInfo.kt @@ -4,7 +4,7 @@ import javax.persistence.Column import javax.persistence.Embeddable @Embeddable -data class Address( +data class AddressInfo( @Column(length = 255, nullable = false) val addressBase: String, @Column(length = 255, nullable = false) diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryFee.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryFeeInfo.kt similarity index 81% rename from src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryFee.kt rename to src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryFeeInfo.kt index 6a3c3b5..5401333 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryFee.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryFeeInfo.kt @@ -1,6 +1,6 @@ package com.ssu.commerce.delivery.domain -import com.ssu.commerce.delivery.domain.enum.DeliveryFeeType +import com.ssu.commerce.delivery.domain.enums.DeliveryFeeType import java.math.BigDecimal import javax.persistence.Column import javax.persistence.Embeddable @@ -8,7 +8,7 @@ import javax.persistence.EnumType import javax.persistence.Enumerated @Embeddable -data class DeliveryFee( +data class DeliveryFeeInfo( @Column(length = 4, nullable = false) @Enumerated(EnumType.STRING) val deliveryFeeType: DeliveryFeeType, diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt index 61dfb99..dc0ed48 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoEntity.kt @@ -1,8 +1,8 @@ package com.ssu.commerce.delivery.domain import com.ssu.commerce.core.jpa.BaseEntity -import com.ssu.commerce.delivery.domain.enum.DeliveryStatus -import com.ssu.commerce.delivery.domain.enum.DeliveryType +import com.ssu.commerce.delivery.domain.enums.DeliveryStatus +import com.ssu.commerce.delivery.domain.enums.DeliveryType import java.time.LocalDateTime import javax.persistence.Column import javax.persistence.Embedded @@ -26,13 +26,13 @@ data class DeliveryInfoEntity( @Column(nullable = false, updatable = false) val orderBookId: Long, @Embedded - val deliveryFee: DeliveryFee, + val deliveryFee: DeliveryFeeInfo, @Column(nullable = false, updatable = false) val sellerAccountId: Long, @Column(nullable = false, updatable = false) val lenderAccountId: Long, @Embedded - var lenderAddress: Address, + var lenderAddress: AddressInfo, @Column(nullable = false, updatable = false) @Enumerated(EnumType.STRING) var deliveryType: DeliveryType, diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoRepository.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoRepository.kt index 0cd25d0..ff9bce7 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoRepository.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/DeliveryInfoRepository.kt @@ -1,7 +1,13 @@ package com.ssu.commerce.delivery.domain +import com.ssu.commerce.core.exception.SsuCommerceException import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.data.repository.findByIdOrNull +import org.springframework.http.HttpStatus import org.springframework.stereotype.Repository @Repository -interface DeliveryInfoRepository : JpaRepository +interface DeliveryInfoRepository : JpaRepository { + override fun getById(id: Long): DeliveryInfoEntity = findByIdOrNull(id) + ?: throw SsuCommerceException(HttpStatus.BAD_REQUEST, "delivery-01", "존재 하지 않는 아이디입니다.") +} diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryFeeType.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/enums/DeliveryFeeType.kt similarity index 66% rename from src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryFeeType.kt rename to src/main/kotlin/com/ssu/commerce/delivery/domain/enums/DeliveryFeeType.kt index a962754..a7703e9 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryFeeType.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/enums/DeliveryFeeType.kt @@ -1,4 +1,4 @@ -package com.ssu.commerce.delivery.domain.enum +package com.ssu.commerce.delivery.domain.enums enum class DeliveryFeeType(val description: String) { FREE("무료"), PAID("유료") diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryStatus.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/enums/DeliveryStatus.kt similarity index 87% rename from src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryStatus.kt rename to src/main/kotlin/com/ssu/commerce/delivery/domain/enums/DeliveryStatus.kt index 54f4a2b..fe5bf31 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryStatus.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/enums/DeliveryStatus.kt @@ -1,4 +1,4 @@ -package com.ssu.commerce.delivery.domain.enum +package com.ssu.commerce.delivery.domain.enums enum class DeliveryStatus(val description: String) { DS00("배송 요청"), diff --git a/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryType.kt b/src/main/kotlin/com/ssu/commerce/delivery/domain/enums/DeliveryType.kt similarity index 69% rename from src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryType.kt rename to src/main/kotlin/com/ssu/commerce/delivery/domain/enums/DeliveryType.kt index 5cf238f..0b10cbf 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/domain/enum/DeliveryType.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/domain/enums/DeliveryType.kt @@ -1,4 +1,4 @@ -package com.ssu.commerce.delivery.domain.enum +package com.ssu.commerce.delivery.domain.enums enum class DeliveryType(val description: String) { DELIVERY("택배배송"), DIRECT("직배송"); From 2542901d01d2d0d47b2c5e94e9dcecb1ca86a7b6 Mon Sep 17 00:00:00 2001 From: naemoo Date: Sat, 9 Jul 2022 17:04:04 +0900 Subject: [PATCH 06/10] =?UTF-8?q?feature=20:=20=EB=B0=B0=EC=86=A1=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EB=B0=8F=20=EC=83=9D=EC=84=B1=20=EC=84=9C?= =?UTF-8?q?=EB=B9=84=EC=8A=A4=20=EB=A0=88=EC=9D=B4=EC=96=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/model/DeliveryCreateModel.kt | 41 +++++++++++++++++++ .../delivery/converter/DeliveryConverter.kt | 25 +++++++++++ .../service/DeliveryInfoEntityFactory.kt | 38 +++++++++++++++++ .../delivery/service/DeliveryService.kt | 39 ++++++++++++++++++ .../service/policy/DeliveryCreatePolicy.kt | 7 ++++ .../com/ssu/commerce/delivery/vo/Delivery.kt | 31 ++++++++++++++ 6 files changed, 181 insertions(+) create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryCreateModel.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryService.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/service/policy/DeliveryCreatePolicy.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/vo/Delivery.kt diff --git a/src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryCreateModel.kt b/src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryCreateModel.kt new file mode 100644 index 0000000..e030ea4 --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryCreateModel.kt @@ -0,0 +1,41 @@ +package com.ssu.commerce.delivery.controller.model + +import com.ssu.commerce.delivery.domain.enums.DeliveryFeeType +import com.ssu.commerce.delivery.domain.enums.DeliveryStatus +import com.ssu.commerce.delivery.domain.enums.DeliveryType +import java.math.BigDecimal +import java.time.LocalDateTime +import javax.validation.constraints.FutureOrPresent +import javax.validation.constraints.NotBlank +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern + +data class DeliveryCreateModel( + val transactionId: Long, + val orderBookId: Long, + val deliveryFeeType: DeliveryFeeType, + val baseFee: BigDecimal, + @NotNull + val sellerAccountId: Long, + @NotNull + val lenderAccountId: Long, + @NotBlank + val addressBase: String, + @NotBlank + val addressDetail: String, + val message: String? = null, + @Pattern(regexp = "\\d{5}") + @NotBlank + val zipcode: String, + @Pattern(regexp = "\\d{3}-\\d{4}-\\d{4}") + @NotBlank + val phoneNumber1: String, + @Pattern(regexp = "\\d{3}-\\d{4}-\\d{4}") + val phoneNumber2: String? = null, + var deliveryType: DeliveryType, + var deliveryStatus: DeliveryStatus, + @FutureOrPresent + val deliveryStartedAt: LocalDateTime, + @FutureOrPresent + val deliveryArrivedAt: LocalDateTime +) diff --git a/src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt b/src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt new file mode 100644 index 0000000..6cdbe5b --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt @@ -0,0 +1,25 @@ +package com.ssu.commerce.delivery.converter + +import com.ssu.commerce.delivery.controller.model.DeliveryCreateModel +import com.ssu.commerce.delivery.domain.DeliveryInfoEntity +import com.ssu.commerce.delivery.vo.Delivery +import org.mapstruct.Mapper +import org.mapstruct.Mapping +import org.mapstruct.Mappings + +@Mapper(componentModel = "spring") +interface DeliveryConverter { + + @Mappings( + Mapping(target = "addressBase", source = "lenderAddress.addressBase"), + Mapping(target = "addressDetail", source = "lenderAddress.addressDetail"), + Mapping(target = "message", source = "lenderAddress.message"), + Mapping(target = "zipcode", source = "lenderAddress.zipcode"), + Mapping(target = "phoneNumber1", source = "lenderAddress.phoneNumber1"), + Mapping(target = "phoneNumber2", source = "lenderAddress.phoneNumber2") + ) + fun convert(deliveryInfoEntity: DeliveryInfoEntity): Delivery + + @Mappings + fun convert(deliveryCreate: DeliveryCreateModel): Delivery +} diff --git a/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt b/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt new file mode 100644 index 0000000..1832163 --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt @@ -0,0 +1,38 @@ +package com.ssu.commerce.delivery.service + +import com.ssu.commerce.delivery.controller.model.DeliveryCreateModel +import com.ssu.commerce.delivery.domain.AddressInfo +import com.ssu.commerce.delivery.domain.DeliveryFeeInfo +import com.ssu.commerce.delivery.domain.DeliveryInfoEntity +import com.ssu.commerce.delivery.service.policy.DeliveryCreatePolicy +import org.springframework.stereotype.Component + +@Component +class DeliveryInfoEntityFactory( + private val createPolicies: List +) { + fun buildNewEntity(deliveryCreateModel: DeliveryCreateModel): DeliveryInfoEntity { + deliveryCreateModel.apply { createPolicies.forEach { it.validate(this) } } + + return DeliveryInfoEntity( + id = null, + transactionId = deliveryCreateModel.transactionId, + orderBookId = deliveryCreateModel.orderBookId, + deliveryFee = DeliveryFeeInfo(deliveryCreateModel.deliveryFeeType, deliveryCreateModel.baseFee), + sellerAccountId = deliveryCreateModel.sellerAccountId, + lenderAccountId = deliveryCreateModel.lenderAccountId, + lenderAddress = AddressInfo( + deliveryCreateModel.addressBase, + deliveryCreateModel.addressDetail, + deliveryCreateModel.message, + deliveryCreateModel.zipcode, + deliveryCreateModel.phoneNumber1, + deliveryCreateModel.phoneNumber2 + ), + deliveryType = deliveryCreateModel.deliveryType, + status = deliveryCreateModel.deliveryStatus, + deliveryStartedAt = deliveryCreateModel.deliveryStartedAt, + deliveryArrivedAt = deliveryCreateModel.deliveryArrivedAt + ) + } +} diff --git a/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryService.kt b/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryService.kt new file mode 100644 index 0000000..05241f2 --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryService.kt @@ -0,0 +1,39 @@ +package com.ssu.commerce.delivery.service + +import com.ssu.commerce.delivery.controller.model.DeliveryCreateModel +import com.ssu.commerce.delivery.converter.DeliveryConverter +import com.ssu.commerce.delivery.domain.DeliveryInfoRepository +import com.ssu.commerce.delivery.vo.Delivery +import org.springframework.data.domain.Page +import org.springframework.data.domain.PageRequest +import org.springframework.data.domain.Sort +import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Transactional + +@Service +class DeliveryService( + private val deliveryInfoRepository: DeliveryInfoRepository, + private val deliveryConverter: DeliveryConverter, + private val deliveryInfoEntityFactory: DeliveryInfoEntityFactory +) { + + @Transactional(readOnly = true) + fun get(id: Long): Delivery { + val deliveryEntity = deliveryInfoRepository.getById(id) + return deliveryConverter.convert(deliveryEntity) + } + + @Transactional(readOnly = true) + fun getList(page: Int, size: Int): Page { + val pageRequest = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "id")) + val entities = deliveryInfoRepository.findAll(pageRequest) + return entities.map(deliveryConverter::convert) + } + + @Transactional + fun create(deliveryCreateModel: DeliveryCreateModel): Delivery { + val entity = deliveryInfoEntityFactory.buildNewEntity(deliveryCreateModel) + val savedEntity = deliveryInfoRepository.save(entity) + return deliveryConverter.convert(savedEntity) + } +} diff --git a/src/main/kotlin/com/ssu/commerce/delivery/service/policy/DeliveryCreatePolicy.kt b/src/main/kotlin/com/ssu/commerce/delivery/service/policy/DeliveryCreatePolicy.kt new file mode 100644 index 0000000..846f795 --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/service/policy/DeliveryCreatePolicy.kt @@ -0,0 +1,7 @@ +package com.ssu.commerce.delivery.service.policy + +import com.ssu.commerce.delivery.controller.model.DeliveryCreateModel + +interface DeliveryCreatePolicy { + fun validate(deliveryCreateModel: DeliveryCreateModel) +} diff --git a/src/main/kotlin/com/ssu/commerce/delivery/vo/Delivery.kt b/src/main/kotlin/com/ssu/commerce/delivery/vo/Delivery.kt new file mode 100644 index 0000000..38a4af9 --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/vo/Delivery.kt @@ -0,0 +1,31 @@ +package com.ssu.commerce.delivery.vo + +import com.ssu.commerce.delivery.domain.enums.DeliveryFeeType +import com.ssu.commerce.delivery.domain.enums.DeliveryStatus +import com.ssu.commerce.delivery.domain.enums.DeliveryType +import java.math.BigDecimal +import java.time.LocalDateTime + +data class Delivery( + val id: Long? = null, + val transactionId: Long, + val orderBookId: Long, + val deliveryFeeType: DeliveryFeeType, + val baseFee: BigDecimal, + val sellerAccountId: Long, + val lenderAccountId: Long, + val addressBase: String, + val addressDetail: String, + val message: String? = null, + val zipcode: String, + val phoneNumber1: String, + val phoneNumber2: String? = null, + var deliveryType: DeliveryType, + var deliveryStatus: DeliveryStatus, + val deliveryStartedAt: LocalDateTime, + val deliveryArrivedAt: LocalDateTime, + val createdWho: String? = null, + val createdAt: LocalDateTime? = null, + val updatedWho: String? = null, + val updatedAt: LocalDateTime? = null +) From e199afbc26d5b79b07300129fa0a95efc9453210 Mon Sep 17 00:00:00 2001 From: naemoo Date: Sat, 9 Jul 2022 17:13:42 +0900 Subject: [PATCH 07/10] =?UTF-8?q?chore:=20mapstruct=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=20=EB=B0=8F=20kapt=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index d396c2f..7497b87 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,6 +7,7 @@ plugins { kotlin("jvm") version "1.6.10" kotlin("plugin.spring") version "1.6.10" kotlin("plugin.jpa") version "1.6.10" + kotlin("kapt") version "1.5.10" } group = "com.ssu.commerce" @@ -43,6 +44,9 @@ dependencies { annotationProcessor("org.springframework.boot:spring-boot-configuration-processor") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.springframework.security:spring-security-test") + + implementation("org.mapstruct:mapstruct:1.5.2.Final") + kapt("org.mapstruct:mapstruct-processor:1.5.2.Final") } tasks.withType { From 73498f2dfb75db6891daac501d87b54d4960daec Mon Sep 17 00:00:00 2001 From: naemoo Date: Sat, 9 Jul 2022 17:55:56 +0900 Subject: [PATCH 08/10] =?UTF-8?q?feature:=20=EB=B0=B0=EC=86=A1=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EC=A1=B0=ED=9A=8C=20controller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../delivery/controller/DeliveryController.kt | 55 ++++++++++++++++++ .../controller/model/DeliveryResponseModel.kt | 58 +++++++++++++++++++ .../delivery/converter/DeliveryConverter.kt | 3 + .../commerce/delivery/utils/DateTimeUtils.kt | 7 +++ 4 files changed, 123 insertions(+) create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/controller/DeliveryController.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryResponseModel.kt create mode 100644 src/main/kotlin/com/ssu/commerce/delivery/utils/DateTimeUtils.kt diff --git a/src/main/kotlin/com/ssu/commerce/delivery/controller/DeliveryController.kt b/src/main/kotlin/com/ssu/commerce/delivery/controller/DeliveryController.kt new file mode 100644 index 0000000..89cd8e5 --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/controller/DeliveryController.kt @@ -0,0 +1,55 @@ +package com.ssu.commerce.delivery.controller + +import com.ssu.commerce.core.response.PageResponse +import com.ssu.commerce.delivery.controller.model.DeliveryCreateModel +import com.ssu.commerce.delivery.controller.model.DeliveryResponseModel +import com.ssu.commerce.delivery.converter.DeliveryConverter +import com.ssu.commerce.delivery.service.DeliveryService +import io.swagger.v3.oas.annotations.Operation +import io.swagger.v3.oas.annotations.media.Content +import io.swagger.v3.oas.annotations.media.Schema +import io.swagger.v3.oas.annotations.tags.Tag +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.PathVariable +import org.springframework.web.bind.annotation.PostMapping +import org.springframework.web.bind.annotation.RequestBody +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RequestParam +import org.springframework.web.bind.annotation.RestController +import javax.validation.Valid + +@RestController +@RequestMapping("/deliveries") +@Tag(name = "배송 관련 API") +class DeliveryController( + private val deliveryService: DeliveryService, + private val deliveryConverter: DeliveryConverter +) { + + @GetMapping + @Operation(summary = "배송 리스트 조회") + fun getList(@RequestParam page: Int, @RequestParam size: Int): PageResponse { + val result = deliveryService.getList(page, size) + return PageResponse(result.map(deliveryConverter::convert)) + } + + @GetMapping("/{deliveryId}") + @Operation(summary = "배송 상세 조회") + fun get(@PathVariable deliveryId: Long): DeliveryResponseModel { + val result = deliveryService.get(deliveryId) + return deliveryConverter.convert(result) + } + + @PostMapping + @Operation( + summary = "배송 생성", + requestBody = io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "배달 생성 객체", + required = true, + content = [Content(schema = Schema(implementation = DeliveryCreateModel::class))] + ) + ) + fun create(@RequestBody @Valid deliveryCreate: DeliveryCreateModel) { + deliveryService.create(deliveryCreate) + } +} diff --git a/src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryResponseModel.kt b/src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryResponseModel.kt new file mode 100644 index 0000000..e5b01fd --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryResponseModel.kt @@ -0,0 +1,58 @@ +package com.ssu.commerce.delivery.controller.model + +import com.fasterxml.jackson.annotation.JsonFormat +import com.ssu.commerce.delivery.domain.enums.DeliveryFeeType +import com.ssu.commerce.delivery.domain.enums.DeliveryStatus +import com.ssu.commerce.delivery.domain.enums.DeliveryType +import com.ssu.commerce.delivery.utils.DateTimeUtils +import io.swagger.v3.oas.annotations.media.Schema +import java.math.BigDecimal +import java.time.LocalDateTime + +@Schema(description = "배송 응답 모델") +data class DeliveryResponseModel( + @Schema(description = "배송 등록번호", defaultValue = "1") + val id: Long, + @Schema(description = "거래 등록 번호", example = "1") + val transactionId: Long, + @Schema(description = "주문한 책 번호", example = "1") + val orderBookId: Long, + @Schema(description = "배송비 유형", example = "FREE") + val deliveryFeeType: DeliveryFeeType, + @Schema(description = "배송비", example = "1000") + val baseFee: BigDecimal, + @Schema(description = "판매자 등록번호", example = "1") + val sellerAccountId: Long, + @Schema(description = "대여자 등록번호", example = "1") + val lenderAccountId: Long, + @Schema(description = "대여자 기본주소", example = "서울특별시 동작구 상도로 369") + val addressBase: String, + @Schema(description = "대여자 상세주소", example = "정보과학관 301호") + val addressDetail: String, + @Schema(description = "남기고 싶은 메세지", example = "도착 시 연락주세요") + val message: String? = null, + @Schema(description = "우편번호", example = "06978") + val zipcode: String, + @Schema(description = "대여자 연락 번호1", example = "010-1234-1234") + val phoneNumber1: String, + @Schema(description = "대여자 연락 번호2", example = "010-1234-1234") + val phoneNumber2: String? = null, + @Schema(description = "배송 유형", example = "DELIVERY") + var deliveryType: DeliveryType, + @Schema(description = "배송 상태", example = "DS00") + var deliveryStatus: DeliveryStatus, + @Schema(description = "배송 시작 일시", example = "2022-07-01 17:00:00") + val deliveryStartedAt: LocalDateTime, + @Schema(description = "배송 도착 일시", example = "2022-07-01 17:00:00") + val deliveryArrivedAt: LocalDateTime, + @Schema(description = "생성자", example = "TREE") + val createdWho: String, + @JsonFormat(pattern = DateTimeUtils.PATTERN) + @Schema(description = "생성일시", example = "2022-07-01 17:00:00") + val createdAt: LocalDateTime, + @Schema(description = "변경자", example = "TREE") + val updatedWho: String, + @JsonFormat(pattern = DateTimeUtils.PATTERN) + @Schema(description = "변경일시", example = "2022-07-01 17:00:00") + val updatedAt: LocalDateTime +) diff --git a/src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt b/src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt index 6cdbe5b..1713d61 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt @@ -1,6 +1,7 @@ package com.ssu.commerce.delivery.converter import com.ssu.commerce.delivery.controller.model.DeliveryCreateModel +import com.ssu.commerce.delivery.controller.model.DeliveryResponseModel import com.ssu.commerce.delivery.domain.DeliveryInfoEntity import com.ssu.commerce.delivery.vo.Delivery import org.mapstruct.Mapper @@ -22,4 +23,6 @@ interface DeliveryConverter { @Mappings fun convert(deliveryCreate: DeliveryCreateModel): Delivery + + fun convert(delivery: Delivery): DeliveryResponseModel } diff --git a/src/main/kotlin/com/ssu/commerce/delivery/utils/DateTimeUtils.kt b/src/main/kotlin/com/ssu/commerce/delivery/utils/DateTimeUtils.kt new file mode 100644 index 0000000..f2e65ca --- /dev/null +++ b/src/main/kotlin/com/ssu/commerce/delivery/utils/DateTimeUtils.kt @@ -0,0 +1,7 @@ +package com.ssu.commerce.delivery.utils + +class DateTimeUtils { + companion object { + const val PATTERN: String = "yyyy-MM-dd HH:mm:ss" + } +} From 7440cc7a95c496ac1f008b3458659233e61dd3f8 Mon Sep 17 00:00:00 2001 From: naemoo Date: Sun, 14 Aug 2022 18:43:08 +0900 Subject: [PATCH 09/10] =?UTF-8?q?feature:=20=EB=A6=AC=ED=8C=A9=ED=86=A0?= =?UTF-8?q?=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ssu/commerce/delivery/controller/DeliveryController.kt | 5 ++++- .../commerce/delivery/service/DeliveryInfoEntityFactory.kt | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/ssu/commerce/delivery/controller/DeliveryController.kt b/src/main/kotlin/com/ssu/commerce/delivery/controller/DeliveryController.kt index 89cd8e5..e597a04 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/controller/DeliveryController.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/controller/DeliveryController.kt @@ -49,7 +49,10 @@ class DeliveryController( content = [Content(schema = Schema(implementation = DeliveryCreateModel::class))] ) ) - fun create(@RequestBody @Valid deliveryCreate: DeliveryCreateModel) { + fun create( + @RequestBody @Valid + deliveryCreate: DeliveryCreateModel + ) { deliveryService.create(deliveryCreate) } } diff --git a/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt b/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt index 1832163..32b87c8 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt @@ -12,7 +12,7 @@ class DeliveryInfoEntityFactory( private val createPolicies: List ) { fun buildNewEntity(deliveryCreateModel: DeliveryCreateModel): DeliveryInfoEntity { - deliveryCreateModel.apply { createPolicies.forEach { it.validate(this) } } + createPolicies.forEach { it.validate(deliveryCreateModel) } return DeliveryInfoEntity( id = null, From 17193d19b929cc733b56277763cfb851a07b6740 Mon Sep 17 00:00:00 2001 From: naemoo Date: Sun, 14 Aug 2022 19:43:10 +0900 Subject: [PATCH 10/10] =?UTF-8?q?feature:=20=EB=A6=AC=ED=8C=A9=ED=86=A0?= =?UTF-8?q?=EB=A7=81=20-=20=EC=BB=A8=EB=B2=84=ED=8C=85=20=EC=8B=9C=20Deliv?= =?UTF-8?q?eryFeeInfo=20null=20=ED=95=B4=EA=B2=B0=20-=20DeliveryInfoEntity?= =?UTF-8?q?=20=EC=83=9D=EC=84=B1=20=EC=8B=9C=20=EB=B0=B0=EC=86=A1=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=20=EC=83=81=ED=83=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../delivery/controller/model/DeliveryCreateModel.kt | 2 -- .../com/ssu/commerce/delivery/converter/DeliveryConverter.kt | 5 ++++- .../commerce/delivery/service/DeliveryInfoEntityFactory.kt | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryCreateModel.kt b/src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryCreateModel.kt index e030ea4..9137846 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryCreateModel.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/controller/model/DeliveryCreateModel.kt @@ -1,7 +1,6 @@ package com.ssu.commerce.delivery.controller.model import com.ssu.commerce.delivery.domain.enums.DeliveryFeeType -import com.ssu.commerce.delivery.domain.enums.DeliveryStatus import com.ssu.commerce.delivery.domain.enums.DeliveryType import java.math.BigDecimal import java.time.LocalDateTime @@ -33,7 +32,6 @@ data class DeliveryCreateModel( @Pattern(regexp = "\\d{3}-\\d{4}-\\d{4}") val phoneNumber2: String? = null, var deliveryType: DeliveryType, - var deliveryStatus: DeliveryStatus, @FutureOrPresent val deliveryStartedAt: LocalDateTime, @FutureOrPresent diff --git a/src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt b/src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt index 1713d61..3157712 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/converter/DeliveryConverter.kt @@ -17,7 +17,10 @@ interface DeliveryConverter { Mapping(target = "message", source = "lenderAddress.message"), Mapping(target = "zipcode", source = "lenderAddress.zipcode"), Mapping(target = "phoneNumber1", source = "lenderAddress.phoneNumber1"), - Mapping(target = "phoneNumber2", source = "lenderAddress.phoneNumber2") + Mapping(target = "phoneNumber2", source = "lenderAddress.phoneNumber2"), + Mapping(target = "deliveryFeeType", source = "deliveryFee.deliveryFeeType"), + Mapping(target = "baseFee", source = "deliveryFee.baseFee"), + Mapping(target = "deliveryStatus", source = "status") ) fun convert(deliveryInfoEntity: DeliveryInfoEntity): Delivery diff --git a/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt b/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt index 32b87c8..4a0ff3f 100644 --- a/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt +++ b/src/main/kotlin/com/ssu/commerce/delivery/service/DeliveryInfoEntityFactory.kt @@ -4,6 +4,7 @@ import com.ssu.commerce.delivery.controller.model.DeliveryCreateModel import com.ssu.commerce.delivery.domain.AddressInfo import com.ssu.commerce.delivery.domain.DeliveryFeeInfo import com.ssu.commerce.delivery.domain.DeliveryInfoEntity +import com.ssu.commerce.delivery.domain.enums.DeliveryStatus import com.ssu.commerce.delivery.service.policy.DeliveryCreatePolicy import org.springframework.stereotype.Component @@ -30,7 +31,7 @@ class DeliveryInfoEntityFactory( deliveryCreateModel.phoneNumber2 ), deliveryType = deliveryCreateModel.deliveryType, - status = deliveryCreateModel.deliveryStatus, + status = DeliveryStatus.DS00, deliveryStartedAt = deliveryCreateModel.deliveryStartedAt, deliveryArrivedAt = deliveryCreateModel.deliveryArrivedAt )