From a4e0b0aa853fa4f34b029ad9040cd16d920b9044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Sun, 15 Sep 2024 14:22:51 +0900 Subject: [PATCH 01/18] =?UTF-8?q?Chore=20|=20CAKK-82=20|=20gradle=20kotlin?= =?UTF-8?q?=20dsl=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cakk-domain/mysql/build.gradle | 54 ------------------- cakk-domain/mysql/build.gradle.kts | 54 +++++++++++++++++++ .../cakk/domain/mysql/annotation/Reader.java | 34 ------------ .../redis/{build.gradle => build.gradle.kts} | 8 +-- 4 files changed, 58 insertions(+), 92 deletions(-) delete mode 100644 cakk-domain/mysql/build.gradle create mode 100644 cakk-domain/mysql/build.gradle.kts delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/annotation/Reader.java rename cakk-domain/redis/{build.gradle => build.gradle.kts} (52%) diff --git a/cakk-domain/mysql/build.gradle b/cakk-domain/mysql/build.gradle deleted file mode 100644 index 19e40048..00000000 --- a/cakk-domain/mysql/build.gradle +++ /dev/null @@ -1,54 +0,0 @@ -description = "mysql module" - -dependencies { - implementation project(':cakk-common') - - // jpa - api("org.springframework.boot:spring-boot-starter-data-jpa") - implementation 'io.hypersistence:hypersistence-utils-hibernate-63:3.7.4' - - // test - testImplementation("com.navercorp.fixturemonkey:fixture-monkey-starter:1.0.23") - testImplementation('org.assertj:assertj-core') - testImplementation('org.junit.jupiter:junit-jupiter') - testImplementation('org.mockito:mockito-core') - testImplementation('org.mockito:mockito-junit-jupiter') - testRuntimeOnly('org.junit.platform:junit-platform-launcher') - - // querydsl - implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' - annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta' - annotationProcessor "jakarta.annotation:jakarta.annotation-api" - annotationProcessor "jakarta.persistence:jakarta.persistence-api" - implementation 'org.hibernate.orm:hibernate-spatial:6.4.4.Final' - implementation 'com.querydsl:querydsl-spatial' - - // database - runtimeOnly 'com.mysql:mysql-connector-j:8.2.0' - runtimeOnly 'com.h2database:h2' - - //serialize - implementation('com.fasterxml.jackson.datatype:jackson-datatype-jsr310') - implementation('com.fasterxml.jackson.core:jackson-databind') - - // log - implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' -} - -bootJar { - enabled = false -} - -jar { - enabled = true -} - -test { - testLogging { - showStandardStreams = true - showCauses = true - showExceptions = true - showStackTraces = true - exceptionFormat = 'full' - } -} diff --git a/cakk-domain/mysql/build.gradle.kts b/cakk-domain/mysql/build.gradle.kts new file mode 100644 index 00000000..0e5cca14 --- /dev/null +++ b/cakk-domain/mysql/build.gradle.kts @@ -0,0 +1,54 @@ +description = "mysql module" + +dependencies { + implementation(project(":cakk-common")) + + // jpa + api("org.springframework.boot:spring-boot-starter-data-jpa") + implementation("io.hypersistence:hypersistence-utils-hibernate-63:3.7.4") + + // test + testImplementation("com.navercorp.fixturemonkey:fixture-monkey-starter:1.0.23") + testImplementation("org.assertj:assertj-core") + testImplementation("org.junit.jupiter:junit-jupiter") + testImplementation("org.mockito:mockito-core") + testImplementation("org.mockito:mockito-junit-jupiter") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") + + // querydsl + implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta") + annotationProcessor("com.querydsl:querydsl-apt:5.0.0:jakarta") + annotationProcessor("jakarta.annotation:jakarta.annotation-api") + annotationProcessor("jakarta.persistence:jakarta.persistence-api") + implementation("org.hibernate.orm:hibernate-spatial:6.4.4.Final") + implementation("com.querydsl:querydsl-spatial") + + // database + runtimeOnly("com.mysql:mysql-connector-j:8.2.0") + runtimeOnly("com.h2database:h2") + + //serialize + implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") + implementation("com.fasterxml.jackson.core:jackson-databind") + + // log + implementation("com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0") +} + +tasks.bootJar { + enabled = false +} + +tasks.jar { + enabled = true +} + +tasks.test { + testLogging { + showStandardStreams = true + showCauses = true + showExceptions = true + showStackTraces = true + exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL + } +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/annotation/Reader.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/annotation/Reader.java deleted file mode 100644 index aedbc177..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/annotation/Reader.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.cakk.domain.mysql.annotation; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.springframework.core.annotation.AliasFor; -import org.springframework.stereotype.Component; - -/** - * Indicates that an annotated class is a "Reader" (e.g. a data access object). - * - *

This annotation serves as a specialization of {@link Component @Component}, - * allowing for implementation classes to be autodetected through classpath scanning. - * - * @author komment - * @see Component - * @see Repository - */ - -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) -@Documented -@Component -public @interface Reader { - - /** - * Alias for {@link Component#value}. - */ - @AliasFor(annotation = Component.class) - String value() default ""; -} diff --git a/cakk-domain/redis/build.gradle b/cakk-domain/redis/build.gradle.kts similarity index 52% rename from cakk-domain/redis/build.gradle rename to cakk-domain/redis/build.gradle.kts index b379b26f..7dba6c1c 100644 --- a/cakk-domain/redis/build.gradle +++ b/cakk-domain/redis/build.gradle.kts @@ -1,16 +1,16 @@ description = "redis module" dependencies { - implementation project(':cakk-common') + implementation(project(":cakk-common")) - implementation('org.springframework.boot:spring-boot-starter-data-redis') + implementation("org.springframework.boot:spring-boot-starter-data-redis") implementation("org.redisson:redisson-spring-boot-starter:3.31.0") } -bootJar { +tasks.bootJar { enabled = false } -jar { +tasks.jar { enabled = true } From 819f6144cf4bdf3cc0649667bc7a6e885458ff16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Sun, 15 Sep 2024 19:47:44 +0900 Subject: [PATCH 02/18] =?UTF-8?q?Refactor=20|=20CAKK-82=20|=20=EB=8F=84?= =?UTF-8?q?=EB=A9=94=EC=9D=B8=20=EB=AA=A8=EB=93=88=20.java=20to=20.kt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cakk/api/mapper/CakeMapper.java | 18 +-- .../java/com/cakk/api/mapper/ShopMapper.java | 18 +-- .../cakk/api/service/cake/CakeService.java | 16 +-- .../cakk/api/service/shop/ShopService.java | 13 +- .../integration/cake/CakeIntegrationTest.java | 8 +- .../integration/shop/ShopIntegrationTest.java | 34 ++--- .../api/service/shop/ShopServiceTest.java | 5 +- .../cakk/common/enums/VerificationStatus.kt | 36 ++--- .../cake/BusinessInformationReadFacade.kt | 25 ++++ .../cakk/core/facade/cake/CakeReadFacade.kt | 64 +++++++++ .../core/facade/cake/CakeShopReadFacade.kt | 109 +++++++++++++++ .../facade/cake/CakeShopUserReadFacade.kt | 16 +++ .../com/cakk/core/facade/tag/TagReadFacade.kt | 20 +++ .../cakk/core/facade/user/UserReadFacade.kt | 32 +++++ .../shop/CakeShopByLocationParam.java | 2 +- .../shop/CakeShopBySearchParam.java | 4 +- .../{dto/param => bo}/shop/CakeShopParam.java | 2 +- .../domain/mysql/bo/{ => shop}/CakeShops.java | 13 +- .../domain/mysql/config/DataSourceConfig.java | 27 ---- .../domain/mysql/config/DataSourceConfig.kt | 24 ++++ .../domain/mysql/config/JacksonConfig.java | 20 --- .../cakk/domain/mysql/config/JacksonConfig.kt | 18 +++ .../config/{JpaConfig.java => JpaConfig.kt} | 15 +- .../cakk/domain/mysql/config/P6spyConfig.java | 16 --- .../cakk/domain/mysql/config/P6spyConfig.kt | 13 ++ .../mysql/config/P6spySqlFormatterConfig.java | 107 --------------- .../mysql/config/P6spySqlFormatterConfig.kt | 98 +++++++++++++ .../domain/mysql/config/QuerydslConfig.java | 22 --- .../domain/mysql/config/QuerydslConfig.kt | 18 +++ .../mysql/converter/DayOfWeekConverter.java | 33 ----- .../mysql/converter/DayOfWeekConverter.kt | 22 +++ .../mysql/converter/LinkKindConverter.java | 33 ----- .../mysql/converter/LinkKindConverter.kt | 22 +++ .../VerificationStatusConverter.java | 32 ----- .../converter/VerificationStatusConverter.kt | 22 +++ .../mysql/dto/param/cake/CakeCreateParam.java | 16 --- .../mysql/dto/param/cake/CakeCreateParam.kt | 13 ++ .../mysql/dto/param/cake/CakeDetailParam.java | 16 --- .../mysql/dto/param/cake/CakeDetailParam.kt | 13 ++ .../param/cake/CakeImageResponseParam.java | 8 -- .../dto/param/cake/CakeImageResponseParam.kt | 7 + .../mysql/dto/param/cake/CakeSearchParam.java | 13 -- .../mysql/dto/param/cake/CakeSearchParam.kt | 11 ++ .../mysql/dto/param/cake/CakeUpdateParam.java | 15 -- .../mysql/dto/param/cake/CakeUpdateParam.kt | 12 ++ .../like/HeartCakeImageResponseParam.java | 9 -- .../param/like/HeartCakeImageResponseParam.kt | 9 ++ .../like/HeartCakeShopResponseParam.java | 16 --- .../param/like/HeartCakeShopResponseParam.kt | 13 ++ .../mysql/dto/param/link/UpdateLinkParam.java | 16 --- .../mysql/dto/param/link/UpdateLinkParam.kt | 10 ++ .../operation/UpdateShopOperationParam.java | 16 --- .../operation/UpdateShopOperationParam.kt | 10 ++ .../param/shop/CakeShopByKeywordParam.java | 9 -- .../dto/param/shop/CakeShopDetailParam.java | 16 --- .../dto/param/shop/CakeShopDetailParam.kt | 13 ++ .../dto/param/shop/CakeShopInfoParam.java | 12 -- .../mysql/dto/param/shop/CakeShopInfoParam.kt | 9 ++ .../dto/param/shop/CakeShopLinkParam.java | 9 -- .../mysql/dto/param/shop/CakeShopLinkParam.kt | 8 ++ .../shop/CakeShopLocationResponseParam.java | 14 -- .../shop/CakeShopLocationResponseParam.kt | 11 ++ .../param/shop/CakeShopOperationParam.java | 12 -- .../dto/param/shop/CakeShopOperationParam.kt | 10 ++ .../dto/param/shop/CakeShopSearchParam.java | 11 -- .../dto/param/shop/CakeShopSearchParam.kt | 10 ++ .../shop/CakeShopSearchResponseParam.java | 14 -- .../param/shop/CakeShopSearchResponseParam.kt | 10 ++ .../dto/param/shop/CakeShopSimpleParam.java | 9 -- .../dto/param/shop/CakeShopSimpleParam.kt | 8 ++ .../dto/param/shop/CakeShopUpdateParam.java | 16 --- .../dto/param/shop/CakeShopUpdateParam.kt | 13 ++ .../dto/param/shop/ShopOperationParam.java | 13 -- .../dto/param/shop/ShopOperationParam.kt | 11 ++ .../param/shop/UpdateShopAddressParam.java | 16 --- .../dto/param/shop/UpdateShopAddressParam.kt | 11 ++ .../domain/mysql/dto/param/tag/TagParam.java | 7 - .../domain/mysql/dto/param/tag/TagParam.kt | 6 + .../domain/mysql/entity/shop/CakeShop.java | 12 +- .../jpa/BusinessInformationJpaRepository.java | 34 ----- .../jpa/BusinessInformationJpaRepository.kt | 30 ++++ .../jpa/CakeCategoryJpaRepository.java | 12 -- .../jpa/CakeCategoryJpaRepository.kt | 9 ++ .../jpa/CakeHeartJpaRepository.java | 19 --- .../repository/jpa/CakeHeartJpaRepository.kt | 13 ++ .../repository/jpa/CakeJpaRepository.java | 8 -- .../mysql/repository/jpa/CakeJpaRepository.kt | 6 + .../jpa/CakeShopHeartJpaRepository.java | 19 --- .../jpa/CakeShopHeartJpaRepository.kt | 13 ++ .../repository/jpa/CakeShopJpaRepository.java | 8 -- .../repository/jpa/CakeShopJpaRepository.kt | 6 + .../jpa/CakeShopLikeJpaRepository.java | 11 -- .../jpa/CakeShopLikeJpaRepository.kt | 9 ++ .../jpa/CakeShopLinkJpaRepository.java | 12 -- .../jpa/CakeShopLinkJpaRepository.kt | 8 ++ .../jpa/CakeShopOperationJpaRepository.java | 12 -- .../jpa/CakeShopOperationJpaRepository.kt | 8 ++ .../repository/jpa/TagJpaRepository.java | 17 --- .../mysql/repository/jpa/TagJpaRepository.kt | 12 ++ .../repository/jpa/UserJpaRepository.java | 12 -- .../mysql/repository/jpa/UserJpaRepository.kt | 9 ++ .../jpa/UserWithdrawalJpaRepository.java | 8 -- .../jpa/UserWithdrawalJpaRepository.kt | 6 + .../query/CakeShopHeartQueryRepository.java | 16 +-- .../query/CakeShopQueryRepository.java | 12 +- .../reader/BusinessInformationReader.java | 37 ----- .../repository/reader/CakeCategoryReader.java | 20 --- .../repository/reader/CakeHeartReader.java | 26 ---- .../mysql/repository/reader/CakeReader.java | 84 ------------ .../reader/CakeShopHeartReader.java | 31 ----- .../repository/reader/CakeShopLinkReader.java | 20 --- .../reader/CakeShopOperationReader.java | 20 --- .../repository/reader/CakeShopReader.java | 129 ------------------ .../mysql/repository/reader/TagReader.java | 29 ---- .../mysql/repository/reader/UserReader.java | 44 ------ .../java/com/cakk/domain/base/DomainTest.java | 113 --------------- .../java/com/cakk/domain/base/DomainTest.kt | 101 ++++++++++++++ .../java/com/cakk/domain/base/FacadeTest.java | 94 ------------- .../java/com/cakk/domain/base/FacadeTest.kt | 87 ++++++++++++ .../entity/user/BusinessInformationTest.java | 115 ---------------- .../entity/user/BusinessInformationTest.kt | 104 ++++++++++++++ .../entity/user/VerificationPolicyTest.java | 80 ----------- .../entity/user/VerificationPolicyTest.kt | 69 ++++++++++ 123 files changed, 1323 insertions(+), 1699 deletions(-) create mode 100644 cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt create mode 100644 cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt create mode 100644 cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt create mode 100644 cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt create mode 100644 cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt create mode 100644 cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt rename cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/{dto/param => bo}/shop/CakeShopByLocationParam.java (94%) rename cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/{dto/param => bo}/shop/CakeShopBySearchParam.java (79%) rename cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/{dto/param => bo}/shop/CakeShopParam.java (94%) rename cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/{ => shop}/CakeShops.java (83%) delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.kt rename cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/{JpaConfig.java => JpaConfig.kt} (61%) delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopByKeywordParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/BusinessInformationJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/BusinessInformationJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeCategoryJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeCategoryJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserWithdrawalJpaRepository.java create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserWithdrawalJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/BusinessInformationReader.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeCategoryReader.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeHeartReader.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeReader.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopHeartReader.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopLinkReader.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopOperationReader.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopReader.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/TagReader.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/UserReader.java delete mode 100644 cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.java create mode 100644 cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.kt delete mode 100644 cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.java create mode 100644 cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.kt delete mode 100644 cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.java create mode 100644 cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.kt delete mode 100644 cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.java create mode 100644 cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.kt diff --git a/cakk-api/src/main/java/com/cakk/api/mapper/CakeMapper.java b/cakk-api/src/main/java/com/cakk/api/mapper/CakeMapper.java index b5aaff38..0dd83751 100644 --- a/cakk-api/src/main/java/com/cakk/api/mapper/CakeMapper.java +++ b/cakk-api/src/main/java/com/cakk/api/mapper/CakeMapper.java @@ -27,7 +27,7 @@ public static CakeImageListResponse supplyCakeImageListResponse(final List cakeImage.cakeId() == cakeId) + .filter(cakeImage -> cakeImage.cakeId == cakeId) .findFirst() .ifPresent(sortedCakeImages::add); } @@ -57,13 +57,13 @@ public static HeartCakeImageListResponse supplyHeartCakeImageListResponseBy(fina return HeartCakeImageListResponse.builder() .cakeImages(cakeImages) - .lastCakeHeartId(cakeImages.isEmpty() ? null : cakeImages.get(size - 1).cakeHeartId()) + .lastCakeHeartId(cakeImages.isEmpty() ? null : cakeImages.get(size - 1).cakeHeartId) .size(cakeImages.size()) .build(); } public static CakeDetailResponse cakeDetailResponseFromParam(final CakeDetailParam param) { - Set tags = param.tags(); + Set tags = param.tags; for (TagParam tagParam : tags) { if (isEmptyTag(tagParam)) { @@ -73,11 +73,11 @@ public static CakeDetailResponse cakeDetailResponseFromParam(final CakeDetailPar } return CakeDetailResponse.builder() - .cakeShopId(param.cakeShopId()) - .cakeShopName(param.cakeShopName()) - .cakeImageUrl(param.cakeImageUrl()) - .shopBio(param.shopBio()) - .cakeCategories(param.cakeCategories()) + .cakeShopId(param.cakeShopId) + .cakeShopName(param.cakeShopName) + .cakeImageUrl(param.cakeImageUrl) + .shopBio(param.shopBio) + .cakeCategories(param.cakeCategories) .tags(tags) .build(); } diff --git a/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java b/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java index 00416350..28123cd8 100644 --- a/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java +++ b/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java @@ -74,10 +74,10 @@ public static List supplyCakeShopOperationsBy( public static CakeShopSimpleResponse cakeShopSimpleResponseFromParam(final CakeShopSimpleParam param) { return CakeShopSimpleResponse.builder() - .cakeShopId(param.cakeShopId()) - .thumbnailUrl(param.thumbnailUrl()) - .cakeShopName(param.cakeShopName()) - .cakeShopBio(param.cakeShopBio()) + .cakeShopId(param.cakeShopId) + .thumbnailUrl(param.thumbnailUrl) + .cakeShopName(param.cakeShopName) + .cakeShopBio(param.cakeShopBio) .build(); } @@ -157,11 +157,11 @@ public static CakeShopSearchResponse supplyCakeShopSearchResponseBy(final List cakeShops) { final int size = cakeShops.size(); - cakeShops.forEach(it -> keepOnlyNElements(it.cakeImageUrls(), 4)); + cakeShops.forEach(it -> keepOnlyNElements(it.cakeImageUrls, 4)); return HeartCakeShopListResponse.builder() .cakeShops(cakeShops) - .lastCakeShopHeartId(cakeShops.isEmpty() ? null : cakeShops.get(size - 1).cakeShopHeartId()) + .lastCakeShopHeartId(cakeShops.isEmpty() ? null : cakeShops.get(size - 1).cakeShopHeartId) .size(size) .build(); } @@ -208,8 +208,8 @@ public static CakeShopByMineResponse supplyCakeShopByMineResponseBy(final List tags = tagReader.getTagsByTagName(param.tagNames()); - final List cakeCategories = param.cakeCategories(); + final CakeShop cakeShop = cakeShopReader.searchByIdAndOwner(param.cakeShopId, param.owner); + final Cake cake = param.cake; + final List tags = tagReader.getTagsByTagName(param.tagNames); + final List cakeCategories = param.cakeCategories; cakeManageFacade.create(cakeShop, cake, tags, cakeCategories); } @Transactional public void updateCake(CakeUpdateParam param) { - final Cake cake = cakeReader.findWithCakeTagsAndCakeCategories(param.cakeId(), param.owner()); - final List tags = tagReader.getTagsByTagName(param.tagNames()); - final String cakeImageUrl = param.cakeImageUrl(); - final List cakeCategories = param.cakeCategories(); + final Cake cake = cakeReader.findWithCakeTagsAndCakeCategories(param.cakeId, param.owner); + final List tags = tagReader.getTagsByTagName(param.tagNames); + final String cakeImageUrl = param.cakeImageUrl; + final List cakeCategories = param.cakeCategories; cakeManageFacade.update(cake, cakeImageUrl, tags, cakeCategories); } diff --git a/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java b/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java index ed8b2703..ead1a78a 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java @@ -93,15 +93,15 @@ public void promoteUserToBusinessOwner(final PromotionRequest request) { @Transactional public void updateBasicInformation(final CakeShopUpdateParam param) { - final CakeShop cakeShop = cakeShopReader.searchByIdAndOwner(param.cakeShopId(), param.user()); + final CakeShop cakeShop = cakeShopReader.searchByIdAndOwner(param.cakeShopId, param.user); cakeShop.updateBasicInformation(param); } @Transactional public void updateShopLinks(final UpdateLinkParam param) { - final CakeShop cakeShop = cakeShopReader.searchWithShopLinks(param.user(), param.cakeShopId()); - cakeShop.updateShopLinks(param.cakeShopLinks()); + final CakeShop cakeShop = cakeShopReader.searchWithShopLinks(param.user, param.cakeShopId); + cakeShop.updateShopLinks(param.cakeShopLinks); } @Transactional @@ -112,8 +112,8 @@ public void updateShopAddress(final UpdateShopAddressParam param) { @Transactional public void updateShopOperationDays(final UpdateShopOperationParam param) { - final CakeShop cakeShop = cakeShopReader.searchWithOperations(param.user(), param.cakeShopId()); - cakeShop.updateShopOperationDays(param.cakeShopOperations()); + final CakeShop cakeShop = cakeShopReader.searchWithOperations(param.user, param.cakeShopId); + cakeShop.updateShopOperationDays(param.cakeShopOperations); } @Transactional(readOnly = true) @@ -124,7 +124,8 @@ public CakeShopByMineResponse getMyBusinessId(final User user) { @Transactional public void requestCertificationBusinessOwner(final CertificationParam param) { - final BusinessInformation businessInformation = cakeShopReader.findBusinessInformationByCakeShopId(param.cakeShopId()); + final BusinessInformation businessInformation = cakeShopReader.findBusinessInformationByCakeShopId( + param.cakeShopId); final CertificationEvent certificationEvent = verificationPolicy .requestCertificationBusinessOwner(businessInformation, param); diff --git a/cakk-api/src/test/java/com/cakk/api/integration/cake/CakeIntegrationTest.java b/cakk-api/src/test/java/com/cakk/api/integration/cake/CakeIntegrationTest.java index e5387ac5..586bd7f3 100644 --- a/cakk-api/src/test/java/com/cakk/api/integration/cake/CakeIntegrationTest.java +++ b/cakk-api/src/test/java/com/cakk/api/integration/cake/CakeIntegrationTest.java @@ -101,7 +101,7 @@ void searchByCategory1() { assertEquals(lastCakeId, data.lastCakeId()); assertEquals(5, data.size()); data.cakeImages().forEach(cakeImage -> { - CakeCategory cakeCategory = cakeCategoryReader.findByCakeId(cakeImage.cakeId()); + CakeCategory cakeCategory = cakeCategoryReader.findByCakeId(cakeImage.cakeId); assertEquals(CakeDesignCategory.FLOWER, cakeCategory.getCakeDesignCategory()); }); } @@ -132,7 +132,7 @@ void searchByCategory2() { assertEquals(lastCakeId, data.lastCakeId()); assertEquals(5, data.size()); data.cakeImages().forEach(cakeImage -> { - CakeCategory cakeCategory = cakeCategoryReader.findByCakeId(cakeImage.cakeId()); + CakeCategory cakeCategory = cakeCategoryReader.findByCakeId(cakeImage.cakeId); assertEquals(CakeDesignCategory.FLOWER, cakeCategory.getCakeDesignCategory()); }); } @@ -189,7 +189,7 @@ void searchByShopId1() { assertEquals(lastCakeId, data.lastCakeId()); assertEquals(3, data.size()); data.cakeImages().forEach(cakeImage -> { - assertEquals(Long.valueOf(1L), cakeImage.cakeShopId()); + assertEquals(Long.valueOf(1L), cakeImage.cakeShopId); }); } @@ -219,7 +219,7 @@ void searchByShopId2() { assertEquals(lastCakeId, data.lastCakeId()); assertEquals(3, data.size()); data.cakeImages().forEach(cakeImage -> - assertEquals(Long.valueOf(1L), cakeImage.cakeShopId()) + assertEquals(Long.valueOf(1L), cakeImage.cakeShopId) ); } diff --git a/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java b/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java index a3a8d395..f8bf061b 100644 --- a/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java +++ b/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java @@ -343,8 +343,8 @@ void findAllShopsByLocationBased1() { assertThat(data.cakeShops().size()).isGreaterThanOrEqualTo(0); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.cakeImageUrls().size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.cakeShopName()).isNotNull(); + assertThat(cakeShop.cakeImageUrls.size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.cakeShopName).isNotNull(); }); } @@ -500,9 +500,9 @@ void findAllShopsByLocationBased2() { assertEquals(8, data.cakeShops().size()); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.cakeShopId()).isIn(4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L); - assertThat(cakeShop.cakeImageUrls().size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.cakeShopName()).isNotNull(); + assertThat(cakeShop.cakeShopId).isIn(4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L); + assertThat(cakeShop.cakeImageUrls.size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.cakeShopName).isNotNull(); }); } @@ -530,10 +530,10 @@ void searchCakeShopsByKeywordsWithConditions1() { assertEquals(7, data.size()); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.cakeImageUrls().size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.cakeShopId()).isNotNull(); - assertThat(cakeShop.cakeShopName()).isNotNull(); - assertThat(cakeShop.operationDays()).isNotNull(); + assertThat(cakeShop.cakeImageUrls.size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.cakeShopId).isNotNull(); + assertThat(cakeShop.cakeShopName).isNotNull(); + assertThat(cakeShop.operationDays).isNotNull(); }); } @@ -561,10 +561,10 @@ void searchCakeShopsByKeywordWithConditions2() { assertThat(data.size()).isGreaterThanOrEqualTo(0); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.cakeImageUrls().size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.cakeShopId()).isNotNull(); - assertThat(cakeShop.cakeShopName()).isNotNull(); - assertThat(cakeShop.operationDays()).isNotNull(); + assertThat(cakeShop.cakeImageUrls.size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.cakeShopId).isNotNull(); + assertThat(cakeShop.cakeShopName).isNotNull(); + assertThat(cakeShop.operationDays).isNotNull(); }); } @@ -591,10 +591,10 @@ void searchCakeShopsByKeywordWithConditions3() { assertEquals(4, data.size()); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.cakeImageUrls().size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.cakeShopId()).isNotNull(); - assertThat(cakeShop.cakeShopName()).isNotNull(); - assertThat(cakeShop.operationDays()).isNotNull(); + assertThat(cakeShop.cakeImageUrls.size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.cakeShopId).isNotNull(); + assertThat(cakeShop.cakeShopName).isNotNull(); + assertThat(cakeShop.operationDays).isNotNull(); }); } diff --git a/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java b/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java index bbeb02ce..db228c9f 100644 --- a/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java +++ b/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java @@ -236,7 +236,8 @@ void promoteUser() { void requestCertificationEventWithInfo() { //given CertificationParam param = getCertificationParamFixture(false); - doReturn(getBusinessInformationFixture()).when(cakeShopReader).findBusinessInformationByCakeShopId(param.cakeShopId()); + doReturn(getBusinessInformationFixture()).when(cakeShopReader).findBusinessInformationByCakeShopId( + param.cakeShopId); when(verificationPolicy.requestCertificationBusinessOwner(any(BusinessInformation.class), any(CertificationParam.class))) .thenReturn(getCertificationEventFixture()); @@ -244,7 +245,7 @@ void requestCertificationEventWithInfo() { shopService.requestCertificationBusinessOwner(param); //verify - verify(cakeShopReader, times(1)).findBusinessInformationByCakeShopId(param.cakeShopId()); + verify(cakeShopReader, times(1)).findBusinessInformationByCakeShopId(param.cakeShopId); verify(publisher, times(1)).publishEvent(any(CertificationEvent.class)); } diff --git a/cakk-common/src/main/java/com/cakk/common/enums/VerificationStatus.kt b/cakk-common/src/main/java/com/cakk/common/enums/VerificationStatus.kt index 68a8947c..1bf31317 100644 --- a/cakk-common/src/main/java/com/cakk/common/enums/VerificationStatus.kt +++ b/cakk-common/src/main/java/com/cakk/common/enums/VerificationStatus.kt @@ -1,29 +1,29 @@ package com.cakk.common.enums enum class VerificationStatus(@JvmField val code: Int) { - UNREQUESTED(0), - APPROVED(1), - REJECTED(2), - PENDING(3); + UNREQUESTED(0), + APPROVED(1), + REJECTED(2), + PENDING(3); - val isCandidate: Boolean - get() = code == 3 + val isCandidate: Boolean + get() = code == 3 - val isNotCandidate: Boolean - get() = code != 3 + val isNotCandidate: Boolean + get() = code != 3 - val isApproved: Boolean - get() = code == 1 + val isApproved: Boolean + get() = code == 1 - val isRejected: Boolean - get() = code == 2 + val isRejected: Boolean + get() = code == 2 - fun makeApproved(): VerificationStatus { - return APPROVED - } + fun makeApproved(): VerificationStatus { + return APPROVED + } - fun makePending(): VerificationStatus { - return PENDING - } + fun makePending(): VerificationStatus { + return PENDING + } } diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt new file mode 100644 index 00000000..a1365b21 --- /dev/null +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt @@ -0,0 +1,25 @@ +package com.cakk.core.facade.cake + +import com.cakk.domain.mysql.annotation.Reader +import com.cakk.domain.mysql.entity.user.User +import java.util.function.Supplier + +class BusinessInformationReader { + private val businessInformationJpaRepository: BusinessInformationJpaRepository? = null + fun isExistBusinessInformation(owner: User?, cakeShopId: Long?): Boolean { + return businessInformationJpaRepository.existsBusinessInformationByUserAndCakeShop_Id(owner, cakeShopId) + } + + fun findAllWithCakeShopByUser(owner: User?): List { + return businessInformationJpaRepository.findAllWithCakeShopByUser(owner) + } + + fun findAllCakeShopBusinessOwnerCandidates(): List { + return businessInformationJpaRepository.findAllCakeShopBusinessOwnerCandidates(VerificationStatus.PENDING) + } + + fun findByUserId(userId: Long?): BusinessInformation { + return businessInformationJpaRepository.findBusinessInformationByUserId(userId) + .orElseThrow(Supplier { CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) }) + } +} diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt new file mode 100644 index 00000000..cb029dff --- /dev/null +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt @@ -0,0 +1,64 @@ +package com.cakk.core.facade.cake + +import com.cakk.domain.mysql.annotation.Reader +import com.cakk.domain.mysql.entity.user.User +import java.util.* +import java.util.function.Supplier + +class CakeReader { + private val cakeJpaRepository: CakeJpaRepository? = null + private val cakeQueryRepository: CakeQueryRepository? = null + fun findById(cakeId: Long?): Cake { + return cakeJpaRepository.findById(cakeId).orElseThrow(Supplier { CakkException(ReturnCode.NOT_EXIST_CAKE) }) + } + + fun findByIdWithHeart(cakeId: Long?): Cake { + val cake: Cake = cakeQueryRepository.searchByIdWithHeart(cakeId) + if (Objects.isNull(cake)) { + throw CakkException(ReturnCode.NOT_EXIST_CAKE) + } + return cake + } + + fun searchCakeImagesByCursorAndCategory( + cakeId: Long?, + category: CakeDesignCategory?, + pageSize: Int + ): List { + return cakeQueryRepository.searchCakeImagesByCursorAndCategory(cakeId, category, pageSize) + } + + fun searchCakeImagesByCursorAndCakeShopId( + cakeId: Long?, + cakeShopId: Long?, + pageSize: Int + ): List { + return cakeQueryRepository.searchCakeImagesByCursorAndCakeShopId(cakeId, cakeShopId, pageSize) + } + + fun searchCakeImagesByCursorAndSearchKeyword(param: CakeSearchParam): List { + return cakeQueryRepository.searchCakeImagesByCursorAndSearchKeyword( + param.cakeId, + param.keyword, + param.location, + param.pageSize + ) + } + + fun searchCakeImagesByCakeIds(cakeIds: List?): List { + return cakeQueryRepository.searchCakeImagesByCakeIds(cakeIds) + } + + fun findWithCakeTagsAndCakeCategories(cakeId: Long?, owner: User?): Cake { + return cakeQueryRepository.searchWithCakeTagsAndCakeCategories(cakeId, owner) + .orElseThrow(Supplier { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) }) + } + + fun searchCakeDetailById(cakeId: Long?): CakeDetailParam { + val param: CakeDetailParam = cakeQueryRepository.searchCakeDetailById(cakeId) + if (Objects.isNull(param)) { + throw CakkException(ReturnCode.NOT_EXIST_CAKE) + } + return param + } +} diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt new file mode 100644 index 00000000..0870002f --- /dev/null +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt @@ -0,0 +1,109 @@ +package com.cakk.core.facade.cake + +import com.cakk.common.enums.ReturnCode +import com.cakk.common.exception.CakkException +import com.cakk.domain.mysql.dto.param.shop.CakeShopDetailParam +import com.cakk.domain.mysql.dto.param.shop.CakeShopInfoParam +import com.cakk.domain.mysql.dto.param.shop.CakeShopSimpleParam +import com.cakk.domain.mysql.entity.shop.CakeShop +import com.cakk.domain.mysql.entity.user.BusinessInformation +import com.cakk.domain.mysql.entity.user.User +import com.cakk.domain.mysql.repository.jpa.BusinessInformationJpaRepository +import com.cakk.domain.mysql.repository.jpa.CakeShopJpaRepository +import com.cakk.domain.mysql.repository.query.CakeShopQueryRepository +import org.locationtech.jts.geom.Point +import java.util.* +import java.util.function.Supplier + + +class CakeShopReader( + private val cakeShopJpaRepository: CakeShopJpaRepository, + private val cakeShopQueryRepository: CakeShopQueryRepository, + private val businessInformationJpaRepository: BusinessInformationJpaRepository +) { + fun findById(cakeShopId: Long): CakeShop { + return cakeShopJpaRepository.findById(cakeShopId).orElseThrow { CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) } + } + + fun findByIdWithHeart(cakeShopId: Long): CakeShop { + val cakeShop: CakeShop = cakeShopQueryRepository.searchByIdWithHeart(cakeShopId) + if (Objects.isNull(cakeShop)) { + throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) + } + return cakeShop + } + + fun findByIdWithLike(cakeShopId: Long?): CakeShop { + val cakeShop: CakeShop = cakeShopQueryRepository.searchByIdWithLike(cakeShopId) + if (Objects.isNull(cakeShop)) { + throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) + } + return cakeShop + } + + fun searchSimpleById(cakeShopId: Long?): CakeShopSimpleParam { + val response: CakeShopSimpleParam = cakeShopQueryRepository.searchSimpleById(cakeShopId) + if (Objects.isNull(response)) { + throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) + } + return response + } + + fun searchDetailById(cakeShopId: Long?): CakeShopDetailParam { + val response: CakeShopDetailParam = cakeShopQueryRepository.searchDetailById(cakeShopId) + if (Objects.isNull(response)) { + throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) + } + return response + } + + fun searchInfoById(cakeShopId: Long?): CakeShopInfoParam { + val response: CakeShopInfoParam = cakeShopQueryRepository.searchInfoById(cakeShopId) + if (Objects.isNull(response)) { + throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) + } + return response + } + + fun findBusinessInformationWithShop(cakeShopId: Long?): BusinessInformation { + return businessInformationJpaRepository.findBusinessInformationWithCakeShop(cakeShopId) + .{ throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) } + } + + fun findBusinessInformationByCakeShopId(cakeShopId: Long?): BusinessInformation { + return businessInformationJpaRepository.findBusinessInformationWithCakeShop(cakeShopId) + .orElseThrow(Supplier { CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) }) + } + + fun searchShopByLocationBased(point: Point?, distance: Double?): List { + return cakeShopQueryRepository.findShopsByLocationBased(point, distance) + } + + fun searchShopBySearch(param: CakeShopSearchParam): List { + return cakeShopQueryRepository.searchByKeywordWithLocation( + param.cakeShopId, + param.keyword, + param.location, + param.pageSize + ) + } + + fun searchWithShopLinks(owner: User?, cakeShopId: Long?): CakeShop { + return cakeShopQueryRepository.searchWithShopLinks(owner, cakeShopId) + .orElseThrow(Supplier { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) }) + } + + fun searchByIdAndOwner(cakeShopId: Long?, owner: User?): CakeShop { + return cakeShopQueryRepository.searchWithBusinessInformationAndOwnerById(owner, cakeShopId) + .orElseThrow(Supplier { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) }) + } + + fun searchWithOperations(owner: User?, cakeShopId: Long?): CakeShop { + return cakeShopQueryRepository.searchWithOperations(owner, cakeShopId) + .orElseThrow(Supplier { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) }) + } + + fun searchShopsByShopIds(shopIds: List?): List { + return cakeShopQueryRepository.searchByShopIds(shopIds) + } +} diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt new file mode 100644 index 00000000..c1b8e206 --- /dev/null +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt @@ -0,0 +1,16 @@ +package com.cakk.core.facade.cake + + + +class CakeShopHeartReader { + private val cakeShopHeartQueryRepository: CakeShopHeartQueryRepository? = null + private val cakeShopHeartJpaRepository: CakeShopHeartJpaRepository? = null + fun searchAllByCursorAndHeart( + cakeShopHeartId: Long?, + userId: Long?, + pageSize: Int + ): List { + val cakeShopHeartIds: List = cakeShopHeartQueryRepository.searchIdsByCursorAndHeart(cakeShopHeartId, userId, pageSize) + return cakeShopHeartQueryRepository.searchAllByCursorAndHeart(cakeShopHeartIds) + } +} diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt new file mode 100644 index 00000000..b257e7cf --- /dev/null +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt @@ -0,0 +1,20 @@ +package com.cakk.core.facade.tag + +import com.cakk.domain.mysql.annotation.Reader +import com.cakk.domain.mysql.entity.cake.Tag + +class TagReader { + private val tagJpaRepository: TagJpaRepository? = null + fun getTagsByTagName(tagNames: List): List { + val tags: List = tagJpaRepository.findTagsByTagNameIsIn(tagNames) + return tagNames.stream() + .map { tagName: String -> + tags + .stream() + .filter { tag: Tag -> tag.tagName == tagName } + .findAny() + .orElse(tagJpaRepository.save(TagMapper.supplyTagBy(tagName))) + } + .toList() + } +} diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt new file mode 100644 index 00000000..d257c7d0 --- /dev/null +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt @@ -0,0 +1,32 @@ +package com.cakk.core.facade.user + +import com.cakk.domain.mysql.annotation.Reader +import com.cakk.domain.mysql.entity.user.User +import java.util.* +import java.util.function.Supplier + + + +class UserReader { + private val userJpaRepository: UserJpaRepository? = null + private val userQueryRepository: UserQueryRepository? = null + fun findByUserId(userId: Long?): User { + return userJpaRepository.findById(userId).orElseThrow(Supplier { CakkException(ReturnCode.NOT_EXIST_USER) }) + } + + fun findByProviderId(providerId: String?): User { + return userJpaRepository.findByProviderId(providerId).orElseThrow(Supplier { CakkException(ReturnCode.NOT_EXIST_USER) }) + } + + fun findByIdWithAll(userId: Long?): User { + val user: User = userQueryRepository.searchByIdWithAll(userId) + if (Objects.isNull(user)) { + throw CakkException(ReturnCode.NOT_EXIST_USER) + } + return user + } + + fun findAll(): List { + return userJpaRepository.findAll() + } +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopByLocationParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShopByLocationParam.java similarity index 94% rename from cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopByLocationParam.java rename to cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShopByLocationParam.java index bc07d4b4..40a7af3c 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopByLocationParam.java +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShopByLocationParam.java @@ -1,4 +1,4 @@ -package com.cakk.domain.mysql.dto.param.shop; +package com.cakk.domain.mysql.bo.shop; import java.util.Set; diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopBySearchParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShopBySearchParam.java similarity index 79% rename from cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopBySearchParam.java rename to cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShopBySearchParam.java index 28d041c3..005a0983 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopBySearchParam.java +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShopBySearchParam.java @@ -1,4 +1,4 @@ -package com.cakk.domain.mysql.dto.param.shop; +package com.cakk.domain.mysql.bo.shop; import java.util.Set; @@ -8,6 +8,8 @@ import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import com.cakk.domain.mysql.dto.param.shop.CakeShopOperationParam; + @Getter @AllArgsConstructor(access = AccessLevel.PRIVATE) @NoArgsConstructor(access = AccessLevel.PRIVATE) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShopParam.java similarity index 94% rename from cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopParam.java rename to cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShopParam.java index 3ebeaf20..67283404 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopParam.java +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShopParam.java @@ -1,4 +1,4 @@ -package com.cakk.domain.mysql.dto.param.shop; +package com.cakk.domain.mysql.bo.shop; import java.util.HashSet; import java.util.Set; diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/CakeShops.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShops.java similarity index 83% rename from cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/CakeShops.java rename to cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShops.java index 5774ac2b..0d2b5048 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/CakeShops.java +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/bo/shop/CakeShops.java @@ -1,9 +1,6 @@ -package com.cakk.domain.mysql.bo; +package com.cakk.domain.mysql.bo.shop; import java.util.List; -import java.util.stream.Collectors; - -import com.cakk.domain.mysql.dto.param.shop.CakeShopParam; public class CakeShops { @@ -26,11 +23,11 @@ public List getCakeShops() { } private void validationImageCountMaxCount(List cakeShops, final int maxCount) { - cakeShops.forEach(cakeShop -> { + for (T cakeShop : cakeShops) { if (cakeShop.getCakeImageUrls().size() > maxCount) { cakeShop.setImageCountMaxCount(maxCount); } - }); + } } private List validationPageSize(List cakeShops, int pageSize) { @@ -38,11 +35,11 @@ private List validationPageSize(List cakeShops, int pageSize) { } private void validationEmptyCakeImage(List cakeShops) { - cakeShops.forEach(cakeShop -> { + for (T cakeShop : cakeShops) { if (cakeShop.getCakeImageUrls().contains("")) { cakeShop.setImagesEmptySet(); } - }); + } } } diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.java deleted file mode 100644 index f5043814..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.cakk.domain.mysql.config; - -import javax.sql.DataSource; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; - -import com.zaxxer.hikari.HikariConfig; -import com.zaxxer.hikari.HikariDataSource; - -@Configuration -public class DataSourceConfig { - - @Bean - @ConfigurationProperties(prefix = "storage.datasource.core") - public HikariConfig hikariConfig() { - return new HikariConfig(); - } - - @Bean - @Primary - public DataSource dataSource() { - return new HikariDataSource(hikariConfig()); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.kt new file mode 100644 index 00000000..3bb9b48f --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.kt @@ -0,0 +1,24 @@ +package com.cakk.domain.mysql.config + +import com.zaxxer.hikari.HikariConfig +import com.zaxxer.hikari.HikariDataSource +import org.springframework.boot.context.properties.ConfigurationProperties +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.context.annotation.Primary +import javax.sql.DataSource + +@Configuration +class DataSourceConfig { + @Bean + @ConfigurationProperties(prefix = "storage.datasource.core") + fun hikariConfig(): HikariConfig { + return HikariConfig() + } + + @Bean + @Primary + fun dataSource(): DataSource { + return HikariDataSource(hikariConfig()) + } +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.java deleted file mode 100644 index d585808d..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.cakk.domain.mysql.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; - -@Configuration -public class JacksonConfig { - - @Bean - public ObjectMapper objectMapper() { - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.registerModule(new JavaTimeModule()); - objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); - return objectMapper; - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.kt new file mode 100644 index 00000000..7028ac33 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.kt @@ -0,0 +1,18 @@ +package com.cakk.domain.mysql.config + +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.databind.SerializationFeature +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration + +@Configuration +class JacksonConfig { + @Bean + fun objectMapper(): ObjectMapper { + val objectMapper = ObjectMapper() + objectMapper.registerModule(JavaTimeModule()) + objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) + return objectMapper + } +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JpaConfig.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JpaConfig.kt similarity index 61% rename from cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JpaConfig.java rename to cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JpaConfig.kt index 5aa3104b..42c15fdd 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JpaConfig.java +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JpaConfig.kt @@ -1,15 +1,14 @@ -package com.cakk.domain.mysql.config; +package com.cakk.domain.mysql.config -import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.jpa.repository.config.EnableJpaAuditing; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.transaction.annotation.EnableTransactionManagement; +import org.springframework.boot.autoconfigure.domain.EntityScan +import org.springframework.context.annotation.Configuration +import org.springframework.data.jpa.repository.config.EnableJpaAuditing +import org.springframework.data.jpa.repository.config.EnableJpaRepositories +import org.springframework.transaction.annotation.EnableTransactionManagement @Configuration @EnableJpaAuditing @EnableTransactionManagement @EntityScan("com.cakk.domain.mysql.entity.**") @EnableJpaRepositories("com.cakk.domain.mysql.repository.**") -public class JpaConfig { -} +class JpaConfig diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.java deleted file mode 100644 index c2df4531..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.cakk.domain.mysql.config; - -import jakarta.annotation.PostConstruct; - -import org.springframework.context.annotation.Configuration; - -import com.p6spy.engine.spy.P6SpyOptions; - -@Configuration -public class P6spyConfig { - - @PostConstruct - public void setLogMessageFormat() { - P6SpyOptions.getActiveInstance().setLogMessageFormat(P6spySqlFormatterConfig.class.getName()); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.kt new file mode 100644 index 00000000..ce59199c --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.kt @@ -0,0 +1,13 @@ +package com.cakk.domain.mysql.config + +import com.p6spy.engine.spy.P6SpyOptions +import jakarta.annotation.PostConstruct +import org.springframework.context.annotation.Configuration + +@Configuration +class P6spyConfig { + @PostConstruct + fun setLogMessageFormat() { + P6SpyOptions.getActiveInstance().logMessageFormat = P6spySqlFormatterConfig::class.java.name + } +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.java deleted file mode 100644 index cf27953b..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.cakk.domain.mysql.config; - -import static java.util.Arrays.*; - -import java.text.MessageFormat; -import java.util.Locale; -import java.util.Stack; -import java.util.function.Predicate; - -import org.hibernate.engine.jdbc.internal.FormatStyle; - -import com.p6spy.engine.logging.Category; -import com.p6spy.engine.spy.appender.MessageFormattingStrategy; - -public class P6spySqlFormatterConfig implements MessageFormattingStrategy { - - private static final String NEW_LINE = System.lineSeparator(); - private static final String P6SPY_FORMATTER = "P6spySqlFormatterConfig"; - private static final String PACKAGE = "com.cakk"; - private static final String CREATE = "create"; - private static final String ALTER = "alter"; - private static final String COMMENT = "comment"; - - @Override - public String formatMessage(final int connectionId, - final String now, - final long elapsed, - final String category, - final String prepared, - final String sql, - final String url) { - return sqlFormatToUpper(sql, category, getMessage(connectionId, elapsed, getStackBuilder())); - } - - @SuppressWarnings("StringBufferReplaceableByString") - private String sqlFormatToUpper(final String sql, final String category, final String message) { - if (sql.trim().isEmpty()) { - return ""; - } - - return new StringBuilder() - .append(sqlFormatToUpper(sql, category)) - .append(message) - .toString(); - } - - private String sqlFormatToUpper(final String sql, final String category) { - if (isStatementDdl(sql, category)) { - return FormatStyle.DDL - .getFormatter() - .format(sql) - .toUpperCase(Locale.ROOT) - .replace("+0900", ""); - } - return FormatStyle.BASIC - .getFormatter() - .format(sql) - .replace("+0900", ""); - } - - private boolean isStatementDdl(final String sql, final String category) { - return isStatement(category) && isDdl(sql.trim().toLowerCase(Locale.ROOT)); - } - - private boolean isStatement(final String category) { - return Category.STATEMENT.getName().equals(category); - } - - private boolean isDdl(final String lowerSql) { - return lowerSql.startsWith(CREATE) || lowerSql.startsWith(ALTER) || lowerSql.startsWith(COMMENT); - } - - private String getMessage(final int connectionId, final long elapsed, final StringBuilder callStackBuilder) { - return new StringBuilder() - .append(NEW_LINE) - .append(NEW_LINE) - .append("\t").append(String.format("Connection ID: %s", connectionId)) - .append(NEW_LINE) - .append("\t").append(String.format("Execution Time: %s ms", elapsed)) - .append(NEW_LINE) - .append(NEW_LINE) - .append("\t").append(String.format("Call Stack (number 1 is entry point): %s", callStackBuilder)) - .append(NEW_LINE) - .append(NEW_LINE) - .append("------------------------------------------------------------------------------------------------") - .toString(); - } - - private StringBuilder getStackBuilder() { - final Stack callStack = new Stack<>(); - stream(new Throwable().getStackTrace()) - .map(StackTraceElement::toString) - .filter(isExcludeWords()) - .forEach(callStack::push); - - int order = 1; - final StringBuilder callStackBuilder = new StringBuilder(); - while (!callStack.empty()) { - callStackBuilder.append(MessageFormat.format("{0}\t\t{1}. {2}", NEW_LINE, order++, callStack.pop())); - } - return callStackBuilder; - } - - private Predicate isExcludeWords() { - return charSequence -> charSequence.startsWith(PACKAGE) && !charSequence.contains(P6SPY_FORMATTER); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.kt new file mode 100644 index 00000000..8019cd17 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.kt @@ -0,0 +1,98 @@ +package com.cakk.domain.mysql.config + +import com.p6spy.engine.logging.Category +import com.p6spy.engine.spy.appender.MessageFormattingStrategy +import org.hibernate.engine.jdbc.internal.FormatStyle +import java.text.MessageFormat +import java.util.* +import java.util.function.Predicate + +class P6spySqlFormatterConfig : MessageFormattingStrategy { + override fun formatMessage( + connectionId: Int, + now: String, + elapsed: Long, + category: String, + prepared: String, + sql: String, + url: String + ): String { + return sqlFormatToUpper(sql, category, getMessage(connectionId, elapsed, stackBuilder)) + } + + private fun sqlFormatToUpper(sql: String, category: String, message: String): String { + return if (sql.trim { it <= ' ' }.isEmpty()) { + "" + } else StringBuilder() + .append(sqlFormatToUpper(sql, category)) + .append(message) + .toString() + } + + private fun sqlFormatToUpper(sql: String, category: String): String { + return if (isStatementDdl(sql, category)) { + FormatStyle.DDL + .formatter + .format(sql) + .uppercase() + .replace("+0900", "") + } else FormatStyle.BASIC + .formatter + .format(sql) + .replace("+0900", "") + } + + private fun isStatementDdl(sql: String, category: String): Boolean { + return isStatement(category) && isDdl(sql.trim { it <= ' ' }.lowercase()) + } + + private fun isStatement(category: String): Boolean { + return Category.STATEMENT.name == category + } + + private fun isDdl(lowerSql: String): Boolean { + return lowerSql.startsWith(CREATE) || lowerSql.startsWith(ALTER) || lowerSql.startsWith(COMMENT) + } + + private fun getMessage(connectionId: Int, elapsed: Long, callStackBuilder: StringBuilder): String { + return StringBuilder() + .append(NEW_LINE) + .append(NEW_LINE) + .append("\t").append(String.format("Connection ID: %s", connectionId)) + .append(NEW_LINE) + .append("\t").append(String.format("Execution Time: %s ms", elapsed)) + .append(NEW_LINE) + .append(NEW_LINE) + .append("\t").append(String.format("Call Stack (number 1 is entry point): %s", callStackBuilder)) + .append(NEW_LINE) + .append(NEW_LINE) + .append("------------------------------------------------------------------------------------------------") + .toString() + } + + private val stackBuilder: StringBuilder + private get() { + val callStack = Stack() + Arrays.stream(Throwable().stackTrace) + .map { obj: StackTraceElement -> obj.toString() } + .filter(isExcludeWords) + .forEach { item: String -> callStack.push(item) } + var order = 1 + val callStackBuilder = StringBuilder() + while (!callStack.empty()) { + callStackBuilder.append(MessageFormat.format("{0}\t\t{1}. {2}", NEW_LINE, order++, callStack.pop())) + } + return callStackBuilder + } + private val isExcludeWords: Predicate + private get() = Predicate { charSequence: String -> charSequence.startsWith(PACKAGE) && !charSequence.contains(P6SPY_FORMATTER) } + + companion object { + private val NEW_LINE = System.lineSeparator() + private const val P6SPY_FORMATTER = "P6spySqlFormatterConfig" + private const val PACKAGE = "com.cakk" + private const val CREATE = "create" + private const val ALTER = "alter" + private const val COMMENT = "comment" + } +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.java deleted file mode 100644 index 9c182e86..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.cakk.domain.mysql.config; - -import jakarta.persistence.EntityManager; -import jakarta.persistence.PersistenceContext; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import com.querydsl.jpa.JPQLTemplates; -import com.querydsl.jpa.impl.JPAQueryFactory; - -@Configuration -public class QuerydslConfig { - - @PersistenceContext - private EntityManager entityManager; - - @Bean - public JPAQueryFactory queryFactory() { - return new JPAQueryFactory(JPQLTemplates.DEFAULT, entityManager); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.kt new file mode 100644 index 00000000..e740d9d2 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.kt @@ -0,0 +1,18 @@ +package com.cakk.domain.mysql.config + +import com.querydsl.jpa.JPQLTemplates +import com.querydsl.jpa.impl.JPAQueryFactory +import jakarta.persistence.EntityManager +import jakarta.persistence.PersistenceContext +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration + +@Configuration +class QuerydslConfig { + @PersistenceContext + private val entityManager: EntityManager? = null + @Bean + fun queryFactory(): JPAQueryFactory { + return JPAQueryFactory(JPQLTemplates.DEFAULT, entityManager) + } +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.java deleted file mode 100644 index 77da6a03..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.cakk.domain.mysql.converter; - -import java.util.stream.Stream; - -import jakarta.persistence.AttributeConverter; - -import com.cakk.common.enums.Days; -import com.cakk.common.enums.ReturnCode; -import com.cakk.common.exception.CakkException; - -public class DayOfWeekConverter implements AttributeConverter { - - @Override - public Integer convertToDatabaseColumn(final Days days) { - if (days == null) { - return null; - } - - return days.getCode(); - } - - @Override - public Days convertToEntityAttribute(final Integer code) { - if (code == null) { - return null; - } - - return Stream.of(Days.values()) - .filter(days -> days.getCode() == code) - .findFirst() - .orElseThrow(() -> new CakkException(ReturnCode.INTERNAL_SERVER_ERROR)); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.kt new file mode 100644 index 00000000..8dc4f1db --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.kt @@ -0,0 +1,22 @@ +package com.cakk.domain.mysql.converter + +import com.cakk.common.enums.Days +import com.cakk.common.enums.ReturnCode +import com.cakk.common.exception.CakkException +import jakarta.persistence.AttributeConverter +import java.util.stream.Stream + +class DayOfWeekConverter : AttributeConverter { + override fun convertToDatabaseColumn(days: Days?): Int? { + return days?.code + } + + override fun convertToEntityAttribute(code: Int?): Days? { + return if (code == null) { + null + } else Stream.of(*Days.values()) + .filter { days: Days -> days.code == code } + .findFirst() + .orElseThrow { CakkException(ReturnCode.INTERNAL_SERVER_ERROR) } + } +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.java deleted file mode 100644 index ec54f9ed..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.cakk.domain.mysql.converter; - -import java.util.stream.Stream; - -import jakarta.persistence.AttributeConverter; - -import com.cakk.common.enums.LinkKind; -import com.cakk.common.enums.ReturnCode; -import com.cakk.common.exception.CakkException; - -public class LinkKindConverter implements AttributeConverter { - - @Override - public String convertToDatabaseColumn(final LinkKind linkKind) { - if (linkKind == null) { - return null; - } - - return linkKind.getValue(); - } - - @Override - public LinkKind convertToEntityAttribute(final String value) { - if (value == null) { - return null; - } - - return Stream.of(LinkKind.values()) - .filter(linkKind -> linkKind.getValue().equals(value)) - .findFirst() - .orElseThrow(() -> new CakkException(ReturnCode.INTERNAL_SERVER_ERROR)); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.kt new file mode 100644 index 00000000..05f52e01 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.kt @@ -0,0 +1,22 @@ +package com.cakk.domain.mysql.converter + +import com.cakk.common.enums.LinkKind +import com.cakk.common.enums.ReturnCode +import com.cakk.common.exception.CakkException +import jakarta.persistence.AttributeConverter +import java.util.stream.Stream + +class LinkKindConverter : AttributeConverter { + override fun convertToDatabaseColumn(linkKind: LinkKind?): String? { + return linkKind?.value + } + + override fun convertToEntityAttribute(value: String?): LinkKind? { + return if (value == null) { + null + } else Stream.of(*LinkKind.values()) + .filter { linkKind: LinkKind -> linkKind.value == value } + .findFirst() + .orElseThrow { CakkException(ReturnCode.INTERNAL_SERVER_ERROR) } + } +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.java deleted file mode 100644 index 2b7ddfb4..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.cakk.domain.mysql.converter; - -import java.util.stream.Stream; - -import jakarta.persistence.AttributeConverter; - -import com.cakk.common.enums.ReturnCode; -import com.cakk.common.enums.VerificationStatus; -import com.cakk.common.exception.CakkException; - -public class VerificationStatusConverter implements AttributeConverter { - @Override - public Integer convertToDatabaseColumn(VerificationStatus verificationStatus) { - if (verificationStatus == null) { - return null; - } - - return verificationStatus.code; - } - - @Override - public VerificationStatus convertToEntityAttribute(Integer code) { - if (code == null) { - return null; - } - - return Stream.of(VerificationStatus.values()) - .filter(verificationStatus -> verificationStatus.code == code) - .findFirst() - .orElseThrow(() -> new CakkException(ReturnCode.INTERNAL_SERVER_ERROR)); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.kt new file mode 100644 index 00000000..47143b97 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.kt @@ -0,0 +1,22 @@ +package com.cakk.domain.mysql.converter + +import com.cakk.common.enums.ReturnCode +import com.cakk.common.enums.VerificationStatus +import com.cakk.common.exception.CakkException +import jakarta.persistence.AttributeConverter +import java.util.stream.Stream + +class VerificationStatusConverter : AttributeConverter { + override fun convertToDatabaseColumn(verificationStatus: VerificationStatus?): Int? { + return verificationStatus?.code + } + + override fun convertToEntityAttribute(code: Int?): VerificationStatus? { + return if (code == null) { + null + } else Stream.of(*VerificationStatus.values()) + .filter { verificationStatus: VerificationStatus -> verificationStatus.code == code } + .findFirst() + .orElseThrow { CakkException(ReturnCode.INTERNAL_SERVER_ERROR) } + } +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.java deleted file mode 100644 index 162d2fb2..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.cakk.domain.mysql.dto.param.cake; - -import java.util.List; - -import com.cakk.domain.mysql.entity.cake.Cake; -import com.cakk.domain.mysql.entity.cake.CakeCategory; -import com.cakk.domain.mysql.entity.user.User; - -public record CakeCreateParam( - Cake cake, - List cakeCategories, - List tagNames, - User owner, - Long cakeShopId -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.kt new file mode 100644 index 00000000..47bd01ca --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.kt @@ -0,0 +1,13 @@ +package com.cakk.domain.mysql.dto.param.cake + +import com.cakk.domain.mysql.entity.cake.Cake +import com.cakk.domain.mysql.entity.cake.CakeCategory +import com.cakk.domain.mysql.entity.user.User + +data class CakeCreateParam( + val cake: Cake, + val cakeCategories: List, + val tagNames: List, + val owner: User, + val cakeShopId: Long +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.java deleted file mode 100644 index 6733831b..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.cakk.domain.mysql.dto.param.cake; - -import java.util.Set; - -import com.cakk.common.enums.CakeDesignCategory; -import com.cakk.domain.mysql.dto.param.tag.TagParam; - -public record CakeDetailParam( - String cakeImageUrl, - String cakeShopName, - String shopBio, - Long cakeShopId, - Set cakeCategories, - Set tags -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.kt new file mode 100644 index 00000000..ae93749f --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.kt @@ -0,0 +1,13 @@ +package com.cakk.domain.mysql.dto.param.cake + +import com.cakk.common.enums.CakeDesignCategory +import com.cakk.domain.mysql.dto.param.tag.TagParam + +data class CakeDetailParam( + val cakeImageUrl: String, + val cakeShopName: String, + val shopBio: String, + val cakeShopId: Long, + val cakeCategories: Set, + val tags: Set +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.java deleted file mode 100644 index 6dd5e69c..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.cakk.domain.mysql.dto.param.cake; - -public record CakeImageResponseParam( - Long cakeShopId, - Long cakeId, - String cakeImageUrl -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.kt new file mode 100644 index 00000000..34cfde43 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.kt @@ -0,0 +1,7 @@ +package com.cakk.domain.mysql.dto.param.cake + +data class CakeImageResponseParam( + val cakeShopId: Long, + val cakeId: Long, + val cakeImageUrl: String +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.java deleted file mode 100644 index 714331f1..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.cakk.domain.mysql.dto.param.cake; - -import org.locationtech.jts.geom.Point; - -public record CakeSearchParam( - - Long cakeId, - String keyword, - Point location, - Integer pageSize -) { - -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.kt new file mode 100644 index 00000000..72894e5d --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.kt @@ -0,0 +1,11 @@ +package com.cakk.domain.mysql.dto.param.cake + +import org.locationtech.jts.geom.Point + + +data class CakeSearchParam( + val cakeId: Long, + val keyword: String, + val location: Point, + val pageSize: Int +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.java deleted file mode 100644 index eaa41902..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.cakk.domain.mysql.dto.param.cake; - -import java.util.List; - -import com.cakk.domain.mysql.entity.cake.CakeCategory; -import com.cakk.domain.mysql.entity.user.User; - -public record CakeUpdateParam( - User owner, - Long cakeId, - String cakeImageUrl, - List cakeCategories, - List tagNames -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.kt new file mode 100644 index 00000000..2d8208b3 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.kt @@ -0,0 +1,12 @@ +package com.cakk.domain.mysql.dto.param.cake + +import com.cakk.domain.mysql.entity.cake.CakeCategory +import com.cakk.domain.mysql.entity.user.User + +data class CakeUpdateParam( + val owner: User, + val cakeId: Long, + val cakeImageUrl: String, + val cakeCategories: List, + val tagNames: List +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.java deleted file mode 100644 index 5b71379e..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.cakk.domain.mysql.dto.param.like; - -public record HeartCakeImageResponseParam( - Long cakeShopId, - Long cakeId, - Long cakeHeartId, - String cakeImageUrl -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.kt new file mode 100644 index 00000000..570134b6 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.kt @@ -0,0 +1,9 @@ +package com.cakk.domain.mysql.dto.param.like + + +data class HeartCakeImageResponseParam( + val cakeShopId: Long, + val cakeId: Long, + val cakeHeartId: Long, + val cakeImageUrl: String +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.java deleted file mode 100644 index 3ebc2242..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.cakk.domain.mysql.dto.param.like; - -import java.util.Set; - -import com.cakk.common.enums.Days; - -public record HeartCakeShopResponseParam( - Long cakeShopHeartId, - Long cakeShopId, - String thumbnailUrl, - String cakeShopName, - String cakeShopBio, - Set cakeImageUrls, - Set operationDays -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.kt new file mode 100644 index 00000000..b3f4f5e7 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.kt @@ -0,0 +1,13 @@ +package com.cakk.domain.mysql.dto.param.like + +import com.cakk.common.enums.Days + +data class HeartCakeShopResponseParam( + val cakeShopHeartId: Long, + val cakeShopId: Long, + val thumbnailUrl: String, + val cakeShopName: String, + val cakeShopBio: String, + val cakeImageUrls: Set, + val operationDays: Set +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.java deleted file mode 100644 index b592bcd0..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.cakk.domain.mysql.dto.param.link; - -import java.util.List; - -import lombok.Builder; - -import com.cakk.domain.mysql.entity.shop.CakeShopLink; -import com.cakk.domain.mysql.entity.user.User; - -@Builder -public record UpdateLinkParam( - User user, - Long cakeShopId, - List cakeShopLinks -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.kt new file mode 100644 index 00000000..1f2f3fd4 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.kt @@ -0,0 +1,10 @@ +package com.cakk.domain.mysql.dto.param.link + +import com.cakk.domain.mysql.entity.shop.CakeShopLink +import com.cakk.domain.mysql.entity.user.User + +data class UpdateLinkParam( + val user: User, + val cakeShopId: Long, + val cakeShopLinks: List +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.java deleted file mode 100644 index e658e207..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.cakk.domain.mysql.dto.param.operation; - -import java.util.List; - -import lombok.Builder; - -import com.cakk.domain.mysql.entity.shop.CakeShopOperation; -import com.cakk.domain.mysql.entity.user.User; - -@Builder -public record UpdateShopOperationParam( - List cakeShopOperations, - User user, - Long cakeShopId -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.kt new file mode 100644 index 00000000..51e57d01 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.kt @@ -0,0 +1,10 @@ +package com.cakk.domain.mysql.dto.param.operation + +import com.cakk.domain.mysql.entity.shop.CakeShopOperation +import com.cakk.domain.mysql.entity.user.User + +data class UpdateShopOperationParam( + val cakeShopOperations: List, + val user: User, + val cakeShopId: Long +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopByKeywordParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopByKeywordParam.java deleted file mode 100644 index 0d165cb5..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopByKeywordParam.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -public record CakeShopByKeywordParam( - Long cakeShopId, - String thumbnailUrl, - String cakeShopName, - String cakeShopBio -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.java deleted file mode 100644 index 03ac503a..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -import java.util.Set; - -import com.cakk.common.enums.Days; - -public record CakeShopDetailParam( - Long cakeShopId, - String shopName, - String thumbnailUrl, - String shopBio, - String shopDescription, - Set operationDays, - Set links -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.kt new file mode 100644 index 00000000..dabe156d --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.kt @@ -0,0 +1,13 @@ +package com.cakk.domain.mysql.dto.param.shop + +import com.cakk.common.enums.Days + +data class CakeShopDetailParam( + val cakeShopId: Long, + val shopName: String, + val thumbnailUrl: String, + val shopBio: String, + val shopDescription: String, + val operationDays: Set, + val links: Set +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.java deleted file mode 100644 index ede7a3cc..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -import java.util.List; - -import org.locationtech.jts.geom.Point; - -public record CakeShopInfoParam( - String shopAddress, - Point point, - List shopOperationDays -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.kt new file mode 100644 index 00000000..00f325ce --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.kt @@ -0,0 +1,9 @@ +package com.cakk.domain.mysql.dto.param.shop + +import org.locationtech.jts.geom.Point + +data class CakeShopInfoParam( + val shopAddress: String, + val point: Point, + val shopOperationDays: List +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.java deleted file mode 100644 index c4ee2823..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -import com.cakk.common.enums.LinkKind; - -public record CakeShopLinkParam( - LinkKind linkKind, - String linkPath -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.kt new file mode 100644 index 00000000..31e694d2 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.kt @@ -0,0 +1,8 @@ +package com.cakk.domain.mysql.dto.param.shop + +import com.cakk.common.enums.LinkKind + +data class CakeShopLinkParam( + val linkKind: LinkKind, + val linkPath: String +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.java deleted file mode 100644 index bd33a01f..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -import java.util.Set; - -public record CakeShopLocationResponseParam( - Long cakeShopId, - String thumbnailUrl, - String cakeShopName, - String cakeShopBio, - Set cakeImageUrls, - Double longitude, - Double latitude -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.kt new file mode 100644 index 00000000..2e8c14cb --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.kt @@ -0,0 +1,11 @@ +package com.cakk.domain.mysql.dto.param.shop + +data class CakeShopLocationResponseParam( + val cakeShopId: Long, + val thumbnailUrl: String, + val cakeShopName: String, + val cakeShopBio: String, + val cakeImageUrls: Set, + val longitude: Double, + val latitude: Double +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.java deleted file mode 100644 index 76b3b1f0..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -import java.time.LocalTime; - -import com.cakk.common.enums.Days; - -public record CakeShopOperationParam( - Days operationDay, - LocalTime operationStartTime, - LocalTime operationEndTime -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.kt new file mode 100644 index 00000000..02e0f539 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.kt @@ -0,0 +1,10 @@ +package com.cakk.domain.mysql.dto.param.shop + +import com.cakk.common.enums.Days +import java.time.LocalTime + +data class CakeShopOperationParam( + val operationDay: Days, + val operationStartTime: LocalTime, + val operationEndTime: LocalTime +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.java deleted file mode 100644 index 7d4149fb..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -import org.locationtech.jts.geom.Point; - -public record CakeShopSearchParam( - Long cakeShopId, - String keyword, - Point location, - Integer pageSize -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.kt new file mode 100644 index 00000000..ca398948 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.kt @@ -0,0 +1,10 @@ +package com.cakk.domain.mysql.dto.param.shop + +import org.locationtech.jts.geom.Point + +data class CakeShopSearchParam( + val cakeShopId: Long, + val keyword: String, + val location: Point, + val pageSize: Int +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.java deleted file mode 100644 index c7ca2fd4..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -import java.util.Set; - -public record CakeShopSearchResponseParam( - Long cakeShopId, - String thumbnailUrl, - String cakeShopName, - String cakeShopBio, - Set cakeImageUrls, - Set operationDays -) { - -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.kt new file mode 100644 index 00000000..d5e3a4f5 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.kt @@ -0,0 +1,10 @@ +package com.cakk.domain.mysql.dto.param.shop + +data class CakeShopSearchResponseParam( + val cakeShopId: Long, + val thumbnailUrl: String, + val cakeShopName: String, + val cakeShopBio: String, + val cakeImageUrls: Set, + val operationDays: Set +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.java deleted file mode 100644 index 396d1922..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -public record CakeShopSimpleParam( - Long cakeShopId, - String thumbnailUrl, - String cakeShopName, - String cakeShopBio -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.kt new file mode 100644 index 00000000..b752586f --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.kt @@ -0,0 +1,8 @@ +package com.cakk.domain.mysql.dto.param.shop + +data class CakeShopSimpleParam( + val cakeShopId: Long, + val thumbnailUrl: String, + val cakeShopName: String, + val cakeShopBio: String +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.java deleted file mode 100644 index 9167cf07..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -import lombok.Builder; - -import com.cakk.domain.mysql.entity.user.User; - -@Builder -public record CakeShopUpdateParam( - String thumbnailUrl, - String shopName, - String shopBio, - String shopDescription, - User user, - Long cakeShopId -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.kt new file mode 100644 index 00000000..8047394a --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.kt @@ -0,0 +1,13 @@ +package com.cakk.domain.mysql.dto.param.shop + +import com.cakk.domain.mysql.entity.user.User +import lombok.Builder + +data class CakeShopUpdateParam( + val thumbnailUrl: String, + val shopName: String, + val shopBio: String, + val shopDescription: String, + val user: User, + val cakeShopId: Long +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.java deleted file mode 100644 index 9b3b439e..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -import java.time.LocalTime; - -import com.cakk.common.enums.Days; - -public record ShopOperationParam( - Long cakeShopId, - Days operationDay, - LocalTime operationStartTime, - LocalTime operationEndTime -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.kt new file mode 100644 index 00000000..4cc9f304 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.kt @@ -0,0 +1,11 @@ +package com.cakk.domain.mysql.dto.param.shop + +import com.cakk.common.enums.Days +import java.time.LocalTime + +data class ShopOperationParam( + val cakeShopId: Long, + val operationDay: Days, + val operationStartTime: LocalTime, + val operationEndTime: LocalTime +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.java deleted file mode 100644 index 1768788e..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop; - -import org.locationtech.jts.geom.Point; - -import lombok.Builder; - -import com.cakk.domain.mysql.entity.user.User; - -@Builder -public record UpdateShopAddressParam( - String shopAddress, - Point location, - User user, - Long cakeShopId -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.kt new file mode 100644 index 00000000..1ac49ce5 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.kt @@ -0,0 +1,11 @@ +package com.cakk.domain.mysql.dto.param.shop + +import com.cakk.domain.mysql.entity.user.User +import org.locationtech.jts.geom.Point + +data class UpdateShopAddressParam( + val shopAddress: String, + val location: Point, + val user: User, + val cakeShopId: Long +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.java deleted file mode 100644 index b9bba88a..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.cakk.domain.mysql.dto.param.tag; - -public record TagParam( - Long tagId, - String tagName -) { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.kt new file mode 100644 index 00000000..adb9e593 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.kt @@ -0,0 +1,6 @@ +package com.cakk.domain.mysql.dto.param.tag + +data class TagParam( + val tagId: Long, + val tagName: String +) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/shop/CakeShop.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/shop/CakeShop.java index e3016caa..8002ff2a 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/shop/CakeShop.java +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/shop/CakeShop.java @@ -144,10 +144,10 @@ public boolean isHeartedBy(final User user) { } public void updateBasicInformation(final CakeShopUpdateParam param) { - thumbnailUrl = param.thumbnailUrl(); - shopName = param.shopName(); - shopBio = param.shopBio(); - shopDescription = param.shopDescription(); + thumbnailUrl = param.getThumbnailUrl(); + shopName = param.getShopName(); + shopBio = param.getShopBio(); + shopDescription = param.getShopDescription(); } public void registerBusinessInformation(final BusinessInformation businessInformation) { @@ -168,8 +168,8 @@ public void updateShopLinks(final List cakeShopLinks) { } public void updateShopAddress(final UpdateShopAddressParam param) { - shopAddress = param.shopAddress(); - location = param.location(); + shopAddress = param.getShopAddress(); + location = param.getLocation(); } public void addShopOperationDays(final List cakeShopOperations) { diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/BusinessInformationJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/BusinessInformationJpaRepository.java deleted file mode 100644 index 97028b13..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/BusinessInformationJpaRepository.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import java.util.List; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; - -import com.cakk.common.enums.VerificationStatus; -import com.cakk.domain.mysql.entity.user.BusinessInformation; -import com.cakk.domain.mysql.entity.user.User; - -public interface BusinessInformationJpaRepository extends JpaRepository { - - @Query("select bi from BusinessInformation as bi join fetch bi.cakeShop " - + "where bi.cakeShop.id =:cakeShopId") - Optional findBusinessInformationWithCakeShop(@Param("cakeShopId") Long cakeShopId); - - List findAllByUser(User user); - - Boolean existsBusinessInformationByUserAndCakeShop_Id(User owner, Long cakeShopId); - - @Query("select bi from BusinessInformation as bi join fetch bi.cakeShop where bi.user =:user") - List findAllWithCakeShopByUser(User user); - - @Query("select bi from BusinessInformation as bi join fetch bi.user join fetch bi.cakeShop" - + " where bi.verificationStatus =:verificationStatus") - List findAllCakeShopBusinessOwnerCandidates(VerificationStatus verificationStatus); - - @Query("select bi from BusinessInformation as bi join fetch bi.user join fetch bi.cakeShop" - + " where bi.user.id =:userId") - Optional findBusinessInformationByUserId(final Long userId); -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/BusinessInformationJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/BusinessInformationJpaRepository.kt new file mode 100644 index 00000000..c58902a6 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/BusinessInformationJpaRepository.kt @@ -0,0 +1,30 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.common.enums.VerificationStatus +import com.cakk.domain.mysql.entity.user.BusinessInformation +import com.cakk.domain.mysql.entity.user.User +import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.data.jpa.repository.Query +import org.springframework.data.repository.query.Param +import java.util.* + +interface BusinessInformationJpaRepository : JpaRepository { + @Query("select bi from BusinessInformation as bi join fetch bi.cakeShop " + + "where bi.cakeShop.id =:cakeShopId") + fun findBusinessInformationWithCakeShop(@Param("cakeShopId") cakeShopId: Long): BusinessInformation? + + fun findAllByUser(user: User): List + + fun existsBusinessInformationByUserAndCakeShop_Id(owner: User, cakeShopId: Long): Boolean + + @Query("select bi from BusinessInformation as bi join fetch bi.cakeShop where bi.user =:user") + fun findAllWithCakeShopByUser(user: User): List + + @Query("select bi from BusinessInformation as bi join fetch bi.user join fetch bi.cakeShop" + + " where bi.verificationStatus =:verificationStatus") + fun findAllCakeShopBusinessOwnerCandidates(verificationStatus: VerificationStatus): List + + @Query("select bi from BusinessInformation as bi join fetch bi.user join fetch bi.cakeShop" + + " where bi.user.id =:userId") + fun findBusinessInformationByUserId(userId: Long): BusinessInformation? +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeCategoryJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeCategoryJpaRepository.java deleted file mode 100644 index edc4fe0f..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeCategoryJpaRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.cakk.domain.mysql.entity.cake.CakeCategory; - -public interface CakeCategoryJpaRepository extends JpaRepository { - - Optional findByCakeId(Long cakeId); -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeCategoryJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeCategoryJpaRepository.kt new file mode 100644 index 00000000..31c32aee --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeCategoryJpaRepository.kt @@ -0,0 +1,9 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.domain.mysql.entity.cake.CakeCategory +import org.springframework.data.jpa.repository.JpaRepository +import java.util.* + +interface CakeCategoryJpaRepository : JpaRepository { + fun findByCakeId(cakeId: Long?): CakeCategory? +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.java deleted file mode 100644 index 2dfc1d8a..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import java.util.List; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.cakk.domain.mysql.entity.cake.Cake; -import com.cakk.domain.mysql.entity.cake.CakeHeart; -import com.cakk.domain.mysql.entity.user.User; - -public interface CakeHeartJpaRepository extends JpaRepository { - - List findAllByUser(User user); - - Optional findByUserAndCake(User user, Cake cake); - - boolean existsByUserAndCake(User user, Cake cake); -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.kt new file mode 100644 index 00000000..c6f46605 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.kt @@ -0,0 +1,13 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.domain.mysql.entity.cake.Cake +import com.cakk.domain.mysql.entity.cake.CakeHeart +import com.cakk.domain.mysql.entity.user.User +import org.springframework.data.jpa.repository.JpaRepository +import java.util.* + +interface CakeHeartJpaRepository : JpaRepository { + fun findAllByUser(user: User): List + fun findByUserAndCake(user: User, cake: Cake): CakeHeart? + fun existsByUserAndCake(user: User, cake: Cake): Boolean +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeJpaRepository.java deleted file mode 100644 index ee891465..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeJpaRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.cakk.domain.mysql.entity.cake.Cake; - -public interface CakeJpaRepository extends JpaRepository { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeJpaRepository.kt new file mode 100644 index 00000000..2adff33b --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeJpaRepository.kt @@ -0,0 +1,6 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.domain.mysql.entity.cake.Cake +import org.springframework.data.jpa.repository.JpaRepository + +interface CakeJpaRepository : JpaRepository diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.java deleted file mode 100644 index d084b767..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import java.util.List; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.cakk.domain.mysql.entity.shop.CakeShop; -import com.cakk.domain.mysql.entity.shop.CakeShopHeart; -import com.cakk.domain.mysql.entity.user.User; - -public interface CakeShopHeartJpaRepository extends JpaRepository { - - List findAllByUser(User user); - - Optional findByUserAndCakeShop(User user, CakeShop cakeShop); - - boolean existsByUserAndCakeShop(User user, CakeShop cakeShop); -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.kt new file mode 100644 index 00000000..787eb2d7 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.kt @@ -0,0 +1,13 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.domain.mysql.entity.shop.CakeShop +import com.cakk.domain.mysql.entity.shop.CakeShopHeart +import com.cakk.domain.mysql.entity.user.User +import org.springframework.data.jpa.repository.JpaRepository +import java.util.* + +interface CakeShopHeartJpaRepository : JpaRepository { + fun findAllByUser(user: User): List + fun findByUserAndCakeShop(user: User, cakeShop: CakeShop): CakeShopHeart? + fun existsByUserAndCakeShop(user: User, cakeShop: CakeShop): Boolean +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopJpaRepository.java deleted file mode 100644 index 81423746..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopJpaRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.cakk.domain.mysql.entity.shop.CakeShop; - -public interface CakeShopJpaRepository extends JpaRepository { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopJpaRepository.kt new file mode 100644 index 00000000..1ce0ee92 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopJpaRepository.kt @@ -0,0 +1,6 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.domain.mysql.entity.shop.CakeShop +import org.springframework.data.jpa.repository.JpaRepository + +interface CakeShopJpaRepository : JpaRepository diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.java deleted file mode 100644 index 86c22d00..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.cakk.domain.mysql.entity.shop.CakeShopLike; -import com.cakk.domain.mysql.entity.user.User; - -public interface CakeShopLikeJpaRepository extends JpaRepository { - - int countByCakeShopIdAndUser(Long cakeShopId, User user); -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.kt new file mode 100644 index 00000000..def381bc --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.kt @@ -0,0 +1,9 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.domain.mysql.entity.shop.CakeShopLike +import com.cakk.domain.mysql.entity.user.User +import org.springframework.data.jpa.repository.JpaRepository + +interface CakeShopLikeJpaRepository : JpaRepository { + fun countByCakeShopIdAndUser(cakeShopId: Long, user: User): Int +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.java deleted file mode 100644 index 4005368d..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.cakk.domain.mysql.entity.shop.CakeShopLink; - -public interface CakeShopLinkJpaRepository extends JpaRepository { - - List findAllByCakeShopId(Long cakeShopId); -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.kt new file mode 100644 index 00000000..b1879451 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.kt @@ -0,0 +1,8 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.domain.mysql.entity.shop.CakeShopLink +import org.springframework.data.jpa.repository.JpaRepository + +interface CakeShopLinkJpaRepository : JpaRepository { + fun findAllByCakeShopId(cakeShopId: Long): List +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.java deleted file mode 100644 index 2eecfc08..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.cakk.domain.mysql.entity.shop.CakeShopOperation; - -public interface CakeShopOperationJpaRepository extends JpaRepository { - - List findAllByCakeShopId(Long cakeShopId); -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.kt new file mode 100644 index 00000000..c540b84a --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.kt @@ -0,0 +1,8 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.domain.mysql.entity.shop.CakeShopOperation +import org.springframework.data.jpa.repository.JpaRepository + +interface CakeShopOperationJpaRepository : JpaRepository { + fun findAllByCakeShopId(cakeShopId: Long): List +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.java deleted file mode 100644 index 7186df2e..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import java.util.List; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.cakk.domain.mysql.entity.cake.Tag; - -@Repository -public interface TagJpaRepository extends JpaRepository { - - Optional findTagByTagName(String tagName); - - List findTagsByTagNameIsIn(List tagNames); -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.kt new file mode 100644 index 00000000..5fadc618 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.kt @@ -0,0 +1,12 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.domain.mysql.entity.cake.Tag +import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.stereotype.Repository +import java.util.* + +@Repository +interface TagJpaRepository : JpaRepository { + fun findTagByTagName(tagName: String?): Tag? + fun findTagsByTagNameIsIn(tagNames: List): List +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.java deleted file mode 100644 index 25db239e..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.cakk.domain.mysql.entity.user.User; - -public interface UserJpaRepository extends JpaRepository { - - Optional findByProviderId(String providerId); -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.kt new file mode 100644 index 00000000..1ff70520 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.kt @@ -0,0 +1,9 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.domain.mysql.entity.user.User +import org.springframework.data.jpa.repository.JpaRepository +import java.util.* + +interface UserJpaRepository : JpaRepository { + fun findByProviderId(providerId: String): User? +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserWithdrawalJpaRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserWithdrawalJpaRepository.java deleted file mode 100644 index fc78d3d3..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserWithdrawalJpaRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.cakk.domain.mysql.entity.user.UserWithdrawal; - -public interface UserWithdrawalJpaRepository extends JpaRepository { -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserWithdrawalJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserWithdrawalJpaRepository.kt new file mode 100644 index 00000000..0d6fc7da --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserWithdrawalJpaRepository.kt @@ -0,0 +1,6 @@ +package com.cakk.domain.mysql.repository.jpa + +import com.cakk.domain.mysql.entity.user.UserWithdrawal +import org.springframework.data.jpa.repository.JpaRepository + +interface UserWithdrawalJpaRepository : JpaRepository diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/query/CakeShopHeartQueryRepository.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/query/CakeShopHeartQueryRepository.java index 35f63602..c56f39c1 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/query/CakeShopHeartQueryRepository.java +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/query/CakeShopHeartQueryRepository.java @@ -58,14 +58,14 @@ public List searchAllByCursorAndHeart(final List findAllWithCakeShopByUser(final User owner) { - return businessInformationJpaRepository.findAllWithCakeShopByUser(owner); - } - - public List findAllCakeShopBusinessOwnerCandidates() { - return businessInformationJpaRepository.findAllCakeShopBusinessOwnerCandidates(VerificationStatus.PENDING); - } - - public BusinessInformation findByUserId(final Long userId) { - return businessInformationJpaRepository.findBusinessInformationByUserId(userId) - .orElseThrow(() -> new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeCategoryReader.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeCategoryReader.java deleted file mode 100644 index 98eb5615..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeCategoryReader.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.cakk.domain.mysql.repository.reader; - -import lombok.RequiredArgsConstructor; - -import com.cakk.common.enums.ReturnCode; -import com.cakk.common.exception.CakkException; -import com.cakk.domain.mysql.annotation.Reader; -import com.cakk.domain.mysql.entity.cake.CakeCategory; -import com.cakk.domain.mysql.repository.jpa.CakeCategoryJpaRepository; - -@Reader -@RequiredArgsConstructor -public class CakeCategoryReader { - - private final CakeCategoryJpaRepository cakeCategoryJpaRepository; - - public CakeCategory findByCakeId(final Long cakeId) { - return cakeCategoryJpaRepository.findByCakeId(cakeId).orElseThrow(() -> new CakkException(ReturnCode.NOT_EXIST_CAKE_CATEGORY)); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeHeartReader.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeHeartReader.java deleted file mode 100644 index 8fe90668..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeHeartReader.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.cakk.domain.mysql.repository.reader; - -import java.util.List; - -import lombok.RequiredArgsConstructor; - -import com.cakk.domain.mysql.annotation.Reader; -import com.cakk.domain.mysql.dto.param.like.HeartCakeImageResponseParam; -import com.cakk.domain.mysql.repository.jpa.CakeHeartJpaRepository; -import com.cakk.domain.mysql.repository.query.CakeHeartQueryRepository; - -@RequiredArgsConstructor -@Reader -public class CakeHeartReader { - - private final CakeHeartJpaRepository cakeHeartJpaRepository; - private final CakeHeartQueryRepository cakeHeartQueryRepository; - - public List searchCakeImagesByCursorAndHeart( - final Long cakeHeartId, - final Long userId, - final int pageSize - ) { - return cakeHeartQueryRepository.searchCakeImagesByCursorAndHeart(cakeHeartId, userId, pageSize); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeReader.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeReader.java deleted file mode 100644 index 36251eb0..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeReader.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.cakk.domain.mysql.repository.reader; - -import static java.util.Objects.*; - -import java.util.List; - -import lombok.RequiredArgsConstructor; - -import com.cakk.common.enums.CakeDesignCategory; -import com.cakk.common.enums.ReturnCode; -import com.cakk.common.exception.CakkException; -import com.cakk.domain.mysql.annotation.Reader; -import com.cakk.domain.mysql.dto.param.cake.CakeDetailParam; -import com.cakk.domain.mysql.dto.param.cake.CakeImageResponseParam; -import com.cakk.domain.mysql.dto.param.cake.CakeSearchParam; -import com.cakk.domain.mysql.entity.cake.Cake; -import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.jpa.CakeJpaRepository; -import com.cakk.domain.mysql.repository.query.CakeQueryRepository; - -@Reader -@RequiredArgsConstructor -public class CakeReader { - - private final CakeJpaRepository cakeJpaRepository; - private final CakeQueryRepository cakeQueryRepository; - - public Cake findById(final Long cakeId) { - return cakeJpaRepository.findById(cakeId).orElseThrow(() -> new CakkException(ReturnCode.NOT_EXIST_CAKE)); - } - - public Cake findByIdWithHeart(final Long cakeId) { - final Cake cake = cakeQueryRepository.searchByIdWithHeart(cakeId); - - if (isNull(cake)) { - throw new CakkException(ReturnCode.NOT_EXIST_CAKE); - } - - return cake; - } - - public List searchCakeImagesByCursorAndCategory( - final Long cakeId, - final CakeDesignCategory category, - final int pageSize - ) { - return cakeQueryRepository.searchCakeImagesByCursorAndCategory(cakeId, category, pageSize); - } - - public List searchCakeImagesByCursorAndCakeShopId( - final Long cakeId, - final Long cakeShopId, - final int pageSize - ) { - return cakeQueryRepository.searchCakeImagesByCursorAndCakeShopId(cakeId, cakeShopId, pageSize); - } - - public List searchCakeImagesByCursorAndSearchKeyword(final CakeSearchParam param) { - return cakeQueryRepository.searchCakeImagesByCursorAndSearchKeyword( - param.cakeId(), - param.keyword(), - param.location(), - param.pageSize() - ); - } - - public List searchCakeImagesByCakeIds(final List cakeIds) { - return cakeQueryRepository.searchCakeImagesByCakeIds(cakeIds); - } - - public Cake findWithCakeTagsAndCakeCategories(final Long cakeId, final User owner) { - return cakeQueryRepository.searchWithCakeTagsAndCakeCategories(cakeId, owner) - .orElseThrow(() -> new CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER)); - } - - public CakeDetailParam searchCakeDetailById(final Long cakeId) { - final CakeDetailParam param = cakeQueryRepository.searchCakeDetailById(cakeId); - - if (isNull(param)) { - throw new CakkException(ReturnCode.NOT_EXIST_CAKE); - } - return param; - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopHeartReader.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopHeartReader.java deleted file mode 100644 index f1a8a4f3..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopHeartReader.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.cakk.domain.mysql.repository.reader; - -import java.util.List; - -import lombok.RequiredArgsConstructor; - -import com.cakk.domain.mysql.annotation.Reader; -import com.cakk.domain.mysql.dto.param.like.HeartCakeShopResponseParam; -import com.cakk.domain.mysql.entity.shop.CakeShop; -import com.cakk.domain.mysql.entity.shop.CakeShopHeart; -import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.jpa.CakeShopHeartJpaRepository; -import com.cakk.domain.mysql.repository.query.CakeShopHeartQueryRepository; - -@Reader -@RequiredArgsConstructor -public class CakeShopHeartReader { - - private final CakeShopHeartQueryRepository cakeShopHeartQueryRepository; - private final CakeShopHeartJpaRepository cakeShopHeartJpaRepository; - - public List searchAllByCursorAndHeart( - final Long cakeShopHeartId, - final Long userId, - final int pageSize - ) { - final List cakeShopHeartIds = cakeShopHeartQueryRepository.searchIdsByCursorAndHeart(cakeShopHeartId, userId, pageSize); - - return cakeShopHeartQueryRepository.searchAllByCursorAndHeart(cakeShopHeartIds); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopLinkReader.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopLinkReader.java deleted file mode 100644 index b910dc0c..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopLinkReader.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.cakk.domain.mysql.repository.reader; - -import java.util.List; - -import lombok.RequiredArgsConstructor; - -import com.cakk.domain.mysql.annotation.Reader; -import com.cakk.domain.mysql.entity.shop.CakeShopLink; -import com.cakk.domain.mysql.repository.jpa.CakeShopLinkJpaRepository; - -@Reader -@RequiredArgsConstructor -public class CakeShopLinkReader { - - private final CakeShopLinkJpaRepository cakeShopLinkJpaRepository; - - public List findAllByCakeShopId(final Long cakeShopId) { - return cakeShopLinkJpaRepository.findAllByCakeShopId(cakeShopId); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopOperationReader.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopOperationReader.java deleted file mode 100644 index 4b444261..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopOperationReader.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.cakk.domain.mysql.repository.reader; - -import java.util.List; - -import lombok.RequiredArgsConstructor; - -import com.cakk.domain.mysql.annotation.Reader; -import com.cakk.domain.mysql.entity.shop.CakeShopOperation; -import com.cakk.domain.mysql.repository.jpa.CakeShopOperationJpaRepository; - -@Reader -@RequiredArgsConstructor -public class CakeShopOperationReader { - - private final CakeShopOperationJpaRepository cakeShopOperationJpaRepository; - - public List findAllByCakeShopId(Long cakeShopId) { - return cakeShopOperationJpaRepository.findAllByCakeShopId(cakeShopId); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopReader.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopReader.java deleted file mode 100644 index dd89849a..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/CakeShopReader.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.cakk.domain.mysql.repository.reader; - -import static java.util.Objects.*; - -import java.util.List; - -import org.locationtech.jts.geom.Point; - -import lombok.RequiredArgsConstructor; - -import com.cakk.common.enums.ReturnCode; -import com.cakk.common.exception.CakkException; -import com.cakk.domain.mysql.annotation.Reader; -import com.cakk.domain.mysql.dto.param.shop.CakeShopByLocationParam; -import com.cakk.domain.mysql.dto.param.shop.CakeShopDetailParam; -import com.cakk.domain.mysql.dto.param.shop.CakeShopInfoParam; -import com.cakk.domain.mysql.dto.param.shop.CakeShopSearchParam; -import com.cakk.domain.mysql.dto.param.shop.CakeShopSimpleParam; -import com.cakk.domain.mysql.entity.shop.CakeShop; -import com.cakk.domain.mysql.entity.user.BusinessInformation; -import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.jpa.BusinessInformationJpaRepository; -import com.cakk.domain.mysql.repository.jpa.CakeShopJpaRepository; -import com.cakk.domain.mysql.repository.query.CakeShopQueryRepository; - -@Reader -@RequiredArgsConstructor -public class CakeShopReader { - - private final CakeShopJpaRepository cakeShopJpaRepository; - private final CakeShopQueryRepository cakeShopQueryRepository; - private final BusinessInformationJpaRepository businessInformationJpaRepository; - - public CakeShop findById(final Long cakeShopId) { - return cakeShopJpaRepository.findById(cakeShopId).orElseThrow(() -> new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)); - } - - public CakeShop findByIdWithHeart(final Long cakeShopId) { - final CakeShop cakeShop = cakeShopQueryRepository.searchByIdWithHeart(cakeShopId); - - if (isNull(cakeShop)) { - throw new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP); - } - - return cakeShop; - } - - public CakeShop findByIdWithLike(final Long cakeShopId) { - final CakeShop cakeShop = cakeShopQueryRepository.searchByIdWithLike(cakeShopId); - - if (isNull(cakeShop)) { - throw new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP); - } - - return cakeShop; - } - - public CakeShopSimpleParam searchSimpleById(final Long cakeShopId) { - final CakeShopSimpleParam response = cakeShopQueryRepository.searchSimpleById(cakeShopId); - - if (isNull(response)) { - throw new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP); - } - - return response; - } - - public CakeShopDetailParam searchDetailById(final Long cakeShopId) { - final CakeShopDetailParam response = cakeShopQueryRepository.searchDetailById(cakeShopId); - - if (isNull(response)) { - throw new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP); - } - - return response; - } - - public CakeShopInfoParam searchInfoById(final Long cakeShopId) { - final CakeShopInfoParam response = cakeShopQueryRepository.searchInfoById(cakeShopId); - - if (isNull(response)) { - throw new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP); - } - - return response; - } - - public BusinessInformation findBusinessInformationWithShop(final Long cakeShopId) { - return businessInformationJpaRepository.findBusinessInformationWithCakeShop(cakeShopId) - .orElseThrow(() -> new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)); - } - - public BusinessInformation findBusinessInformationByCakeShopId(final Long cakeShopId) { - return businessInformationJpaRepository.findBusinessInformationWithCakeShop(cakeShopId) - .orElseThrow(() -> new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)); - } - - public List searchShopByLocationBased(final Point point, final Double distance) { - return cakeShopQueryRepository.findShopsByLocationBased(point, distance); - } - - public List searchShopBySearch(final CakeShopSearchParam param) { - return cakeShopQueryRepository.searchByKeywordWithLocation( - param.cakeShopId(), - param.keyword(), - param.location(), - param.pageSize() - ); - } - - public CakeShop searchWithShopLinks(final User owner, final Long cakeShopId) { - return cakeShopQueryRepository.searchWithShopLinks(owner, cakeShopId) - .orElseThrow(() -> new CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER)); - } - - public CakeShop searchByIdAndOwner(final Long cakeShopId, final User owner) { - return cakeShopQueryRepository.searchWithBusinessInformationAndOwnerById(owner, cakeShopId) - .orElseThrow(() -> new CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER)); - } - - public CakeShop searchWithOperations(final User owner, final Long cakeShopId) { - return cakeShopQueryRepository.searchWithOperations(owner, cakeShopId) - .orElseThrow(() -> new CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER)); - } - - public List searchShopsByShopIds(final List shopIds) { - return cakeShopQueryRepository.searchByShopIds(shopIds); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/TagReader.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/TagReader.java deleted file mode 100644 index 042aebc8..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/TagReader.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.cakk.domain.mysql.repository.reader; - -import java.util.List; - -import lombok.RequiredArgsConstructor; - -import com.cakk.domain.mysql.annotation.Reader; -import com.cakk.domain.mysql.entity.cake.Tag; -import com.cakk.domain.mysql.mapper.TagMapper; -import com.cakk.domain.mysql.repository.jpa.TagJpaRepository; - -@Reader -@RequiredArgsConstructor -public class TagReader { - - private final TagJpaRepository tagJpaRepository; - - public List getTagsByTagName(final List tagNames) { - List tags = tagJpaRepository.findTagsByTagNameIsIn(tagNames); - - return tagNames.stream() - .map(tagName -> tags - .stream() - .filter(tag -> tag.getTagName().equals(tagName)) - .findAny() - .orElse(tagJpaRepository.save(TagMapper.supplyTagBy(tagName)))) - .toList(); - } -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/UserReader.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/UserReader.java deleted file mode 100644 index 8bc4dd7f..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/reader/UserReader.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.cakk.domain.mysql.repository.reader; - -import static java.util.Objects.*; - -import java.util.List; - -import lombok.RequiredArgsConstructor; - -import com.cakk.common.enums.ReturnCode; -import com.cakk.common.exception.CakkException; -import com.cakk.domain.mysql.annotation.Reader; -import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.jpa.UserJpaRepository; -import com.cakk.domain.mysql.repository.query.UserQueryRepository; - -@Reader -@RequiredArgsConstructor -public class UserReader { - - private final UserJpaRepository userJpaRepository; - private final UserQueryRepository userQueryRepository; - - public User findByUserId(final Long userId) { - return userJpaRepository.findById(userId).orElseThrow(() -> new CakkException(ReturnCode.NOT_EXIST_USER)); - } - - public User findByProviderId(final String providerId) { - return userJpaRepository.findByProviderId(providerId).orElseThrow(() -> new CakkException(ReturnCode.NOT_EXIST_USER)); - } - - public User findByIdWithAll(final Long userId) { - final User user = userQueryRepository.searchByIdWithAll(userId); - - if (isNull(user)) { - throw new CakkException(ReturnCode.NOT_EXIST_USER); - } - - return user; - } - - public List findAll() { - return userJpaRepository.findAll(); - } -} diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.java b/cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.java deleted file mode 100644 index 6c61d86e..00000000 --- a/cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.cakk.domain.base; - -import org.locationtech.jts.geom.Coordinate; -import org.locationtech.jts.geom.GeometryFactory; -import org.locationtech.jts.geom.Point; -import org.locationtech.jts.geom.PrecisionModel; - -import net.jqwik.api.Arbitraries; - -import com.navercorp.fixturemonkey.FixtureMonkey; -import com.navercorp.fixturemonkey.api.introspector.BuilderArbitraryIntrospector; -import com.navercorp.fixturemonkey.api.introspector.ConstructorPropertiesArbitraryIntrospector; -import com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector; -import com.navercorp.fixturemonkey.customizer.Values; -import com.navercorp.fixturemonkey.jakarta.validation.plugin.JakartaValidationPlugin; - -import com.cakk.common.enums.Role; -import com.cakk.common.enums.VerificationStatus; -import com.cakk.domain.mysql.bo.user.DefaultVerificationPolicy; -import com.cakk.domain.mysql.bo.user.VerificationPolicy; -import com.cakk.domain.mysql.dto.param.user.CertificationParam; -import com.cakk.domain.mysql.entity.cake.Cake; -import com.cakk.domain.mysql.entity.shop.CakeShop; -import com.cakk.domain.mysql.entity.user.BusinessInformation; -import com.cakk.domain.mysql.entity.user.User; - -public abstract class DomainTest { - - private static final int SPATIAL_REFERENCE_IDENTIFIER_NUMBER = 4326; - - private static final GeometryFactory geometryFactory = new GeometryFactory( - new PrecisionModel(), - SPATIAL_REFERENCE_IDENTIFIER_NUMBER - ); - - protected final FixtureMonkey getReflectionMonkey() { - return FixtureMonkey.builder() - .plugin(new JakartaValidationPlugin()) - .objectIntrospector(FieldReflectionArbitraryIntrospector.INSTANCE) - .build(); - } - - protected final FixtureMonkey getConstructorMonkey() { - return FixtureMonkey.builder() - .plugin(new JakartaValidationPlugin()) - .objectIntrospector(ConstructorPropertiesArbitraryIntrospector.INSTANCE) - .build(); - } - - protected final FixtureMonkey getBuilderMonkey() { - return FixtureMonkey.builder() - .plugin(new JakartaValidationPlugin()) - .objectIntrospector(BuilderArbitraryIntrospector.INSTANCE) - .build(); - } - - protected static Point supplyPointBy(Double latitude, Double longitude) { - return geometryFactory.createPoint(new Coordinate(longitude, latitude)); - } - - protected User getUserFixture(Role role) { - return getConstructorMonkey().giveMeBuilder(User.class) - .set("id", Arbitraries.longs().greaterOrEqual(10)) - .set("email", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(50)) - .set("role", role) - .sample(); - } - - protected VerificationPolicy getVerificationPolicy() { - return new DefaultVerificationPolicy(); - } - - protected CakeShop getCakeShopFixture() { - return getConstructorMonkey().giveMeBuilder(CakeShop.class) - .set("shopName", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(30)) - .set("shopBio", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(40)) - .set("shopDescription", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(500)) - .set("likeCount", 0) - .set("heartCount", 0) - .set("location", supplyPointBy( - Arbitraries.doubles().between(-90, 90).sample(), - Arbitraries.doubles().between(-180, 180).sample()) - ) - .sample(); - } - - protected BusinessInformation getBusinessInformationFixtureWithCakeShop(VerificationStatus verificationStatus) { - return getConstructorMonkey().giveMeBuilder(BusinessInformation.class) - .set("businessNumber", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(20)) - .set("cakeShop", Values.just(getCakeShopFixture())) - .set("verificationStatus", verificationStatus) - .setNull("user") - .sample(); - } - - protected CertificationParam getCertificationParamFixtureWithUser(User user) { - return getConstructorMonkey().giveMeBuilder(CertificationParam.class) - .set("businessRegistrationImageUrl", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(20)) - .set("idCardImageUrl", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(20)) - .set("cakeShopId", Arbitraries.longs().greaterOrEqual(0)) - .set("emergencyContact", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(20)) - .set("message", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(20)) - .set("user", user) - .sample(); - } - - protected Cake getCakeFixture() { - return getConstructorMonkey().giveMeBuilder(Cake.class) - .set("cakeImageUrl", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(50)) - .set("cakeShop", Values.just(getCakeShopFixture())) - .sample(); - } -} diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.kt b/cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.kt new file mode 100644 index 00000000..a41503fe --- /dev/null +++ b/cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.kt @@ -0,0 +1,101 @@ +package com.cakk.domain.base + +import com.cakk.common.enums.Role +import com.cakk.common.enums.VerificationStatus +import com.cakk.domain.mysql.bo.user.DefaultVerificationPolicy +import com.cakk.domain.mysql.bo.user.VerificationPolicy +import com.cakk.domain.mysql.dto.param.user.CertificationParam +import com.cakk.domain.mysql.entity.cake.Cake +import com.cakk.domain.mysql.entity.shop.CakeShop +import com.cakk.domain.mysql.entity.user.BusinessInformation +import com.cakk.domain.mysql.entity.user.User +import com.navercorp.fixturemonkey.FixtureMonkey +import com.navercorp.fixturemonkey.api.introspector.BuilderArbitraryIntrospector +import com.navercorp.fixturemonkey.api.introspector.ConstructorPropertiesArbitraryIntrospector +import com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector +import com.navercorp.fixturemonkey.customizer.Values +import com.navercorp.fixturemonkey.jakarta.validation.plugin.JakartaValidationPlugin +import net.jqwik.api.Arbitraries +import org.locationtech.jts.geom.Coordinate +import org.locationtech.jts.geom.GeometryFactory +import org.locationtech.jts.geom.Point +import org.locationtech.jts.geom.PrecisionModel + +abstract class DomainTest { + protected val reflectionMonkey: FixtureMonkey + protected get() = FixtureMonkey.builder() + .plugin(JakartaValidationPlugin()) + .objectIntrospector(FieldReflectionArbitraryIntrospector.INSTANCE) + .build() + protected val constructorMonkey: FixtureMonkey + protected get() = FixtureMonkey.builder() + .plugin(JakartaValidationPlugin()) + .objectIntrospector(ConstructorPropertiesArbitraryIntrospector.INSTANCE) + .build() + protected val builderMonkey: FixtureMonkey + protected get() = FixtureMonkey.builder() + .plugin(JakartaValidationPlugin()) + .objectIntrospector(BuilderArbitraryIntrospector.INSTANCE) + .build() + + protected fun getUserFixture(role: Role?): User { + return constructorMonkey.giveMeBuilder(User::class.java) + .set("id", Arbitraries.longs().greaterOrEqual(10)) + .set("email", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(50)) + .set("role", role) + .sample() + } + + protected val verificationPolicy: VerificationPolicy + protected get() = DefaultVerificationPolicy() + protected val cakeShopFixture: CakeShop + protected get() = constructorMonkey.giveMeBuilder(CakeShop::class.java) + .set("shopName", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(30)) + .set("shopBio", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(40)) + .set("shopDescription", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(500)) + .set("likeCount", 0) + .set("heartCount", 0) + .set("location", supplyPointBy( + Arbitraries.doubles().between(-90.0, 90.0).sample(), + Arbitraries.doubles().between(-180.0, 180.0).sample()) + ) + .sample() + + protected fun getBusinessInformationFixtureWithCakeShop(verificationStatus: VerificationStatus?): BusinessInformation { + return constructorMonkey.giveMeBuilder(BusinessInformation::class.java) + .set("businessNumber", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(20)) + .set("cakeShop", Values.just(cakeShopFixture)) + .set("verificationStatus", verificationStatus) + .setNull("user") + .sample() + } + + protected fun getCertificationParamFixtureWithUser(user: User?): CertificationParam { + return constructorMonkey.giveMeBuilder(CertificationParam::class.java) + .set("businessRegistrationImageUrl", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(20)) + .set("idCardImageUrl", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(20)) + .set("cakeShopId", Arbitraries.longs().greaterOrEqual(0)) + .set("emergencyContact", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(20)) + .set("message", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(20)) + .set("user", user) + .sample() + } + + protected val cakeFixture: Cake + protected get() = constructorMonkey.giveMeBuilder(Cake::class.java) + .set("cakeImageUrl", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(50)) + .set("cakeShop", Values.just(cakeShopFixture)) + .sample() + + companion object { + private const val SPATIAL_REFERENCE_IDENTIFIER_NUMBER = 4326 + private val geometryFactory = GeometryFactory( + PrecisionModel(), + SPATIAL_REFERENCE_IDENTIFIER_NUMBER + ) + + protected fun supplyPointBy(latitude: Double?, longitude: Double?): Point { + return geometryFactory.createPoint(Coordinate(longitude!!, latitude!!)) + } + } +} diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.java b/cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.java deleted file mode 100644 index 9d8942ac..00000000 --- a/cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.cakk.domain.base; - -import java.time.LocalDate; - -import org.junit.jupiter.api.extension.ExtendWith; -import org.locationtech.jts.geom.Coordinate; -import org.locationtech.jts.geom.GeometryFactory; -import org.locationtech.jts.geom.Point; -import org.locationtech.jts.geom.PrecisionModel; -import org.mockito.junit.jupiter.MockitoExtension; - -import net.jqwik.api.Arbitraries; - -import com.navercorp.fixturemonkey.FixtureMonkey; -import com.navercorp.fixturemonkey.api.introspector.BuilderArbitraryIntrospector; -import com.navercorp.fixturemonkey.api.introspector.ConstructorPropertiesArbitraryIntrospector; -import com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector; -import com.navercorp.fixturemonkey.customizer.Values; -import com.navercorp.fixturemonkey.jakarta.validation.plugin.JakartaValidationPlugin; - -import com.cakk.common.enums.Provider; -import com.cakk.common.enums.Role; -import com.cakk.domain.mysql.entity.cake.Cake; -import com.cakk.domain.mysql.entity.shop.CakeShop; -import com.cakk.domain.mysql.entity.user.User; - -@ExtendWith(MockitoExtension.class) -public abstract class FacadeTest { - - private static final int SPATIAL_REFERENCE_IDENTIFIER_NUMBER = 4326; - - private static final GeometryFactory geometryFactory = new GeometryFactory( - new PrecisionModel(), - SPATIAL_REFERENCE_IDENTIFIER_NUMBER - ); - - protected final FixtureMonkey getConstructorMonkey() { - return FixtureMonkey.builder() - .plugin(new JakartaValidationPlugin()) - .objectIntrospector(ConstructorPropertiesArbitraryIntrospector.INSTANCE) - .build(); - } - - protected final FixtureMonkey getReflectionMonkey() { - return FixtureMonkey.builder() - .plugin(new JakartaValidationPlugin()) - .objectIntrospector(FieldReflectionArbitraryIntrospector.INSTANCE) - .build(); - } - - protected final FixtureMonkey getBuilderMonkey() { - return FixtureMonkey.builder() - .plugin(new JakartaValidationPlugin()) - .objectIntrospector(BuilderArbitraryIntrospector.INSTANCE) - .build(); - } - - protected User getUserFixture(final Role role) { - return getConstructorMonkey().giveMeBuilder(User.class) - .set("id", Arbitraries.longs().greaterOrEqual(10)) - .set("provider", Arbitraries.of(Provider.class)) - .set("providerId", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) - .set("email", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) - .set("nickname", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) - .set("birthday", LocalDate.now()) - .set("role", role) - .sample(); - } - - protected Cake getCakeFixture() { - return getConstructorMonkey().giveMeBuilder(Cake.class) - .set("cakeImageUrl", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(50)) - .set("cakeShop", Values.just(getCakeShopFixture())) - .sample(); - } - - protected CakeShop getCakeShopFixture() { - return getConstructorMonkey().giveMeBuilder(CakeShop.class) - .set("shopName", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(30)) - .set("shopBio", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(40)) - .set("shopDescription", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(500)) - .set("likeCount", 0) - .set("heartCount", 0) - .set("location", supplyPointBy( - Arbitraries.doubles().between(-90, 90).sample(), - Arbitraries.doubles().between(-180, 180).sample()) - ) - .sample(); - } - - public static Point supplyPointBy(Double latitude, Double longitude) { - return geometryFactory.createPoint(new Coordinate(longitude, latitude)); - } -} diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.kt b/cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.kt new file mode 100644 index 00000000..f98ab245 --- /dev/null +++ b/cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.kt @@ -0,0 +1,87 @@ +package com.cakk.domain.base + +import com.cakk.common.enums.Provider +import com.cakk.common.enums.Role +import com.cakk.domain.mysql.entity.cake.Cake +import com.cakk.domain.mysql.entity.shop.CakeShop +import com.cakk.domain.mysql.entity.user.User +import com.navercorp.fixturemonkey.FixtureMonkey +import com.navercorp.fixturemonkey.api.introspector.BuilderArbitraryIntrospector +import com.navercorp.fixturemonkey.api.introspector.ConstructorPropertiesArbitraryIntrospector +import com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector +import com.navercorp.fixturemonkey.customizer.Values +import com.navercorp.fixturemonkey.jakarta.validation.plugin.JakartaValidationPlugin +import net.jqwik.api.Arbitraries +import org.junit.jupiter.api.extension.ExtendWith +import org.locationtech.jts.geom.Coordinate +import org.locationtech.jts.geom.GeometryFactory +import org.locationtech.jts.geom.Point +import org.locationtech.jts.geom.PrecisionModel +import org.mockito.junit.jupiter.MockitoExtension +import java.time.LocalDate + +@ExtendWith(MockitoExtension::class) +abstract class FacadeTest { + + private fun constructorMonkey(): FixtureMonkey { + return FixtureMonkey.builder() + .plugin(JakartaValidationPlugin()) + .objectIntrospector(ConstructorPropertiesArbitraryIntrospector.INSTANCE) + .build() + } + protected fun reflectionMonkey(): FixtureMonkey { + return FixtureMonkey.builder() + .plugin(JakartaValidationPlugin()) + .objectIntrospector(FieldReflectionArbitraryIntrospector.INSTANCE) + .build() + } + + protected fun builderMonkey(): FixtureMonkey { + return FixtureMonkey.builder() + .plugin(JakartaValidationPlugin()) + .objectIntrospector(BuilderArbitraryIntrospector.INSTANCE) + .build() + } + + protected fun getUserFixture(role: Role?): User { + return constructorMonkey().giveMeBuilder(User::class.java) + .set("id", Arbitraries.longs().greaterOrEqual(10)) + .set("provider", Arbitraries.of(Provider::class.java)) + .set("providerId", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) + .set("email", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) + .set("nickname", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) + .set("birthday", LocalDate.now()) + .set("role", role) + .sample() + } + + protected val cakeFixture: Cake + protected get() = constructorMonkey().giveMeBuilder(Cake::class.java) + .set("cakeImageUrl", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(50)) + .set("cakeShop", Values.just(cakeShopFixture)) + .sample() + protected val cakeShopFixture: CakeShop + protected get() = constructorMonkey().giveMeBuilder(CakeShop::class.java) + .set("shopName", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(30)) + .set("shopBio", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(40)) + .set("shopDescription", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(500)) + .set("likeCount", 0) + .set("heartCount", 0) + .set("location", supplyPointBy( + Arbitraries.doubles().between(-90.0, 90.0).sample(), + Arbitraries.doubles().between(-180.0, 180.0).sample()) + ) + .sample() + + companion object { + private const val SPATIAL_REFERENCE_IDENTIFIER_NUMBER = 4326 + private val geometryFactory = GeometryFactory( + PrecisionModel(), + SPATIAL_REFERENCE_IDENTIFIER_NUMBER + ) + + fun supplyPointBy(latitude: Double?, longitude: Double?): Point { + return geometryFactory.createPoint(Coordinate(longitude!!, latitude!!)) + } + } +} diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.java b/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.java deleted file mode 100644 index 6406ca7b..00000000 --- a/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.cakk.domain.entity.user; - -import static org.assertj.core.api.Assertions.*; - -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import net.jqwik.api.Arbitraries; - -import com.navercorp.fixturemonkey.customizer.Values; - -import com.cakk.common.enums.Role; -import com.cakk.common.enums.VerificationStatus; -import com.cakk.domain.base.DomainTest; -import com.cakk.domain.mysql.bo.user.VerificationPolicy; -import com.cakk.domain.mysql.dto.param.user.CertificationParam; -import com.cakk.domain.mysql.entity.user.BusinessInformation; -import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.event.shop.CertificationEvent; - - -class BusinessInformationTest extends DomainTest { - - private BusinessInformation getBusinessInformationFixtureWithUser(VerificationStatus verificationStatus, Role role) { - return getConstructorMonkey().giveMeBuilder(BusinessInformation.class) - .setNotNull("businessNumber") - .set("businessNumber", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(20)) - .set("cakeShop", getCakeShopFixture()) - .set("verificationStatus", verificationStatus) - .set("user", Values.just(getUserFixture(role))) - .sample(); - } - - @Test - @DisplayName("사장님 인증되지 않은 케이크 샵이 존재할 때, 가게 정보와 함께 서비스에 인증요청을 한다") - void registerCertificationInformation1() { - //given - BusinessInformation businessInformation = getBusinessInformationFixtureWithCakeShop(VerificationStatus.UNREQUESTED); - User user = getUserFixture(Role.USER); - CertificationParam param = getCertificationParamFixtureWithUser(user); - String shopName = businessInformation.getCakeShop().getShopName(); - - //when - CertificationEvent certificationEvent = businessInformation.registerCertificationInformation(param); - - //then - assertThat(businessInformation.getVerificationStatus()).isEqualTo(VerificationStatus.PENDING); - assertThat(businessInformation.getBusinessRegistrationImageUrl()).isEqualTo(param.businessRegistrationImageUrl()); - assertThat(businessInformation.getIdCardImageUrl()).isEqualTo(param.idCardImageUrl()); - assertThat(businessInformation.getEmergencyContact()).isEqualTo(param.emergencyContact()); - assertThat(certificationEvent.shopName()).isEqualTo(shopName); - } - - @Test - @DisplayName("사용자는 케이크샵의 주인으로 승격된다") - void promotedByBusinessOwner() { - //given - BusinessInformation businessInformation = getBusinessInformationFixtureWithCakeShop(VerificationStatus.PENDING); - VerificationPolicy verificationPolicy = getVerificationPolicy(); - User user = getUserFixture(Role.USER); - - //when - businessInformation.updateBusinessOwner(verificationPolicy, user); - - //then - assertThat(businessInformation.getUser()).isNotNull(); - assertThat(businessInformation.getUser().getRole()).isEqualTo(Role.USER); - assertThat(businessInformation.getVerificationStatus()).isEqualTo(VerificationStatus.APPROVED); - } - - @Test - @DisplayName("예비 사장님 여부 검사에서 인증 요청 상태라면, True를 반환한다") - void isPendingVerificationTrue() { - //given - BusinessInformation businessInformation = getBusinessInformationFixtureWithUser(VerificationStatus.PENDING, Role.USER); - VerificationPolicy verificationPolicy = getVerificationPolicy(); - - //then - assertThat(businessInformation.isBusinessOwnerCandidate(verificationPolicy)).isTrue(); - } - - @Test - @DisplayName("예비 사장님 여부 검사에서 인증 완료 상태라면, False를 반환한다") - void isPendingVerificationFalse1() { - //given - BusinessInformation businessInformation = getBusinessInformationFixtureWithUser(VerificationStatus.APPROVED, Role.USER); - VerificationPolicy verificationPolicy = getVerificationPolicy(); - - //then - assertThat(businessInformation.isBusinessOwnerCandidate(verificationPolicy)).isFalse(); - } - - @Test - @DisplayName("예비 사장님 여부 검사에서 인증 완료 상태라면, False를 반환한다") - void isPendingVerificationFalse2() { - //given - BusinessInformation businessInformation = getBusinessInformationFixtureWithUser(VerificationStatus.APPROVED, Role.USER); - VerificationPolicy verificationPolicy = getVerificationPolicy(); - - //then - assertThat(businessInformation.isBusinessOwnerCandidate(verificationPolicy)).isFalse(); - } - - @Test - @DisplayName("예비 사장님 여부 검사에서 인증 요청 상태도 아니라면, False를 반환한다") - void isPendingVerificationFalse3() { - //given - BusinessInformation businessInformation = getBusinessInformationFixtureWithUser(VerificationStatus.UNREQUESTED, Role.USER); - VerificationPolicy verificationPolicy = getVerificationPolicy(); - - //then - assertThat(businessInformation.isBusinessOwnerCandidate(verificationPolicy)).isFalse(); - } -} - diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.kt b/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.kt new file mode 100644 index 00000000..285a1f2c --- /dev/null +++ b/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.kt @@ -0,0 +1,104 @@ +package com.cakk.domain.entity.user + +import com.cakk.common.enums.Role +import com.cakk.common.enums.VerificationStatus +import com.cakk.domain.base.DomainTest +import com.cakk.domain.mysql.entity.user.BusinessInformation +import com.navercorp.fixturemonkey.customizer.Values +import net.jqwik.api.Arbitraries +import org.assertj.core.api.Assertions +import org.junit.jupiter.api.DisplayName +import org.junit.jupiter.api.Test + +internal class BusinessInformationTest : DomainTest() { + private fun getBusinessInformationFixtureWithUser(verificationStatus: VerificationStatus, role: Role): BusinessInformation { + return constructorMonkey.giveMeBuilder(BusinessInformation::class.java) + .setNotNull("businessNumber") + .set("businessNumber", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(20)) + .set("cakeShop", cakeShopFixture) + .set("verificationStatus", verificationStatus) + .set("user", Values.just(getUserFixture(role))) + .sample() + } + + @Test + @DisplayName("사장님 인증되지 않은 케이크 샵이 존재할 때, 가게 정보와 함께 서비스에 인증요청을 한다") + fun registerCertificationInformation1() { + //given + val businessInformation = getBusinessInformationFixtureWithCakeShop(VerificationStatus.UNREQUESTED) + val user = getUserFixture(Role.USER) + val param = getCertificationParamFixtureWithUser(user) + val shopName = businessInformation.cakeShop.shopName + + //when + val certificationEvent = businessInformation.registerCertificationInformation(param) + + //then + Assertions.assertThat(businessInformation.verificationStatus).isEqualTo(VerificationStatus.PENDING) + Assertions.assertThat(businessInformation.businessRegistrationImageUrl).isEqualTo(param.businessRegistrationImageUrl) + Assertions.assertThat(businessInformation.idCardImageUrl).isEqualTo(param.idCardImageUrl) + Assertions.assertThat(businessInformation.emergencyContact).isEqualTo(param.emergencyContact) + Assertions.assertThat(certificationEvent.shopName).isEqualTo(shopName) + } + + @Test + @DisplayName("사용자는 케이크샵의 주인으로 승격된다") + fun promotedByBusinessOwner() { + //given + val businessInformation = getBusinessInformationFixtureWithCakeShop(VerificationStatus.PENDING) + val verificationPolicy = verificationPolicy + val user = getUserFixture(Role.USER) + + //when + businessInformation.updateBusinessOwner(verificationPolicy, user) + + //then + Assertions.assertThat(businessInformation.user).isNotNull + Assertions.assertThat(businessInformation.user.role).isEqualTo(Role.USER) + Assertions.assertThat(businessInformation.verificationStatus).isEqualTo(VerificationStatus.APPROVED) + } + + @DisplayName("예비 사장님 여부 검사에서 인증 요청 상태라면, True를 반환한다") + @Test + fun isPendingVerificationTrue() { + //given + val businessInformation = getBusinessInformationFixtureWithUser(VerificationStatus.PENDING, Role.USER) + val verificationPolicy = verificationPolicy + + //then + Assertions.assertThat(businessInformation.isBusinessOwnerCandidate(verificationPolicy)).isTrue + } + + @DisplayName("예비 사장님 여부 검사에서 인증 완료 상태라면, False를 반환한다") + @Test + fun isPendingVerificationFalse1() { + //given + val businessInformation = getBusinessInformationFixtureWithUser(VerificationStatus.APPROVED, Role.USER) + val verificationPolicy = verificationPolicy + + //then + Assertions.assertThat(businessInformation.isBusinessOwnerCandidate(verificationPolicy)).isFalse + } + + @DisplayName("예비 사장님 여부 검사에서 인증 완료 상태라면, False를 반환한다") + @Test + fun isPendingVerificationFalse2() { + //given + val businessInformation = getBusinessInformationFixtureWithUser(VerificationStatus.APPROVED, Role.USER) + val verificationPolicy = verificationPolicy + + //then + Assertions.assertThat(businessInformation.isBusinessOwnerCandidate(verificationPolicy)).isFalse + } + + @DisplayName("예비 사장님 여부 검사에서 인증 요청 상태도 아니라면, False를 반환한다") + @Test + fun isPendingVerificationFalse3() { + //given + val businessInformation = getBusinessInformationFixtureWithUser(VerificationStatus.UNREQUESTED, Role.USER) + val verificationPolicy = verificationPolicy + + //then + Assertions.assertThat(businessInformation.isBusinessOwnerCandidate(verificationPolicy)).isFalse + } +} diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.java b/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.java deleted file mode 100644 index 383e0849..00000000 --- a/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.cakk.domain.entity.user; - -import static org.assertj.core.api.Assertions.*; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import com.cakk.common.enums.Role; -import com.cakk.common.enums.VerificationStatus; -import com.cakk.common.exception.CakkException; -import com.cakk.domain.base.DomainTest; -import com.cakk.domain.mysql.bo.user.VerificationPolicy; -import com.cakk.domain.mysql.dto.param.user.CertificationParam; -import com.cakk.domain.mysql.entity.user.BusinessInformation; -import com.cakk.domain.mysql.entity.user.User; - -public class VerificationPolicyTest extends DomainTest { - - @Test - @DisplayName("인증 정책은 사용자를 케이크샵 주인으로 승격시켜준다") - void approveToBusinessOwner() { - VerificationPolicy verificationPolicy = getVerificationPolicy(); - - VerificationStatus verificationStatus = verificationPolicy.approveToBusinessOwner(VerificationStatus.PENDING); - - assertThat(verificationStatus).isEqualTo(VerificationStatus.APPROVED); - } - - @Test - @DisplayName("인증 정책은 사용자의 권한이 BUSINESS_OWNER가 아니고 인증 진행중이라면 케이크샵 주인 후보임을 알려준다") - void isCandidate() { - VerificationPolicy verificationPolicy = getVerificationPolicy(); - - assertThat(verificationPolicy.isCandidate(VerificationStatus.PENDING)).isTrue(); - } - - @Test - @DisplayName("사장님 인증된 케이크 샵이 존재할 때, 인증 요청에 실패한다") - void registerCertificationInformation2() { - //given - VerificationPolicy verificationPolicy = getVerificationPolicy(); - BusinessInformation businessInformation = getBusinessInformationFixtureWithCakeShop(VerificationStatus.APPROVED); - User user = getUserFixture(Role.USER); - CertificationParam param = getCertificationParamFixtureWithUser(user); - - //when, then - Assertions.assertThrowsExactly(CakkException.class, - () -> verificationPolicy.requestCertificationBusinessOwner(businessInformation, param)); - } - - @Test - @DisplayName("사장님 인증 요청이 진행중일 때, 인증 요청에 실패한다") - void registerCertificationInformation3() { - //given - VerificationPolicy verificationPolicy = getVerificationPolicy(); - BusinessInformation businessInformation = getBusinessInformationFixtureWithCakeShop(VerificationStatus.PENDING); - User user = getUserFixture(Role.USER); - CertificationParam param = getCertificationParamFixtureWithUser(user); - - //when, then - Assertions.assertThrowsExactly(CakkException.class, - () -> verificationPolicy.requestCertificationBusinessOwner(businessInformation, param)); - } - - @Test - @DisplayName("사장님 인증 요청이 거절 됐을 때, 인증 요청에 실패한다") - void registerCertificationInformation4() { - //given - VerificationPolicy verificationPolicy = getVerificationPolicy(); - BusinessInformation businessInformation = getBusinessInformationFixtureWithCakeShop(VerificationStatus.REJECTED); - User user = getUserFixture(Role.USER); - CertificationParam param = getCertificationParamFixtureWithUser(user); - - //when, then - Assertions.assertThrowsExactly(CakkException.class, - () -> verificationPolicy.requestCertificationBusinessOwner(businessInformation, param)); - } -} - diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.kt b/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.kt new file mode 100644 index 00000000..24b5b52d --- /dev/null +++ b/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.kt @@ -0,0 +1,69 @@ +package com.cakk.domain.entity.user + +import com.cakk.common.enums.Role +import com.cakk.common.enums.VerificationStatus +import com.cakk.common.exception.CakkException +import com.cakk.domain.base.DomainTest +import org.assertj.core.api.Assertions +import org.junit.jupiter.api.DisplayName +import org.junit.jupiter.api.Test + +class VerificationPolicyTest : DomainTest() { + @Test + @DisplayName("인증 정책은 사용자를 케이크샵 주인으로 승격시켜준다") + fun approveToBusinessOwner() { + val verificationPolicy = verificationPolicy + val verificationStatus = verificationPolicy.approveToBusinessOwner(VerificationStatus.PENDING) + Assertions.assertThat(verificationStatus).isEqualTo(VerificationStatus.APPROVED) + } + + @get:DisplayName("인증 정책은 사용자의 권한이 BUSINESS_OWNER가 아니고 인증 진행중이라면 케이크샵 주인 후보임을 알려준다") + @get:Test + val isCandidate: Unit + get() { + val verificationPolicy = verificationPolicy + Assertions.assertThat(verificationPolicy.isCandidate(VerificationStatus.PENDING)).isTrue + } + + @Test + @DisplayName("사장님 인증된 케이크 샵이 존재할 때, 인증 요청에 실패한다") + fun registerCertificationInformation2() { + //given + val verificationPolicy = verificationPolicy + val businessInformation = getBusinessInformationFixtureWithCakeShop(VerificationStatus.APPROVED) + val user = getUserFixture(Role.USER) + val param = getCertificationParamFixtureWithUser(user) + + //when, then + org.junit.jupiter.api.Assertions.assertThrowsExactly(CakkException::class.java + ) { verificationPolicy.requestCertificationBusinessOwner(businessInformation, param) } + } + + @Test + @DisplayName("사장님 인증 요청이 진행중일 때, 인증 요청에 실패한다") + fun registerCertificationInformation3() { + //given + val verificationPolicy = verificationPolicy + val businessInformation = getBusinessInformationFixtureWithCakeShop(VerificationStatus.PENDING) + val user = getUserFixture(Role.USER) + val param = getCertificationParamFixtureWithUser(user) + + //when, then + org.junit.jupiter.api.Assertions.assertThrowsExactly(CakkException::class.java + ) { verificationPolicy.requestCertificationBusinessOwner(businessInformation, param) } + } + + @Test + @DisplayName("사장님 인증 요청이 거절 됐을 때, 인증 요청에 실패한다") + fun registerCertificationInformation4() { + //given + val verificationPolicy = verificationPolicy + val businessInformation = getBusinessInformationFixtureWithCakeShop(VerificationStatus.REJECTED) + val user = getUserFixture(Role.USER) + val param = getCertificationParamFixtureWithUser(user) + + //when, then + org.junit.jupiter.api.Assertions.assertThrowsExactly(CakkException::class.java + ) { verificationPolicy.requestCertificationBusinessOwner(businessInformation, param) } + } +} From 18d81969ff7880005a2c0fc0b1383fbd95b4413d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Sun, 15 Sep 2024 19:48:17 +0900 Subject: [PATCH 03/18] =?UTF-8?q?Refactor=20|=20CAKK-82=20|=20Reader?= =?UTF-8?q?=EC=97=90=20=EB=8C=80=ED=95=B4=20ReadFacade=EB=A1=9C=20?= =?UTF-8?q?=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cake/BusinessInformationReadFacade.kt | 23 ++++++---- .../cakk/core/facade/cake/CakeReadFacade.kt | 42 +++++++++++++------ .../core/facade/cake/CakeShopReadFacade.kt | 31 ++++++++++---- .../facade/cake/CakeShopUserReadFacade.kt | 23 ++++++++-- .../com/cakk/core/facade/tag/TagReadFacade.kt | 24 ++++++----- .../cakk/core/facade/user/UserReadFacade.kt | 29 +++++++------ 6 files changed, 118 insertions(+), 54 deletions(-) diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt index a1365b21..89172a28 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt @@ -1,16 +1,22 @@ package com.cakk.core.facade.cake -import com.cakk.domain.mysql.annotation.Reader +import com.cakk.common.enums.ReturnCode +import com.cakk.common.enums.VerificationStatus +import com.cakk.common.exception.CakkException +import com.cakk.core.annotation.DomainFacade +import com.cakk.domain.mysql.entity.user.BusinessInformation import com.cakk.domain.mysql.entity.user.User -import java.util.function.Supplier +import com.cakk.domain.mysql.repository.jpa.BusinessInformationJpaRepository -class BusinessInformationReader { - private val businessInformationJpaRepository: BusinessInformationJpaRepository? = null - fun isExistBusinessInformation(owner: User?, cakeShopId: Long?): Boolean { +@DomainFacade +class BusinessInformationReadFacade( + private val businessInformationJpaRepository: BusinessInformationJpaRepository +) { + fun isExistBusinessInformation(owner: User, cakeShopId: Long): Boolean { return businessInformationJpaRepository.existsBusinessInformationByUserAndCakeShop_Id(owner, cakeShopId) } - fun findAllWithCakeShopByUser(owner: User?): List { + fun findAllWithCakeShopByUser(owner: User): List { return businessInformationJpaRepository.findAllWithCakeShopByUser(owner) } @@ -18,8 +24,7 @@ class BusinessInformationReader { return businessInformationJpaRepository.findAllCakeShopBusinessOwnerCandidates(VerificationStatus.PENDING) } - fun findByUserId(userId: Long?): BusinessInformation { - return businessInformationJpaRepository.findBusinessInformationByUserId(userId) - .orElseThrow(Supplier { CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) }) + fun findByUserId(userId: Long): BusinessInformation { + return businessInformationJpaRepository.findBusinessInformationByUserId(userId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) } } diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt index cb029dff..d962f502 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt @@ -1,16 +1,30 @@ package com.cakk.core.facade.cake -import com.cakk.domain.mysql.annotation.Reader +import com.cakk.common.enums.CakeDesignCategory +import com.cakk.common.enums.ReturnCode +import com.cakk.common.exception.CakkException +import com.cakk.core.annotation.DomainFacade +import com.cakk.domain.mysql.dto.param.cake.CakeDetailParam +import com.cakk.domain.mysql.dto.param.cake.CakeImageResponseParam +import com.cakk.domain.mysql.dto.param.cake.CakeSearchParam +import com.cakk.domain.mysql.entity.cake.Cake +import com.cakk.domain.mysql.entity.cake.CakeCategory import com.cakk.domain.mysql.entity.user.User +import com.cakk.domain.mysql.repository.jpa.CakeCategoryJpaRepository +import com.cakk.domain.mysql.repository.jpa.CakeJpaRepository +import com.cakk.domain.mysql.repository.query.CakeQueryRepository import java.util.* import java.util.function.Supplier -class CakeReader { - private val cakeJpaRepository: CakeJpaRepository? = null - private val cakeQueryRepository: CakeQueryRepository? = null - fun findById(cakeId: Long?): Cake { - return cakeJpaRepository.findById(cakeId).orElseThrow(Supplier { CakkException(ReturnCode.NOT_EXIST_CAKE) }) - } +@DomainFacade +class CakeReadFacade( + private val cakeJpaRepository: CakeJpaRepository, + private val cakeCategoryJpaRepository: CakeCategoryJpaRepository, + private val cakeQueryRepository: CakeQueryRepository +) { + fun findById(cakeId: Long): Cake { + return cakeJpaRepository.findById(cakeId).orElseThrow { CakkException(ReturnCode.NOT_EXIST_CAKE) } + } fun findByIdWithHeart(cakeId: Long?): Cake { val cake: Cake = cakeQueryRepository.searchByIdWithHeart(cakeId) @@ -21,9 +35,9 @@ class CakeReader { } fun searchCakeImagesByCursorAndCategory( - cakeId: Long?, - category: CakeDesignCategory?, - pageSize: Int + cakeId: Long?, + category: CakeDesignCategory, + pageSize: Int ): List { return cakeQueryRepository.searchCakeImagesByCursorAndCategory(cakeId, category, pageSize) } @@ -51,8 +65,8 @@ class CakeReader { fun findWithCakeTagsAndCakeCategories(cakeId: Long?, owner: User?): Cake { return cakeQueryRepository.searchWithCakeTagsAndCakeCategories(cakeId, owner) - .orElseThrow(Supplier { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) }) - } + .orElseThrow { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) } + } fun searchCakeDetailById(cakeId: Long?): CakeDetailParam { val param: CakeDetailParam = cakeQueryRepository.searchCakeDetailById(cakeId) @@ -61,4 +75,8 @@ class CakeReader { } return param } + + fun findByCakeId(cakeId: Long?): CakeCategory { + return cakeCategoryJpaRepository.findByCakeId(cakeId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_CATEGORY) + } } diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt index 0870002f..78e82a41 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt @@ -2,23 +2,32 @@ package com.cakk.core.facade.cake import com.cakk.common.enums.ReturnCode import com.cakk.common.exception.CakkException +import com.cakk.core.annotation.DomainFacade +import com.cakk.domain.mysql.bo.shop.CakeShopByLocationParam import com.cakk.domain.mysql.dto.param.shop.CakeShopDetailParam import com.cakk.domain.mysql.dto.param.shop.CakeShopInfoParam +import com.cakk.domain.mysql.dto.param.shop.CakeShopSearchParam import com.cakk.domain.mysql.dto.param.shop.CakeShopSimpleParam import com.cakk.domain.mysql.entity.shop.CakeShop +import com.cakk.domain.mysql.entity.shop.CakeShopLink +import com.cakk.domain.mysql.entity.shop.CakeShopOperation import com.cakk.domain.mysql.entity.user.BusinessInformation import com.cakk.domain.mysql.entity.user.User import com.cakk.domain.mysql.repository.jpa.BusinessInformationJpaRepository import com.cakk.domain.mysql.repository.jpa.CakeShopJpaRepository +import com.cakk.domain.mysql.repository.jpa.CakeShopLinkJpaRepository +import com.cakk.domain.mysql.repository.jpa.CakeShopOperationJpaRepository import com.cakk.domain.mysql.repository.query.CakeShopQueryRepository import org.locationtech.jts.geom.Point import java.util.* import java.util.function.Supplier - -class CakeShopReader( +@DomainFacade +class CakeShopReadFacade( private val cakeShopJpaRepository: CakeShopJpaRepository, private val cakeShopQueryRepository: CakeShopQueryRepository, + private val cakeShopOperationJpaRepository: CakeShopOperationJpaRepository, + private val cakeShopLinkJpaRepository: CakeShopLinkJpaRepository, private val businessInformationJpaRepository: BusinessInformationJpaRepository ) { fun findById(cakeShopId: Long): CakeShop { @@ -65,14 +74,12 @@ class CakeShopReader( return response } - fun findBusinessInformationWithShop(cakeShopId: Long?): BusinessInformation { - return businessInformationJpaRepository.findBusinessInformationWithCakeShop(cakeShopId) - .{ throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) } + fun findBusinessInformationWithShop(cakeShopId: Long): BusinessInformation { + return businessInformationJpaRepository.findBusinessInformationWithCakeShop(cakeShopId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) } - fun findBusinessInformationByCakeShopId(cakeShopId: Long?): BusinessInformation { - return businessInformationJpaRepository.findBusinessInformationWithCakeShop(cakeShopId) - .orElseThrow(Supplier { CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) }) + fun findBusinessInformationByCakeShopId(cakeShopId: Long): BusinessInformation { + return businessInformationJpaRepository.findBusinessInformationWithCakeShop(cakeShopId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) } fun searchShopByLocationBased(point: Point?, distance: Double?): List { @@ -106,4 +113,12 @@ class CakeShopReader( fun searchShopsByShopIds(shopIds: List?): List { return cakeShopQueryRepository.searchByShopIds(shopIds) } + + fun findCakeShopsByCakeShopId(cakeShopId: Long): List { + return cakeShopOperationJpaRepository.findAllByCakeShopId(cakeShopId) + } + + fun findCakeShopLinksByCakeShopId(cakeShopId: Long): List { + return cakeShopLinkJpaRepository.findAllByCakeShopId(cakeShopId) + } } diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt index c1b8e206..1321241d 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt @@ -1,10 +1,19 @@ package com.cakk.core.facade.cake +import com.cakk.core.annotation.DomainFacade +import com.cakk.domain.mysql.dto.param.like.HeartCakeImageResponseParam +import com.cakk.domain.mysql.dto.param.like.HeartCakeShopResponseParam +import com.cakk.domain.mysql.repository.jpa.CakeShopHeartJpaRepository +import com.cakk.domain.mysql.repository.query.CakeHeartQueryRepository +import com.cakk.domain.mysql.repository.query.CakeShopHeartQueryRepository -class CakeShopHeartReader { - private val cakeShopHeartQueryRepository: CakeShopHeartQueryRepository? = null - private val cakeShopHeartJpaRepository: CakeShopHeartJpaRepository? = null +@DomainFacade +class CakeShopUserReadFacade( + private val cakeShopHeartQueryRepository: CakeShopHeartQueryRepository, + private val cakeShopHeartJpaRepository: CakeShopHeartJpaRepository, + private val cakeHeartQueryRepository: CakeHeartQueryRepository +) { fun searchAllByCursorAndHeart( cakeShopHeartId: Long?, userId: Long?, @@ -13,4 +22,12 @@ class CakeShopHeartReader { val cakeShopHeartIds: List = cakeShopHeartQueryRepository.searchIdsByCursorAndHeart(cakeShopHeartId, userId, pageSize) return cakeShopHeartQueryRepository.searchAllByCursorAndHeart(cakeShopHeartIds) } + + fun searchCakeImagesByCursorAndHeart( + cakeHeartId: Long?, + userId: Long?, + pageSize: Int + ): List { + return cakeHeartQueryRepository.searchCakeImagesByCursorAndHeart(cakeHeartId, userId, pageSize) + } } diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt index b257e7cf..37b6a075 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt @@ -1,20 +1,24 @@ package com.cakk.core.facade.tag -import com.cakk.domain.mysql.annotation.Reader +import com.cakk.core.annotation.DomainFacade import com.cakk.domain.mysql.entity.cake.Tag +import com.cakk.domain.mysql.mapper.TagMapper +import com.cakk.domain.mysql.repository.jpa.TagJpaRepository + +@DomainFacade +class TagReadFacade( + private val tagJpaRepository: TagJpaRepository +) { -class TagReader { - private val tagJpaRepository: TagJpaRepository? = null fun getTagsByTagName(tagNames: List): List { val tags: List = tagJpaRepository.findTagsByTagNameIsIn(tagNames) return tagNames.stream() - .map { tagName: String -> + .map { tagName: String -> tags - .stream() - .filter { tag: Tag -> tag.tagName == tagName } - .findAny() - .orElse(tagJpaRepository.save(TagMapper.supplyTagBy(tagName))) - } - .toList() + .stream() + .filter { tag: Tag -> tag.tagName == tagName } + .findAny() + .orElse(tagJpaRepository.save(TagMapper.supplyTagBy(tagName))) + }.toList() } } diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt index d257c7d0..dcba662a 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt @@ -1,24 +1,29 @@ package com.cakk.core.facade.user -import com.cakk.domain.mysql.annotation.Reader +import com.cakk.common.enums.ReturnCode +import com.cakk.common.exception.CakkException +import com.cakk.core.annotation.DomainFacade import com.cakk.domain.mysql.entity.user.User +import com.cakk.domain.mysql.repository.jpa.UserJpaRepository +import com.cakk.domain.mysql.repository.query.UserQueryRepository import java.util.* -import java.util.function.Supplier -class UserReader { - private val userJpaRepository: UserJpaRepository? = null - private val userQueryRepository: UserQueryRepository? = null - fun findByUserId(userId: Long?): User { - return userJpaRepository.findById(userId).orElseThrow(Supplier { CakkException(ReturnCode.NOT_EXIST_USER) }) - } +@DomainFacade +class UserReadFacade( + private val userJpaRepository: UserJpaRepository, + private val userQueryRepository: UserQueryRepository +) { + fun findByUserId(userId: Long): User { + return userJpaRepository.findById(userId).orElseThrow { CakkException(ReturnCode.NOT_EXIST_USER) } + } - fun findByProviderId(providerId: String?): User { - return userJpaRepository.findByProviderId(providerId).orElseThrow(Supplier { CakkException(ReturnCode.NOT_EXIST_USER) }) - } + fun findByProviderId(providerId: String): User { + return userJpaRepository.findByProviderId(providerId) ?: throw CakkException(ReturnCode.NOT_EXIST_USER) + } - fun findByIdWithAll(userId: Long?): User { + fun findByIdWithAll(userId: Long): User { val user: User = userQueryRepository.searchByIdWithAll(userId) if (Objects.isNull(user)) { throw CakkException(ReturnCode.NOT_EXIST_USER) From 962881e13088490d46fe4ebecbc87ecf565d1929 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Sun, 15 Sep 2024 20:08:16 +0900 Subject: [PATCH 04/18] =?UTF-8?q?Refactor=20|=20CAKK-82=20|=20Service=20La?= =?UTF-8?q?yer=EC=97=90=EC=84=9C=20=EC=B0=B8=EC=A1=B0=20Read=20Facade?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BusinessInformationService.kt | 20 +++---- .../com/cakk/admin/service/CakeService.kt | 14 ++--- .../com/cakk/admin/service/ShopService.kt | 12 ++-- .../java/com/cakk/api/mapper/ShopMapper.java | 4 +- .../cakk/api/service/cake/CakeService.java | 37 ++++++------ .../cakk/api/service/like/HeartService.java | 26 ++++----- .../cakk/api/service/like/LikeService.java | 5 +- .../cakk/api/service/shop/ShopService.java | 58 +++++++++---------- .../cakk/api/service/user/SignService.java | 5 +- .../cakk/api/service/user/UserService.java | 10 ++-- .../cakk/api/service/views/ViewsService.java | 6 +- 11 files changed, 100 insertions(+), 97 deletions(-) diff --git a/cakk-admin/src/main/kotlin/com/cakk/admin/service/BusinessInformationService.kt b/cakk-admin/src/main/kotlin/com/cakk/admin/service/BusinessInformationService.kt index e948fede..4a5aa868 100644 --- a/cakk-admin/src/main/kotlin/com/cakk/admin/service/BusinessInformationService.kt +++ b/cakk-admin/src/main/kotlin/com/cakk/admin/service/BusinessInformationService.kt @@ -4,34 +4,34 @@ import com.cakk.admin.dto.request.PromotionRequest import com.cakk.admin.dto.response.CakeShopOwnerCandidateResponse import com.cakk.admin.dto.response.CakeShopOwnerCandidatesResponse import com.cakk.admin.mapper.* +import com.cakk.core.facade.cake.BusinessInformationReadFacade +import com.cakk.core.facade.cake.CakeShopReadFacade +import com.cakk.core.facade.user.UserReadFacade import com.cakk.domain.mysql.bo.user.VerificationPolicy import com.cakk.domain.mysql.entity.user.BusinessInformation import com.cakk.domain.mysql.entity.user.User -import com.cakk.domain.mysql.repository.reader.BusinessInformationReader -import com.cakk.domain.mysql.repository.reader.CakeShopReader -import com.cakk.domain.mysql.repository.reader.UserReader import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional @Service class BusinessInformationService( - private val businessInformationReader: BusinessInformationReader, - private val userReader: UserReader, - private val cakeShopReader: CakeShopReader, + private val businessInformationReadFacade: BusinessInformationReadFacade, + private val userReadFacade: UserReadFacade, + private val cakeShopReadFacade: CakeShopReadFacade, private val verificationPolicy: VerificationPolicy, ) { @Transactional fun promoteUserToBusinessOwner(dto: PromotionRequest) { - val user: User = userReader.findByUserId(dto.userId) - val businessInformation: BusinessInformation = cakeShopReader.findBusinessInformationWithShop(dto.cakeShopId) + val user: User = userReadFacade.findByUserId(dto.userId) + val businessInformation: BusinessInformation = cakeShopReadFacade.findBusinessInformationWithShop(dto.cakeShopId) businessInformation.updateBusinessOwner(verificationPolicy, user) } @Transactional(readOnly = true) fun getBusinessOwnerCandidates(): CakeShopOwnerCandidatesResponse { - var businessInformationList = businessInformationReader.findAllCakeShopBusinessOwnerCandidates() + var businessInformationList = businessInformationReadFacade.findAllCakeShopBusinessOwnerCandidates() businessInformationList = businessInformationList .filter { it.isBusinessOwnerCandidate(verificationPolicy) } @@ -42,7 +42,7 @@ class BusinessInformationService( @Transactional(readOnly = true) fun getCandidateInformation(userId: Long): CakeShopOwnerCandidateResponse { - val businessInformation = businessInformationReader.findByUserId(userId) + val businessInformation = businessInformationReadFacade.findByUserId(userId) return supplyCakeShopOwnerCandidateResponseBy(businessInformation) } diff --git a/cakk-admin/src/main/kotlin/com/cakk/admin/service/CakeService.kt b/cakk-admin/src/main/kotlin/com/cakk/admin/service/CakeService.kt index c7cfa73e..e45fe772 100644 --- a/cakk-admin/src/main/kotlin/com/cakk/admin/service/CakeService.kt +++ b/cakk-admin/src/main/kotlin/com/cakk/admin/service/CakeService.kt @@ -6,21 +6,21 @@ import org.springframework.transaction.annotation.Transactional import com.cakk.admin.dto.param.CakeCreateByAdminParam import com.cakk.admin.dto.param.CakeUpdateByAdminParam import com.cakk.core.facade.cake.CakeManageFacade +import com.cakk.core.facade.cake.CakeReadFacade +import com.cakk.core.facade.cake.CakeShopReadFacade import com.cakk.core.facade.tag.TagManageFacade -import com.cakk.domain.mysql.repository.reader.CakeReader -import com.cakk.domain.mysql.repository.reader.CakeShopReader @Service class CakeService( - private val cakeShopReader: CakeShopReader, - private val cakeReader: CakeReader, + private val cakeReadFacade: CakeReadFacade, + private val cakeShopReadFacade: CakeShopReadFacade, private val tagManageFacade: TagManageFacade, private val cakeManageFacade: CakeManageFacade ) { @Transactional fun createCake(dto: CakeCreateByAdminParam) { - val cakeShop = cakeShopReader.findById(dto.cakeShopId) + val cakeShop = cakeShopReadFacade.findById(dto.cakeShopId) val cake = dto.cake val tags = dto.tagNames.map { tagManageFacade.create(it) }.toMutableList() @@ -29,7 +29,7 @@ class CakeService( @Transactional fun updateCake(dto: CakeUpdateByAdminParam) { - val cake = cakeReader.findById(dto.cakeId) + val cake = cakeReadFacade.findById(dto.cakeId) val tags = dto.tagNames.map { tagManageFacade.create(it) }.toMutableList() cakeManageFacade.update(cake, dto.cakeImageUrl, tags, dto.cakeCategories) @@ -37,7 +37,7 @@ class CakeService( @Transactional fun deleteCake(cakeId: Long) { - val cake = cakeReader.findById(cakeId) + val cake = cakeReadFacade.findById(cakeId) cakeManageFacade.delete(cake) } diff --git a/cakk-admin/src/main/kotlin/com/cakk/admin/service/ShopService.kt b/cakk-admin/src/main/kotlin/com/cakk/admin/service/ShopService.kt index 7f6d52dc..9e12ec4d 100644 --- a/cakk-admin/src/main/kotlin/com/cakk/admin/service/ShopService.kt +++ b/cakk-admin/src/main/kotlin/com/cakk/admin/service/ShopService.kt @@ -6,17 +6,17 @@ import org.springframework.transaction.annotation.Transactional import com.cakk.admin.dto.param.CakeShopCreateByAdminParam import com.cakk.admin.dto.response.CakeShopCreateResponse import com.cakk.admin.mapper.supplyCakeShopCreateResponseBy +import com.cakk.core.facade.cake.CakeShopReadFacade import com.cakk.core.facade.shop.CakeShopManageFacade import com.cakk.domain.mysql.dto.param.link.UpdateLinkParam import com.cakk.domain.mysql.dto.param.operation.UpdateShopOperationParam import com.cakk.domain.mysql.dto.param.shop.CakeShopUpdateParam import com.cakk.domain.mysql.dto.param.shop.UpdateShopAddressParam import com.cakk.domain.mysql.entity.shop.CakeShop -import com.cakk.domain.mysql.repository.reader.CakeShopReader @Service class ShopService( - private val cakeShopReader: CakeShopReader, + private val cakeShopReadFacade: CakeShopReadFacade, private val cakeShopManageFacade: CakeShopManageFacade ) { @@ -34,25 +34,25 @@ class ShopService( @Transactional fun updateBasicInformation(dto: CakeShopUpdateParam) { - val cakeShop = cakeShopReader.findById(dto.cakeShopId) + val cakeShop = cakeShopReadFacade.findById(dto.cakeShopId) cakeShop.updateBasicInformation(dto) } @Transactional fun updateShopLinks(param: UpdateLinkParam) { - val cakeShop = cakeShopReader.findById(param.cakeShopId) + val cakeShop = cakeShopReadFacade.findById(param.cakeShopId) cakeShop.updateShopLinks(param.cakeShopLinks) } @Transactional fun updateShopOperationDays(param: UpdateShopOperationParam) { - val cakeShop = cakeShopReader.findById(param.cakeShopId) + val cakeShop = cakeShopReadFacade.findById(param.cakeShopId) cakeShop.updateShopOperationDays(param.cakeShopOperations) } @Transactional fun updateShopAddress(param: UpdateShopAddressParam) { - val cakeShop = cakeShopReader.findById(param.cakeShopId) + val cakeShop = cakeShopReadFacade.findById(param.cakeShopId) cakeShop.updateShopAddress(param) } } diff --git a/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java b/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java index 28123cd8..fdf340bf 100644 --- a/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java +++ b/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java @@ -22,8 +22,8 @@ import com.cakk.api.dto.response.shop.CakeShopSearchResponse; import com.cakk.api.dto.response.shop.CakeShopSimpleResponse; import com.cakk.domain.mysql.dto.param.like.HeartCakeShopResponseParam; -import com.cakk.domain.mysql.dto.param.shop.CakeShopByLocationParam; -import com.cakk.domain.mysql.dto.param.shop.CakeShopBySearchParam; +import com.cakk.domain.mysql.bo.shop.CakeShopByLocationParam; +import com.cakk.domain.mysql.bo.shop.CakeShopBySearchParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopDetailParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopInfoParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopLocationResponseParam; diff --git a/cakk-api/src/main/java/com/cakk/api/service/cake/CakeService.java b/cakk-api/src/main/java/com/cakk/api/service/cake/CakeService.java index c028c6af..8fb12b37 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/cake/CakeService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/cake/CakeService.java @@ -19,6 +19,9 @@ import com.cakk.api.dto.response.cake.CakeImageListResponse; import com.cakk.api.mapper.CakeMapper; import com.cakk.core.facade.cake.CakeManageFacade; +import com.cakk.core.facade.cake.CakeReadFacade; +import com.cakk.core.facade.cake.CakeShopReadFacade; +import com.cakk.core.facade.tag.TagReadFacade; import com.cakk.domain.mysql.dto.param.cake.CakeCreateParam; import com.cakk.domain.mysql.dto.param.cake.CakeDetailParam; import com.cakk.domain.mysql.dto.param.cake.CakeImageResponseParam; @@ -38,30 +41,30 @@ @RequiredArgsConstructor public class CakeService { - private final CakeReader cakeReader; - private final TagReader tagReader; - private final CakeShopReader cakeShopReader; + private final CakeReadFacade cakeReadFacade; + private final TagReadFacade tagReadFacade; + private final CakeShopReadFacade cakeShopReadFacade; private final CakeViewsRedisRepository cakeViewsRedisRepository; private final CakeManageFacade cakeManageFacade; private final ApplicationEventPublisher publisher; public CakeImageListResponse findCakeImagesByCursorAndCategory(final CakeSearchByCategoryRequest dto) { final List cakeImages - = cakeReader.searchCakeImagesByCursorAndCategory(dto.cakeId(), dto.category(), dto.pageSize()); + = cakeReadFacade.searchCakeImagesByCursorAndCategory(dto.cakeId(), dto.category(), dto.pageSize()); return CakeMapper.supplyCakeImageListResponse(cakeImages); } public CakeImageListResponse findCakeImagesByCursorAndCakeShopId(final CakeSearchByShopRequest dto) { final List cakeImages - = cakeReader.searchCakeImagesByCursorAndCakeShopId(dto.cakeId(), dto.cakeShopId(), dto.pageSize()); + = cakeReadFacade.searchCakeImagesByCursorAndCakeShopId(dto.cakeId(), dto.cakeShopId(), dto.pageSize()); return CakeMapper.supplyCakeImageListResponse(cakeImages); } public CakeImageListResponse findCakeImagesByCursorAndSearch(final CakeSearchByLocationRequest dto) { final List cakeImages - = cakeReader.searchCakeImagesByCursorAndSearchKeyword(dto.toParam()); + = cakeReadFacade.searchCakeImagesByCursorAndSearchKeyword(dto.toParam()); final IncreaseSearchCountEvent event = new IncreaseSearchCountEvent(dto.keyword()); publisher.publishEvent(event); @@ -78,39 +81,39 @@ public CakeImageListResponse searchCakeImagesByCursorAndViews(final CakeSearchBy return CakeMapper.supplyCakeImageListResponse(List.of(), cakeIds); } - final List cakeImages = cakeReader.searchCakeImagesByCakeIds(cakeIds); + final List cakeImages = cakeReadFacade.searchCakeImagesByCakeIds(cakeIds); return CakeMapper.supplyCakeImageListResponse(cakeImages, cakeIds); } public CakeDetailResponse findCakeDetailById(Long cakeId) { - final CakeDetailParam cake = cakeReader.searchCakeDetailById(cakeId); + final CakeDetailParam cake = cakeReadFacade.searchCakeDetailById(cakeId); return CakeMapper.cakeDetailResponseFromParam(cake); } @Transactional public void createCake(CakeCreateParam param) { - final CakeShop cakeShop = cakeShopReader.searchByIdAndOwner(param.cakeShopId, param.owner); - final Cake cake = param.cake; - final List tags = tagReader.getTagsByTagName(param.tagNames); - final List cakeCategories = param.cakeCategories; + final CakeShop cakeShop = cakeShopReadFacade.searchByIdAndOwner(param.getCakeShopId(), param.getOwner()); + final Cake cake = param.getCake(); + final List tags = tagReadFacade.getTagsByTagName(param.getTagNames()); + final List cakeCategories = param.getCakeCategories(); cakeManageFacade.create(cakeShop, cake, tags, cakeCategories); } @Transactional public void updateCake(CakeUpdateParam param) { - final Cake cake = cakeReader.findWithCakeTagsAndCakeCategories(param.cakeId, param.owner); - final List tags = tagReader.getTagsByTagName(param.tagNames); - final String cakeImageUrl = param.cakeImageUrl; - final List cakeCategories = param.cakeCategories; + final Cake cake = cakeReadFacade.findWithCakeTagsAndCakeCategories(param.getCakeId(), param.getOwner()); + final List tags = tagReadFacade.getTagsByTagName(param.getTagNames()); + final String cakeImageUrl = param.getCakeImageUrl(); + final List cakeCategories = param.getCakeCategories(); cakeManageFacade.update(cake, cakeImageUrl, tags, cakeCategories); } @Transactional public void deleteCake(User owner, Long cakeId) { - final Cake cake = cakeReader.findWithCakeTagsAndCakeCategories(cakeId, owner); + final Cake cake = cakeReadFacade.findWithCakeTagsAndCakeCategories(cakeId, owner); cakeManageFacade.delete(cake); } diff --git a/cakk-api/src/main/java/com/cakk/api/service/like/HeartService.java b/cakk-api/src/main/java/com/cakk/api/service/like/HeartService.java index 6b38c724..56f213bd 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/like/HeartService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/like/HeartService.java @@ -16,25 +16,23 @@ import com.cakk.api.mapper.CakeMapper; import com.cakk.api.mapper.HeartMapper; import com.cakk.api.mapper.ShopMapper; +import com.cakk.core.facade.cake.CakeReadFacade; +import com.cakk.core.facade.cake.CakeShopReadFacade; +import com.cakk.core.facade.cake.CakeShopUserReadFacade; import com.cakk.core.facade.user.UserHeartFacade; import com.cakk.domain.mysql.dto.param.like.HeartCakeImageResponseParam; import com.cakk.domain.mysql.dto.param.like.HeartCakeShopResponseParam; import com.cakk.domain.mysql.entity.cake.Cake; import com.cakk.domain.mysql.entity.shop.CakeShop; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.CakeHeartReader; -import com.cakk.domain.mysql.repository.reader.CakeReader; -import com.cakk.domain.mysql.repository.reader.CakeShopHeartReader; -import com.cakk.domain.mysql.repository.reader.CakeShopReader; @RequiredArgsConstructor @Service public class HeartService { - private final CakeReader cakeReader; - private final CakeShopReader cakeShopReader; - private final CakeHeartReader cakeHeartReader; - private final CakeShopHeartReader cakeShopHeartReader; + private final CakeReadFacade cakeReadFacade; + private final CakeShopReadFacade cakeShopReadFacade; + private final CakeShopUserReadFacade cakeShopUserReadFacade; private final UserHeartFacade userHeartFacade; @Transactional(readOnly = true) @@ -42,7 +40,7 @@ public HeartCakeImageListResponse searchCakeImagesByCursorAndHeart( final HeartCakeSearchRequest dto, final User signInUser ) { - final List cakeImages = cakeHeartReader.searchCakeImagesByCursorAndHeart( + final List cakeImages = cakeShopUserReadFacade.searchCakeImagesByCursorAndHeart( dto.cakeHeartId(), signInUser.getId(), dto.pageSize() @@ -56,7 +54,7 @@ public HeartCakeShopListResponse searchCakeShopByCursorAndHeart( final HeartCakeShopSearchRequest dto, final User signInUser ) { - final List cakeShops = cakeShopHeartReader.searchAllByCursorAndHeart( + final List cakeShops = cakeShopUserReadFacade.searchAllByCursorAndHeart( dto.cakeShopHeartId(), signInUser.getId(), dto.pageSize() @@ -67,7 +65,7 @@ public HeartCakeShopListResponse searchCakeShopByCursorAndHeart( @Transactional(readOnly = true) public HeartResponse isHeartCake(final User user, final Long cakeId) { - final Cake cake = cakeReader.findByIdWithHeart(cakeId); + final Cake cake = cakeReadFacade.findByIdWithHeart(cakeId); final boolean isHeart = cake.isHeartedBy(user); return HeartMapper.supplyHeartResponseBy(isHeart); @@ -75,7 +73,7 @@ public HeartResponse isHeartCake(final User user, final Long cakeId) { @Transactional(readOnly = true) public HeartResponse isHeartCakeShop(final User user, final Long cakeShopId) { - final CakeShop cakeShop = cakeShopReader.findByIdWithHeart(cakeShopId); + final CakeShop cakeShop = cakeShopReadFacade.findByIdWithHeart(cakeShopId); final boolean isHeart = cakeShop.isHeartedBy(user); return HeartMapper.supplyHeartResponseBy(isHeart); @@ -83,14 +81,14 @@ public HeartResponse isHeartCakeShop(final User user, final Long cakeShopId) { @DistributedLock(key = "#cakeId") public void heartCake(final User user, final Long cakeId) { - final Cake cake = cakeReader.findByIdWithHeart(cakeId); + final Cake cake = cakeReadFacade.findByIdWithHeart(cakeId); userHeartFacade.heartCake(user, cake); } @DistributedLock(key = "#cakeShopId") public void heartCakeShop(final User user, final Long cakeShopId) { - final CakeShop cakeShop = cakeShopReader.findByIdWithHeart(cakeShopId); + final CakeShop cakeShop = cakeShopReadFacade.findByIdWithHeart(cakeShopId); userHeartFacade.heartCakeShop(user, cakeShop); } diff --git a/cakk-api/src/main/java/com/cakk/api/service/like/LikeService.java b/cakk-api/src/main/java/com/cakk/api/service/like/LikeService.java index 5a78592a..c167520c 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/like/LikeService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/like/LikeService.java @@ -5,6 +5,7 @@ import lombok.RequiredArgsConstructor; import com.cakk.api.annotation.DistributedLock; +import com.cakk.core.facade.cake.CakeShopReadFacade; import com.cakk.core.facade.user.UserLikeFacade; import com.cakk.domain.mysql.entity.shop.CakeShop; import com.cakk.domain.mysql.entity.user.User; @@ -14,12 +15,12 @@ @RequiredArgsConstructor public class LikeService { - private final CakeShopReader cakeShopReader; + private final CakeShopReadFacade cakeShopReadFacade; private final UserLikeFacade userCakeFacade; @DistributedLock(key = "#cakeShopId") public void likeCakeShop(final User user, final Long cakeShopId) { - final CakeShop cakeShop = cakeShopReader.findByIdWithLike(cakeShopId); + final CakeShop cakeShop = cakeShopReadFacade.findByIdWithLike(cakeShopId); userCakeFacade.likeCakeShop(user, cakeShop); } diff --git a/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java b/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java index ead1a78a..f5635b80 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java @@ -32,13 +32,16 @@ import com.cakk.api.mapper.LinkMapper; import com.cakk.api.mapper.PointMapper; import com.cakk.api.mapper.ShopMapper; +import com.cakk.core.facade.cake.BusinessInformationReadFacade; +import com.cakk.core.facade.cake.CakeShopReadFacade; import com.cakk.core.facade.shop.CakeShopManageFacade; -import com.cakk.domain.mysql.bo.CakeShops; +import com.cakk.core.facade.user.UserReadFacade; +import com.cakk.domain.mysql.bo.shop.CakeShops; import com.cakk.domain.mysql.bo.user.VerificationPolicy; import com.cakk.domain.mysql.dto.param.link.UpdateLinkParam; import com.cakk.domain.mysql.dto.param.operation.UpdateShopOperationParam; -import com.cakk.domain.mysql.dto.param.shop.CakeShopByLocationParam; -import com.cakk.domain.mysql.dto.param.shop.CakeShopBySearchParam; +import com.cakk.domain.mysql.bo.shop.CakeShopByLocationParam; +import com.cakk.domain.mysql.bo.shop.CakeShopBySearchParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopDetailParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopInfoParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopSimpleParam; @@ -53,18 +56,15 @@ import com.cakk.domain.mysql.event.shop.CertificationEvent; import com.cakk.domain.mysql.event.views.CakeShopIncreaseViewsEvent; import com.cakk.domain.mysql.mapper.EventMapper; -import com.cakk.domain.mysql.repository.reader.BusinessInformationReader; -import com.cakk.domain.mysql.repository.reader.CakeShopReader; -import com.cakk.domain.mysql.repository.reader.UserReader; import com.cakk.domain.redis.repository.CakeShopViewsRedisRepository; @Service @RequiredArgsConstructor public class ShopService { - private final UserReader userReader; - private final CakeShopReader cakeShopReader; - private final BusinessInformationReader businessInformationReader; + private final UserReadFacade userReadFacade; + private final CakeShopReadFacade cakeShopReadFacade; + private final BusinessInformationReadFacade businessInformationReadFacade; private final CakeShopManageFacade cakeShopManageFacade; private final CakeShopViewsRedisRepository cakeShopViewsRedisRepository; @@ -85,47 +85,47 @@ public CakeShopCreateResponse createCakeShopByCertification(final CreateShopRequ @Transactional public void promoteUserToBusinessOwner(final PromotionRequest request) { - final User user = userReader.findByUserId(request.userId()); - final BusinessInformation businessInformation = cakeShopReader.findBusinessInformationWithShop(request.cakeShopId()); + final User user = userReadFacade.findByUserId(request.userId()); + final BusinessInformation businessInformation = cakeShopReadFacade.findBusinessInformationWithShop(request.cakeShopId()); businessInformation.updateBusinessOwner(verificationPolicy, user); } @Transactional public void updateBasicInformation(final CakeShopUpdateParam param) { - final CakeShop cakeShop = cakeShopReader.searchByIdAndOwner(param.cakeShopId, param.user); + final CakeShop cakeShop = cakeShopReadFacade.searchByIdAndOwner(param.getCakeShopId(), param.getUser()); cakeShop.updateBasicInformation(param); } @Transactional public void updateShopLinks(final UpdateLinkParam param) { - final CakeShop cakeShop = cakeShopReader.searchWithShopLinks(param.user, param.cakeShopId); - cakeShop.updateShopLinks(param.cakeShopLinks); + final CakeShop cakeShop = cakeShopReadFacade.searchWithShopLinks(param.getUser(), param.getCakeShopId()); + cakeShop.updateShopLinks(param.getCakeShopLinks()); } @Transactional public void updateShopAddress(final UpdateShopAddressParam param) { - final CakeShop cakeShop = cakeShopReader.searchByIdAndOwner(param.cakeShopId(), param.user()); + final CakeShop cakeShop = cakeShopReadFacade.searchByIdAndOwner(param.getCakeShopId(), param.getUser()); cakeShop.updateShopAddress(param); } @Transactional public void updateShopOperationDays(final UpdateShopOperationParam param) { - final CakeShop cakeShop = cakeShopReader.searchWithOperations(param.user, param.cakeShopId); - cakeShop.updateShopOperationDays(param.cakeShopOperations); + final CakeShop cakeShop = cakeShopReadFacade.searchWithOperations(param.getUser(), param.getCakeShopId()); + cakeShop.updateShopOperationDays(param.getCakeShopOperations()); } @Transactional(readOnly = true) public CakeShopByMineResponse getMyBusinessId(final User user) { - final List result = businessInformationReader.findAllWithCakeShopByUser(user); + final List result = businessInformationReadFacade.findAllWithCakeShopByUser(user); return ShopMapper.supplyCakeShopByMineResponseBy(result); } @Transactional public void requestCertificationBusinessOwner(final CertificationParam param) { - final BusinessInformation businessInformation = cakeShopReader.findBusinessInformationByCakeShopId( - param.cakeShopId); + final BusinessInformation businessInformation = cakeShopReadFacade.findBusinessInformationByCakeShopId( + param.cakeShopId()); final CertificationEvent certificationEvent = verificationPolicy .requestCertificationBusinessOwner(businessInformation, param); @@ -134,14 +134,14 @@ public void requestCertificationBusinessOwner(final CertificationParam param) { @Transactional(readOnly = true) public CakeShopSimpleResponse searchSimpleById(final Long cakeShopId) { - final CakeShopSimpleParam cakeShop = cakeShopReader.searchSimpleById(cakeShopId); + final CakeShopSimpleParam cakeShop = cakeShopReadFacade.searchSimpleById(cakeShopId); return ShopMapper.cakeShopSimpleResponseFromParam(cakeShop); } @Transactional(readOnly = true) public CakeShopDetailResponse searchDetailById(final Long cakeShopId) { - final CakeShopDetailParam cakeShop = cakeShopReader.searchDetailById(cakeShopId); + final CakeShopDetailParam cakeShop = cakeShopReadFacade.searchDetailById(cakeShopId); final CakeShopIncreaseViewsEvent event = EventMapper.supplyCakeShopIncreaseViewsEvent(cakeShopId); publisher.publishEvent(event); @@ -150,7 +150,7 @@ public CakeShopDetailResponse searchDetailById(final Long cakeShopId) { @Transactional(readOnly = true) public CakeShopInfoResponse searchInfoById(final Long cakeShopId) { - final CakeShopInfoParam cakeShopInfo = cakeShopReader.searchInfoById(cakeShopId); + final CakeShopInfoParam cakeShopInfo = cakeShopReadFacade.searchInfoById(cakeShopId); return ShopMapper.supplyCakeShopInfoResponseBy(cakeShopInfo); } @@ -162,7 +162,7 @@ public CakeShopByMapResponse searchShop(final SearchShopByLocationRequest reques final Double distance = request.distance(); final Point point = PointMapper.supplyPointBy(latitude, longitude); - final List result = cakeShopReader + final List result = cakeShopReadFacade .searchShopByLocationBased(point, Objects.requireNonNullElse(distance, 1000.0)); final CakeShops cakeShops = new CakeShops<>(result, 4); @@ -172,7 +172,7 @@ public CakeShopByMapResponse searchShop(final SearchShopByLocationRequest reques @Transactional(readOnly = true) public CakeShopSearchResponse searchShopByKeyword(final CakeShopSearchRequest dto) { final int pageSize = dto.pageSize(); - final List result = cakeShopReader.searchShopBySearch(dto.toParam()); + final List result = cakeShopReadFacade.searchShopBySearch(dto.toParam()); final List cakeShopBySearchParams = ShopMapper.supplyCakeShopBySearchParamListBy(result); final CakeShops cakeShops = new CakeShops<>(cakeShopBySearchParams, 4, pageSize); @@ -193,7 +193,7 @@ public CakeShopSearchResponse searchCakeShopsByCursorAndViews(final CakeShopSear return ShopMapper.supplyCakeShopSearchResponseBy(List.of()); } - final List result = cakeShopReader.searchShopsByShopIds(cakeShopIds); + final List result = cakeShopReadFacade.searchShopsByShopIds(cakeShopIds); final List cakeShopBySearchParams = ShopMapper.supplyCakeShopBySearchParamListBy(result); final CakeShops cakeShops = new CakeShops<>(cakeShopBySearchParams, 6, pageSize); @@ -202,14 +202,14 @@ public CakeShopSearchResponse searchCakeShopsByCursorAndViews(final CakeShopSear @Transactional(readOnly = true) public CakeShopOwnerResponse isExistBusinessInformation(final User owner, final Long cakeShopId) { - final Boolean isOwned = businessInformationReader.isExistBusinessInformation(owner, cakeShopId); + final Boolean isOwned = businessInformationReadFacade.isExistBusinessInformation(owner, cakeShopId); return ShopMapper.supplyCakeShopOwnerResponseBy(isOwned); } @Transactional(readOnly = true) public CakeShopOwnerCandidatesResponse getBusinessOwnerCandidates() { - List businessInformations = businessInformationReader.findAllCakeShopBusinessOwnerCandidates(); + List businessInformations = businessInformationReadFacade.findAllCakeShopBusinessOwnerCandidates(); businessInformations = businessInformations .stream() @@ -221,7 +221,7 @@ public CakeShopOwnerCandidatesResponse getBusinessOwnerCandidates() { @Transactional(readOnly = true) public CakeShopOwnerCandidateResponse getCandidateInformation(final Long userId) { - BusinessInformation businessInformation = businessInformationReader.findByUserId(userId); + BusinessInformation businessInformation = businessInformationReadFacade.findByUserId(userId); return BusinessInformationMapper.supplyCakeShopOwnerCandidateResponseBy(businessInformation); } diff --git a/cakk-api/src/main/java/com/cakk/api/service/user/SignService.java b/cakk-api/src/main/java/com/cakk/api/service/user/SignService.java index f2132681..2fd0c99b 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/user/SignService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/user/SignService.java @@ -14,6 +14,7 @@ import com.cakk.common.enums.ReturnCode; import com.cakk.common.exception.CakkException; import com.cakk.core.facade.user.UserManageFacade; +import com.cakk.core.facade.user.UserReadFacade; import com.cakk.domain.mysql.entity.user.User; import com.cakk.domain.mysql.repository.reader.UserReader; import com.cakk.domain.redis.repository.TokenRedisRepository; @@ -25,7 +26,7 @@ public class SignService { private final OidcProviderFactory oidcProviderFactory; private final JwtProvider jwtProvider; - private final UserReader userReader; + private final UserReadFacade userReadFacade; private final UserManageFacade userManageFacade; private final TokenRedisRepository tokenRedisRepository; @@ -40,7 +41,7 @@ public JwtResponse signUp(final UserSignUpRequest dto) { @Transactional(readOnly = true) public JwtResponse signIn(final UserSignInRequest dto) { final String providerId = oidcProviderFactory.getProviderId(dto.provider(), dto.idToken()); - final User user = userReader.findByProviderId(providerId); + final User user = userReadFacade.findByProviderId(providerId); return JwtResponse.from(jwtProvider.generateToken(user)); } diff --git a/cakk-api/src/main/java/com/cakk/api/service/user/UserService.java b/cakk-api/src/main/java/com/cakk/api/service/user/UserService.java index 89389a85..24101ce5 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/user/UserService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/user/UserService.java @@ -9,28 +9,28 @@ import com.cakk.api.dto.response.user.ProfileInformationResponse; import com.cakk.api.mapper.UserMapper; import com.cakk.core.facade.user.UserManageFacade; +import com.cakk.core.facade.user.UserReadFacade; import com.cakk.domain.mysql.dto.param.user.ProfileUpdateParam; import com.cakk.domain.mysql.entity.user.User; import com.cakk.domain.mysql.entity.user.UserWithdrawal; -import com.cakk.domain.mysql.repository.reader.UserReader; @Service @RequiredArgsConstructor public class UserService { - private final UserReader userReader; + private final UserReadFacade userReadFacade; private final UserManageFacade userManageFacade; @Transactional(readOnly = true) public ProfileInformationResponse findProfile(final User signInUser) { - final User user = userReader.findByUserId(signInUser.getId()); + final User user = userReadFacade.findByUserId(signInUser.getId()); return UserMapper.supplyProfileInformationResponseBy(user); } @Transactional public void updateInformation(final User signInUser, final ProfileUpdateRequest dto) { - final User user = userReader.findByUserId(signInUser.getId()); + final User user = userReadFacade.findByUserId(signInUser.getId()); final ProfileUpdateParam param = UserMapper.supplyProfileUpdateParamBy(dto); userManageFacade.updateProfile(user, param); @@ -38,7 +38,7 @@ public void updateInformation(final User signInUser, final ProfileUpdateRequest @Transactional public void withdraw(final User signInUser) { - final User user = userReader.findByIdWithAll(signInUser.getId()); + final User user = userReadFacade.findByIdWithAll(signInUser.getId()); final UserWithdrawal withdrawal = UserMapper.supplyUserWithdrawalBy(user); userManageFacade.withdraw(user, withdrawal); diff --git a/cakk-api/src/main/java/com/cakk/api/service/views/ViewsService.java b/cakk-api/src/main/java/com/cakk/api/service/views/ViewsService.java index dec7e7f1..011412cc 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/views/ViewsService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/views/ViewsService.java @@ -9,15 +9,15 @@ import lombok.RequiredArgsConstructor; import com.cakk.common.exception.CakkException; +import com.cakk.core.facade.cake.CakeReadFacade; import com.cakk.domain.mysql.entity.cake.Cake; import com.cakk.domain.mysql.event.views.CakeIncreaseViewsEvent; -import com.cakk.domain.mysql.repository.reader.CakeReader; @RequiredArgsConstructor @Service public class ViewsService { - private final CakeReader cakeReader; + private final CakeReadFacade cakeReadFacade; private final ApplicationEventPublisher publisher; @@ -28,7 +28,7 @@ public void increaseCakeViews(final Long cakeId) { } try { - final Cake cake = cakeReader.findById(cakeId); + final Cake cake = cakeReadFacade.findById(cakeId); final CakeIncreaseViewsEvent event = cake.getInCreaseViewsEvent(); publisher.publishEvent(event); From ecae8663496c3497b241f970570e29439a3fabb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Sun, 15 Sep 2024 20:38:23 +0900 Subject: [PATCH 05/18] =?UTF-8?q?Refactor=20|=20CAKK-82=20|=20checkstyle?= =?UTF-8?q?=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cakk/api/service/cake/CakeService.java | 3 --- .../src/main/java/com/cakk/api/service/like/LikeService.java | 1 - .../src/main/java/com/cakk/api/service/user/SignService.java | 1 - .../main/kotlin/com/cakk/core/facade/tag/TagManageFacade.kt | 4 +--- .../main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt | 4 +--- 5 files changed, 2 insertions(+), 11 deletions(-) diff --git a/cakk-api/src/main/java/com/cakk/api/service/cake/CakeService.java b/cakk-api/src/main/java/com/cakk/api/service/cake/CakeService.java index 8fb12b37..1f49cb56 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/cake/CakeService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/cake/CakeService.java @@ -31,9 +31,6 @@ import com.cakk.domain.mysql.entity.cake.Tag; import com.cakk.domain.mysql.entity.shop.CakeShop; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.CakeReader; -import com.cakk.domain.mysql.repository.reader.CakeShopReader; -import com.cakk.domain.mysql.repository.reader.TagReader; import com.cakk.domain.redis.repository.CakeViewsRedisRepository; @Transactional(readOnly = true) diff --git a/cakk-api/src/main/java/com/cakk/api/service/like/LikeService.java b/cakk-api/src/main/java/com/cakk/api/service/like/LikeService.java index c167520c..57ffcdb4 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/like/LikeService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/like/LikeService.java @@ -9,7 +9,6 @@ import com.cakk.core.facade.user.UserLikeFacade; import com.cakk.domain.mysql.entity.shop.CakeShop; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.CakeShopReader; @Service @RequiredArgsConstructor diff --git a/cakk-api/src/main/java/com/cakk/api/service/user/SignService.java b/cakk-api/src/main/java/com/cakk/api/service/user/SignService.java index 2fd0c99b..db5bb3bf 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/user/SignService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/user/SignService.java @@ -16,7 +16,6 @@ import com.cakk.core.facade.user.UserManageFacade; import com.cakk.core.facade.user.UserReadFacade; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.UserReader; import com.cakk.domain.redis.repository.TokenRedisRepository; @Service diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagManageFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagManageFacade.kt index e9f1981a..89d437fe 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagManageFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagManageFacade.kt @@ -11,9 +11,7 @@ class TagManageFacade( ) { fun create(tagName: String): Tag { - return tagJpaRepository.findTagByTagName(tagName).orElseGet { - tagJpaRepository.save(TagMapper.supplyTagBy(tagName)) - } + return tagJpaRepository.findTagByTagName(tagName) ?: tagJpaRepository.save(TagMapper.supplyTagBy(tagName)) } fun createAll(tagNames: List): List { diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt index ecba66cd..4019ddb3 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt @@ -16,9 +16,7 @@ class UserManageFacade( ) { fun create(user: User): User { - userJpaRepository.findByProviderId(user.providerId).ifPresent { - throw CakkException(ReturnCode.ALREADY_EXIST_USER) - } + userJpaRepository.findByProviderId(user.providerId) ?: throw CakkException(ReturnCode.ALREADY_EXIST_USER) return userJpaRepository.save(user) } From 2908a8fdefc1432a9c2fedb033593a6e066b0566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Mon, 16 Sep 2024 16:35:04 +0900 Subject: [PATCH 06/18] =?UTF-8?q?Refactor=20|=20CAKK-82=20|=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=20rea?= =?UTF-8?q?der=20=EB=A5=BC=20facade=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integration/shop/ShopIntegrationTest.java | 60 ++++++++----------- .../api/service/cake/CakeServiceTest.java | 26 ++++---- .../api/service/like/HeartServiceTest.java | 48 +++++++-------- .../api/service/shop/ShopServiceTest.java | 52 ++++++++-------- .../api/service/user/SignServiceTest.java | 12 ++-- .../api/service/user/UserServiceTest.java | 24 ++++---- 6 files changed, 105 insertions(+), 117 deletions(-) diff --git a/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java b/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java index f8bf061b..2bc96dba 100644 --- a/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java +++ b/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java @@ -40,13 +40,11 @@ import com.cakk.common.enums.Days; import com.cakk.common.enums.ReturnCode; import com.cakk.common.response.ApiResponse; +import com.cakk.core.facade.cake.CakeShopReadFacade; import com.cakk.domain.mysql.dto.param.shop.CakeShopLinkParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopOperationParam; import com.cakk.domain.mysql.entity.shop.CakeShop; import com.cakk.domain.mysql.entity.shop.CakeShopOperation; -import com.cakk.domain.mysql.repository.reader.CakeShopLinkReader; -import com.cakk.domain.mysql.repository.reader.CakeShopOperationReader; -import com.cakk.domain.mysql.repository.reader.CakeShopReader; import com.cakk.domain.redis.repository.CakeShopViewsRedisRepository; import com.cakk.domain.redis.repository.CakeViewsRedisRepository; @@ -63,13 +61,7 @@ class ShopIntegrationTest extends IntegrationTest { private static final String API_URL = "/api/v1/shops"; @Autowired - private CakeShopReader cakeShopReader; - - @Autowired - private CakeShopOperationReader cakeShopOperationReader; - - @Autowired - private CakeShopLinkReader cakeShopLinkReader; + private CakeShopReadFacade cakeShopReadFacade; @Autowired private CakeViewsRedisRepository cakeViewsRedisRepository; @@ -124,7 +116,7 @@ void simple1() { assertEquals(ReturnCode.SUCCESS.getCode(), response.getReturnCode()); assertEquals(ReturnCode.SUCCESS.getMessage(), response.getReturnMessage()); - final CakeShop cakeShop = cakeShopReader.findById(cakeShopId); + final CakeShop cakeShop = cakeShopReadFacade.findById(cakeShopId); assertEquals(cakeShop.getId(), data.cakeShopId()); assertEquals(cakeShop.getThumbnailUrl(), data.thumbnailUrl()); assertEquals(cakeShop.getShopName(), data.cakeShopName()); @@ -153,7 +145,7 @@ void simple2() { assertEquals(ReturnCode.SUCCESS.getCode(), response.getReturnCode()); assertEquals(ReturnCode.SUCCESS.getMessage(), response.getReturnMessage()); - final CakeShop cakeShop = cakeShopReader.findById(cakeShopId); + final CakeShop cakeShop = cakeShopReadFacade.findById(cakeShopId); assertEquals(cakeShop.getId(), data.cakeShopId()); assertEquals(cakeShop.getThumbnailUrl(), data.thumbnailUrl()); assertEquals(cakeShop.getShopName(), data.cakeShopName()); @@ -203,19 +195,19 @@ void detail1() { assertEquals(ReturnCode.SUCCESS.getCode(), response.getReturnCode()); assertEquals(ReturnCode.SUCCESS.getMessage(), response.getReturnMessage()); - final CakeShop cakeShop = cakeShopReader.findById(cakeShopId); + final CakeShop cakeShop = cakeShopReadFacade.findById(cakeShopId); assertEquals(cakeShop.getId(), data.cakeShopId()); assertEquals(cakeShop.getThumbnailUrl(), data.thumbnailUrl()); assertEquals(cakeShop.getShopName(), data.cakeShopName()); assertEquals(cakeShop.getShopBio(), data.cakeShopBio()); assertEquals(cakeShop.getShopDescription(), data.cakeShopDescription()); - final Set cakeShopOperations = cakeShopOperationReader.findAllByCakeShopId(cakeShopId).stream() + final Set cakeShopOperations = cakeShopReadFacade.findCakeShopOperationsByCakeShopId(cakeShopId).stream() .map(CakeShopOperation::getOperationDay) .collect(Collectors.toSet()); assertEquals(cakeShopOperations, data.operationDays()); - final Set cakeShopLinks = cakeShopLinkReader.findAllByCakeShopId(cakeShopId).stream() + final Set cakeShopLinks = cakeShopReadFacade.findCakeShopLinksByCakeShopId(cakeShopId).stream() .map((it) -> new CakeShopLinkParam(it.getLinkKind(), it.getLinkPath())) .collect(Collectors.toSet()); assertEquals(cakeShopLinks, data.links()); @@ -286,7 +278,7 @@ void detailInfo1() { assertEquals(ReturnCode.SUCCESS.getCode(), response.getReturnCode()); assertEquals(ReturnCode.SUCCESS.getMessage(), response.getReturnMessage()); - final CakeShop cakeShop = cakeShopReader.findById(cakeShopId); + final CakeShop cakeShop = cakeShopReadFacade.findById(cakeShopId); Double longitude = cakeShop.getLocation().getX(); Double latitude = cakeShop.getLocation().getY(); @@ -294,7 +286,7 @@ void detailInfo1() { assertEquals(latitude, data.latitude()); assertEquals(longitude, data.longitude()); - List cakeShopOperations = cakeShopOperationReader.findAllByCakeShopId(cakeShopId).stream() + List cakeShopOperations = cakeShopReadFacade.findCakeShopOperationsByCakeShopId(cakeShopId).stream() .map((it) -> new CakeShopOperationParam(it.getOperationDay(), it.getOperationStartTime(), it.getOperationEndTime())) .toList(); assertEquals(cakeShopOperations, data.shopOperationDays()); @@ -343,8 +335,8 @@ void findAllShopsByLocationBased1() { assertThat(data.cakeShops().size()).isGreaterThanOrEqualTo(0); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.cakeImageUrls.size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.cakeShopName).isNotNull(); + assertThat(cakeShop.getCakeImageUrls().size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.getCakeShopName()).isNotNull(); }); } @@ -500,9 +492,9 @@ void findAllShopsByLocationBased2() { assertEquals(8, data.cakeShops().size()); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.cakeShopId).isIn(4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L); - assertThat(cakeShop.cakeImageUrls.size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.cakeShopName).isNotNull(); + assertThat(cakeShop.getCakeShopId()).isIn(4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L); + assertThat(cakeShop.getCakeImageUrls().size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.getCakeShopName()).isNotNull(); }); } @@ -530,10 +522,10 @@ void searchCakeShopsByKeywordsWithConditions1() { assertEquals(7, data.size()); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.cakeImageUrls.size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.cakeShopId).isNotNull(); - assertThat(cakeShop.cakeShopName).isNotNull(); - assertThat(cakeShop.operationDays).isNotNull(); + assertThat(cakeShop.getCakeImageUrls().size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.getCakeShopId()).isNotNull(); + assertThat(cakeShop.getCakeShopName()).isNotNull(); + assertThat(cakeShop.getOperationDays()).isNotNull(); }); } @@ -561,10 +553,10 @@ void searchCakeShopsByKeywordWithConditions2() { assertThat(data.size()).isGreaterThanOrEqualTo(0); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.cakeImageUrls.size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.cakeShopId).isNotNull(); - assertThat(cakeShop.cakeShopName).isNotNull(); - assertThat(cakeShop.operationDays).isNotNull(); + assertThat(cakeShop.getCakeImageUrls().size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.getCakeShopId()).isNotNull(); + assertThat(cakeShop.getCakeShopName()).isNotNull(); + assertThat(cakeShop.getOperationDays()).isNotNull(); }); } @@ -591,10 +583,10 @@ void searchCakeShopsByKeywordWithConditions3() { assertEquals(4, data.size()); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.cakeImageUrls.size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.cakeShopId).isNotNull(); - assertThat(cakeShop.cakeShopName).isNotNull(); - assertThat(cakeShop.operationDays).isNotNull(); + assertThat(cakeShop.getCakeImageUrls().size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.getCakeShopId()).isNotNull(); + assertThat(cakeShop.getCakeShopName()).isNotNull(); + assertThat(cakeShop.getOperationDays()).isNotNull(); }); } diff --git a/cakk-api/src/test/java/com/cakk/api/service/cake/CakeServiceTest.java b/cakk-api/src/test/java/com/cakk/api/service/cake/CakeServiceTest.java index 3f40e6b8..751c5148 100644 --- a/cakk-api/src/test/java/com/cakk/api/service/cake/CakeServiceTest.java +++ b/cakk-api/src/test/java/com/cakk/api/service/cake/CakeServiceTest.java @@ -18,8 +18,8 @@ import com.cakk.api.dto.request.cake.CakeSearchByViewsRequest; import com.cakk.api.dto.response.cake.CakeImageListResponse; import com.cakk.common.enums.CakeDesignCategory; +import com.cakk.core.facade.cake.CakeReadFacade; import com.cakk.domain.mysql.dto.param.cake.CakeImageResponseParam; -import com.cakk.domain.mysql.repository.reader.CakeReader; import com.cakk.domain.redis.repository.CakeViewsRedisRepository; @DisplayName("케이크 조회 관련 비즈니스 로직 테스트") @@ -29,7 +29,7 @@ class CakeServiceTest extends ServiceTest { private CakeService cakeService; @Mock - private CakeReader cakeReader; + private CakeReadFacade cakeReadFacade; @Mock private CakeViewsRedisRepository cakeViewsRedisRepository; @@ -44,7 +44,7 @@ void findCakeImagesByCursorAndCategory1() { .set("cakeImageUrl", Arbitraries.strings().alpha().ofMinLength(10).ofMaxLength(20)) .sampleList(3); - doReturn(cakeImages).when(cakeReader).searchCakeImagesByCursorAndCategory(dto.cakeId(), dto.category(), dto.pageSize()); + doReturn(cakeImages).when(cakeReadFacade).searchCakeImagesByCursorAndCategory(dto.cakeId(), dto.category(), dto.pageSize()); // when CakeImageListResponse result = cakeService.findCakeImagesByCursorAndCategory(dto); @@ -53,7 +53,7 @@ void findCakeImagesByCursorAndCategory1() { Assertions.assertEquals(cakeImages.size(), result.cakeImages().size()); Assertions.assertNotNull(result.lastCakeId()); - verify(cakeReader).searchCakeImagesByCursorAndCategory(dto.cakeId(), dto.category(), dto.pageSize()); + verify(cakeReadFacade).searchCakeImagesByCursorAndCategory(dto.cakeId(), dto.category(), dto.pageSize()); } @TestWithDisplayName("카테고리에 해당하는 케이크가 없을 시 빈 배열을 리턴한다.") @@ -62,7 +62,7 @@ void findCakeImagesByCursorAndCategory2() { CakeSearchByCategoryRequest dto = new CakeSearchByCategoryRequest(null, CakeDesignCategory.FLOWER, 3); List cakeImages = getConstructorMonkey().giveMe(CakeImageResponseParam.class, 0); - doReturn(cakeImages).when(cakeReader).searchCakeImagesByCursorAndCategory(dto.cakeId(), dto.category(), dto.pageSize()); + doReturn(cakeImages).when(cakeReadFacade).searchCakeImagesByCursorAndCategory(dto.cakeId(), dto.category(), dto.pageSize()); // when CakeImageListResponse result = cakeService.findCakeImagesByCursorAndCategory(dto); @@ -71,7 +71,7 @@ void findCakeImagesByCursorAndCategory2() { Assertions.assertEquals(cakeImages.size(), result.cakeImages().size()); Assertions.assertNull(result.lastCakeId()); - verify(cakeReader).searchCakeImagesByCursorAndCategory(dto.cakeId(), dto.category(), dto.pageSize()); + verify(cakeReadFacade).searchCakeImagesByCursorAndCategory(dto.cakeId(), dto.category(), dto.pageSize()); } @TestWithDisplayName("케이크 샵에 속한 케이크 목록을 조회한다") @@ -84,7 +84,7 @@ void findCakeImagesByCursorAndShop1() { .set("cakeImageUrl", Arbitraries.strings().alpha().ofMinLength(10).ofMaxLength(20)) .sampleList(3); - doReturn(cakeImages).when(cakeReader).searchCakeImagesByCursorAndCakeShopId(dto.cakeId(), dto.cakeShopId(), dto.pageSize()); + doReturn(cakeImages).when(cakeReadFacade).searchCakeImagesByCursorAndCakeShopId(dto.cakeId(), dto.cakeShopId(), dto.pageSize()); // when CakeImageListResponse result = cakeService.findCakeImagesByCursorAndCakeShopId(dto); @@ -93,7 +93,7 @@ void findCakeImagesByCursorAndShop1() { Assertions.assertEquals(cakeImages.size(), result.cakeImages().size()); Assertions.assertNotNull(result.lastCakeId()); - verify(cakeReader).searchCakeImagesByCursorAndCakeShopId(dto.cakeId(), dto.cakeShopId(), dto.pageSize()); + verify(cakeReadFacade).searchCakeImagesByCursorAndCakeShopId(dto.cakeId(), dto.cakeShopId(), dto.pageSize()); } @TestWithDisplayName("케이크 샵에 속한 케이크가 없을 시 빈 배열을 리턴한다.") @@ -102,7 +102,7 @@ void findCakeImagesByCursorAndShop2() { CakeSearchByShopRequest dto = new CakeSearchByShopRequest(null, 1L, 3); List cakeImages = getConstructorMonkey().giveMe(CakeImageResponseParam.class, 0); - doReturn(cakeImages).when(cakeReader).searchCakeImagesByCursorAndCakeShopId(dto.cakeId(), dto.cakeShopId(), dto.pageSize()); + doReturn(cakeImages).when(cakeReadFacade).searchCakeImagesByCursorAndCakeShopId(dto.cakeId(), dto.cakeShopId(), dto.pageSize()); // when CakeImageListResponse result = cakeService.findCakeImagesByCursorAndCakeShopId(dto); @@ -111,7 +111,7 @@ void findCakeImagesByCursorAndShop2() { Assertions.assertEquals(cakeImages.size(), result.cakeImages().size()); Assertions.assertNull(result.lastCakeId()); - verify(cakeReader).searchCakeImagesByCursorAndCakeShopId(dto.cakeId(), dto.cakeShopId(), dto.pageSize()); + verify(cakeReadFacade).searchCakeImagesByCursorAndCakeShopId(dto.cakeId(), dto.cakeShopId(), dto.pageSize()); } @TestWithDisplayName("인기 케이크 목록을 조회한다") @@ -128,7 +128,7 @@ void searchCakeImagesByCursorAndViews1() { .sampleList(3); doReturn(cakeIds).when(cakeViewsRedisRepository).findTopCakeIdsByOffsetAndCount(cursor, pageSize); - doReturn(cakeImages).when(cakeReader).searchCakeImagesByCakeIds(cakeIds); + doReturn(cakeImages).when(cakeReadFacade).searchCakeImagesByCakeIds(cakeIds); // when CakeImageListResponse result = cakeService.searchCakeImagesByCursorAndViews(dto); @@ -138,7 +138,7 @@ void searchCakeImagesByCursorAndViews1() { Assertions.assertNull(result.lastCakeId()); verify(cakeViewsRedisRepository, times(1)).findTopCakeIdsByOffsetAndCount(cursor, pageSize); - verify(cakeReader, times(1)).searchCakeImagesByCakeIds(cakeIds); + verify(cakeReadFacade, times(1)).searchCakeImagesByCakeIds(cakeIds); } @TestWithDisplayName("인기 케이크 목록이 없을 시 빈 배열을 조회한다") @@ -158,6 +158,6 @@ void searchCakeImagesByCursorAndViews2() { Assertions.assertNull(result.lastCakeId()); verify(cakeViewsRedisRepository, times(1)).findTopCakeIdsByOffsetAndCount(cursor, pageSize); - verify(cakeReader, times(0)).searchCakeImagesByCakeIds(anyList()); + verify(cakeReadFacade, times(0)).searchCakeImagesByCakeIds(anyList()); } } diff --git a/cakk-api/src/test/java/com/cakk/api/service/like/HeartServiceTest.java b/cakk-api/src/test/java/com/cakk/api/service/like/HeartServiceTest.java index 82d25047..29f2efd3 100644 --- a/cakk-api/src/test/java/com/cakk/api/service/like/HeartServiceTest.java +++ b/cakk-api/src/test/java/com/cakk/api/service/like/HeartServiceTest.java @@ -18,15 +18,14 @@ import com.cakk.api.dto.response.like.HeartCakeImageListResponse; import com.cakk.common.enums.ReturnCode; import com.cakk.common.exception.CakkException; +import com.cakk.core.facade.cake.CakeReadFacade; +import com.cakk.core.facade.cake.CakeShopReadFacade; +import com.cakk.core.facade.cake.CakeShopUserReadFacade; import com.cakk.core.facade.user.UserHeartFacade; import com.cakk.domain.mysql.dto.param.like.HeartCakeImageResponseParam; import com.cakk.domain.mysql.entity.cake.Cake; import com.cakk.domain.mysql.entity.shop.CakeShop; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.CakeHeartReader; -import com.cakk.domain.mysql.repository.reader.CakeReader; -import com.cakk.domain.mysql.repository.reader.CakeShopHeartReader; -import com.cakk.domain.mysql.repository.reader.CakeShopReader; @DisplayName("하트 기능 관련 비즈니스 로직 테스트") class HeartServiceTest extends ServiceTest { @@ -35,16 +34,13 @@ class HeartServiceTest extends ServiceTest { private HeartService heartService; @Mock - private CakeReader cakeReader; + private CakeReadFacade cakeReadFacade; @Mock - private CakeShopReader cakeShopReader; + private CakeShopReadFacade cakeShopReadFacade; @Mock - private CakeHeartReader cakeHeartReader; - - @Mock - private CakeShopHeartReader cakeShopHeartReader; + private CakeShopUserReadFacade cakeShopUserReadFacade; @Mock private UserHeartFacade userHeartFacade; @@ -63,7 +59,7 @@ void findCakeImagesByCursorAndHeart() { .sampleList(5); doReturn(cakeImages) - .when(cakeHeartReader) + .when(cakeShopUserReadFacade) .searchCakeImagesByCursorAndHeart(dto.cakeHeartId(), user.getId(), dto.pageSize()); // when @@ -73,7 +69,7 @@ void findCakeImagesByCursorAndHeart() { Assertions.assertEquals(cakeImages, result.cakeImages()); Assertions.assertNotNull(result.lastCakeHeartId()); - verify(cakeHeartReader, times(1)) + verify(cakeShopUserReadFacade, times(1)) .searchCakeImagesByCursorAndHeart(dto.cakeHeartId(), user.getId(), dto.pageSize()); } @@ -90,7 +86,7 @@ void findCakeImagesByCursorAndHeart2() { .sampleList(5); doReturn(cakeImages) - .when(cakeHeartReader) + .when(cakeShopUserReadFacade) .searchCakeImagesByCursorAndHeart(dto.cakeHeartId(), user.getId(), dto.pageSize()); // when @@ -100,7 +96,7 @@ void findCakeImagesByCursorAndHeart2() { Assertions.assertEquals(cakeImages, result.cakeImages()); Assertions.assertNotNull(result.lastCakeHeartId()); - verify(cakeHeartReader, times(1)) + verify(cakeShopUserReadFacade, times(1)) .searchCakeImagesByCursorAndHeart(dto.cakeHeartId(), user.getId(), dto.pageSize()); } @@ -110,7 +106,7 @@ void findCakeImagesByCursorAndHeart3() { final User user = getUser(); doReturn(List.of()) - .when(cakeHeartReader) + .when(cakeShopUserReadFacade) .searchCakeImagesByCursorAndHeart(dto.cakeHeartId(), user.getId(), dto.pageSize()); // when @@ -120,7 +116,7 @@ void findCakeImagesByCursorAndHeart3() { Assertions.assertEquals(0, result.cakeImages().size()); Assertions.assertNull(result.lastCakeHeartId()); - verify(cakeHeartReader, times(1)) + verify(cakeShopUserReadFacade, times(1)) .searchCakeImagesByCursorAndHeart(dto.cakeHeartId(), user.getId(), dto.pageSize()); } @@ -131,13 +127,13 @@ void heartCake1() { final Long cakeId = 1L; final Cake cake = getConstructorMonkey().giveMeOne(Cake.class); - doReturn(cake).when(cakeReader).findByIdWithHeart(cakeId); + doReturn(cake).when(cakeReadFacade).findByIdWithHeart(cakeId); doNothing().when(userHeartFacade).heartCake(user, cake); // when & then assertDoesNotThrow(() -> heartService.heartCake(user, cakeId)); - verify(cakeReader, times(1)).findByIdWithHeart(cakeId); + verify(cakeReadFacade, times(1)).findByIdWithHeart(cakeId); verify(userHeartFacade, times(1)).heartCake(user, cake); } @@ -149,13 +145,13 @@ void heartCake2() { final Cake cake = getConstructorMonkey().giveMeOne(Cake.class); cake.heart(user); - doReturn(cake).when(cakeReader).findByIdWithHeart(cakeId); + doReturn(cake).when(cakeReadFacade).findByIdWithHeart(cakeId); doNothing().when(userHeartFacade).heartCake(user, cake); // when & then assertDoesNotThrow(() -> heartService.heartCake(user, cakeId)); - verify(cakeReader, times(1)).findByIdWithHeart(cakeId); + verify(cakeReadFacade, times(1)).findByIdWithHeart(cakeId); verify(userHeartFacade, times(1)).heartCake(user, cake); } @@ -165,7 +161,7 @@ void heartCake3() { final User user = getUser(); final Long cakeId = 1L; - doThrow(new CakkException(ReturnCode.NOT_EXIST_CAKE)).when(cakeReader).findByIdWithHeart(cakeId); + doThrow(new CakkException(ReturnCode.NOT_EXIST_CAKE)).when(cakeReadFacade).findByIdWithHeart(cakeId); // when & then assertThrows( @@ -173,7 +169,7 @@ void heartCake3() { () -> heartService.heartCake(user, cakeId), ReturnCode.NOT_EXIST_CAKE.getMessage()); - verify(cakeReader, times(1)).findByIdWithHeart(cakeId); + verify(cakeReadFacade, times(1)).findByIdWithHeart(cakeId); } @TestWithDisplayName("케이크 샵에 대하여 하트를 동작한다.") @@ -188,13 +184,13 @@ void heartCakeShop1() { .set("location", supplyPointBy(Arbitraries.doubles().sample(), Arbitraries.doubles().sample())) .sample(); - doReturn(cakeShop).when(cakeShopReader).findByIdWithHeart(cakeShopId); + doReturn(cakeShop).when(cakeShopReadFacade).findByIdWithHeart(cakeShopId); doNothing().when(userHeartFacade).heartCakeShop(user, cakeShop); // when & then assertDoesNotThrow(() -> heartService.heartCakeShop(user, cakeShopId)); - verify(cakeShopReader, times(1)).findByIdWithHeart(cakeShopId); + verify(cakeShopReadFacade, times(1)).findByIdWithHeart(cakeShopId); verify(userHeartFacade, times(1)).heartCakeShop(user, cakeShop); } @@ -204,7 +200,7 @@ void heartCakeShop3() { final User user = getUser(); final Long cakeShopId = 1L; - doThrow(new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)).when(cakeShopReader).findByIdWithHeart(cakeShopId); + doThrow(new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)).when(cakeShopReadFacade).findByIdWithHeart(cakeShopId); // when & then assertThrows( @@ -212,6 +208,6 @@ void heartCakeShop3() { () -> heartService.heartCakeShop(user, cakeShopId), ReturnCode.NOT_EXIST_CAKE_SHOP.getMessage()); - verify(cakeShopReader, times(1)).findByIdWithHeart(cakeShopId); + verify(cakeShopReadFacade, times(1)).findByIdWithHeart(cakeShopId); } } diff --git a/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java b/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java index db228c9f..b3cedcb9 100644 --- a/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java +++ b/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java @@ -31,7 +31,9 @@ import com.cakk.common.enums.ReturnCode; import com.cakk.common.enums.VerificationStatus; import com.cakk.common.exception.CakkException; +import com.cakk.core.facade.cake.CakeShopReadFacade; import com.cakk.core.facade.shop.CakeShopManageFacade; +import com.cakk.core.facade.user.UserReadFacade; import com.cakk.domain.mysql.bo.user.VerificationPolicy; import com.cakk.domain.mysql.dto.param.shop.CakeShopDetailParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopInfoParam; @@ -41,8 +43,6 @@ import com.cakk.domain.mysql.entity.user.BusinessInformation; import com.cakk.domain.mysql.entity.user.User; import com.cakk.domain.mysql.event.shop.CertificationEvent; -import com.cakk.domain.mysql.repository.reader.CakeShopReader; -import com.cakk.domain.mysql.repository.reader.UserReader; import com.cakk.domain.redis.repository.CakeShopViewsRedisRepository; @DisplayName("케이크 샵 조회 관련 비즈니스 로직 테스트") @@ -52,10 +52,10 @@ public class ShopServiceTest extends ServiceTest { private ShopService shopService; @Mock - private UserReader userReader; + private UserReadFacade userReadFacade; @Mock - private CakeShopReader cakeShopReader; + private CakeShopReadFacade cakeShopReadFacade; @Mock private CakeShopManageFacade cakeShopManageFacade; @@ -130,7 +130,7 @@ void searchSimpleById1() { .set("cakeShopBio", Arbitraries.strings().alpha().ofMinLength(1).ofMaxLength(40)) .sample(); - doReturn(response).when(cakeShopReader).searchSimpleById(cakeShopId); + doReturn(response).when(cakeShopReadFacade).searchSimpleById(cakeShopId); // when CakeShopSimpleResponse result = shopService.searchSimpleById(cakeShopId); @@ -138,7 +138,7 @@ void searchSimpleById1() { // then assertEquals(ShopMapper.cakeShopSimpleResponseFromParam(response), result); - verify(cakeShopReader, times(1)).searchSimpleById(cakeShopId); + verify(cakeShopReadFacade, times(1)).searchSimpleById(cakeShopId); } @TestWithDisplayName("id에 해당하는 케이크 샵이 없으면 간단조회 시, 에러를 반환한다.") @@ -146,7 +146,7 @@ void searchSimpleById2() { // given Long cakeShopId = 1L; - doThrow(new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)).when(cakeShopReader).searchSimpleById(cakeShopId); + doThrow(new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)).when(cakeShopReadFacade).searchSimpleById(cakeShopId); // then assertThatThrownBy( @@ -154,7 +154,7 @@ void searchSimpleById2() { .isInstanceOf(CakkException.class) .hasMessageContaining(ReturnCode.NOT_EXIST_CAKE_SHOP.getMessage()); - verify(cakeShopReader, times(1)).searchSimpleById(cakeShopId); + verify(cakeShopReadFacade, times(1)).searchSimpleById(cakeShopId); } @TestWithDisplayName("id로 케이크 샵을 상세조회 한다.") @@ -171,7 +171,7 @@ void searchDetailById1() { .set("links", Set.of()) .sample(); - doReturn(param).when(cakeShopReader).searchDetailById(cakeShopId); + doReturn(param).when(cakeShopReadFacade).searchDetailById(cakeShopId); // when CakeShopDetailResponse result = shopService.searchDetailById(cakeShopId); @@ -179,7 +179,7 @@ void searchDetailById1() { // then assertEquals(ShopMapper.cakeShopDetailResponseFromParam(param), result); - verify(cakeShopReader, times(1)).searchDetailById(cakeShopId); + verify(cakeShopReadFacade, times(1)).searchDetailById(cakeShopId); } @TestWithDisplayName("id에 해당하는 케이크 샵이 없으면 상세조회 시, 에러를 반환한다.") @@ -187,7 +187,7 @@ void searchDetailById2() { // given Long cakeShopId = 1L; - doThrow(new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)).when(cakeShopReader).searchDetailById(cakeShopId); + doThrow(new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)).when(cakeShopReadFacade).searchDetailById(cakeShopId); // then assertThatThrownBy( @@ -195,7 +195,7 @@ void searchDetailById2() { .isInstanceOf(CakkException.class) .hasMessageContaining(ReturnCode.NOT_EXIST_CAKE_SHOP.getMessage()); - verify(cakeShopReader, times(1)).searchDetailById(cakeShopId); + verify(cakeShopReadFacade, times(1)).searchDetailById(cakeShopId); } @TestWithDisplayName("Admin에 의해 케이크 샵을 생성하는데 성공한다") @@ -221,23 +221,23 @@ void promoteUser() { PromotionRequest request = getPromotionRequestFixture(); BusinessInformation businessInformation = getBusinessInformationFixture(); - doReturn(getConstructorMonkey().giveMeOne(User.class)).when(userReader).findByUserId(request.userId()); - doReturn(businessInformation).when(cakeShopReader).findBusinessInformationWithShop(request.cakeShopId()); + doReturn(getConstructorMonkey().giveMeOne(User.class)).when(userReadFacade).findByUserId(request.userId()); + doReturn(businessInformation).when(cakeShopReadFacade).findBusinessInformationWithShop(request.cakeShopId()); //when,then shopService.promoteUserToBusinessOwner(request); //verify - verify(userReader, times(1)).findByUserId(request.userId()); - verify(cakeShopReader, times(1)).findBusinessInformationWithShop(request.cakeShopId()); + verify(userReadFacade, times(1)).findByUserId(request.userId()); + verify(cakeShopReadFacade, times(1)).findBusinessInformationWithShop(request.cakeShopId()); } @TestWithDisplayName("cakeShopId가 존재한다면, 정보를 찾아서 이벤트를 발행한다") void requestCertificationEventWithInfo() { //given CertificationParam param = getCertificationParamFixture(false); - doReturn(getBusinessInformationFixture()).when(cakeShopReader).findBusinessInformationByCakeShopId( - param.cakeShopId); + doReturn(getBusinessInformationFixture()).when(cakeShopReadFacade).findBusinessInformationByCakeShopId( + param.cakeShopId()); when(verificationPolicy.requestCertificationBusinessOwner(any(BusinessInformation.class), any(CertificationParam.class))) .thenReturn(getCertificationEventFixture()); @@ -245,7 +245,7 @@ void requestCertificationEventWithInfo() { shopService.requestCertificationBusinessOwner(param); //verify - verify(cakeShopReader, times(1)).findBusinessInformationByCakeShopId(param.cakeShopId); + verify(cakeShopReadFacade, times(1)).findBusinessInformationByCakeShopId(param.cakeShopId()); verify(publisher, times(1)).publishEvent(any(CertificationEvent.class)); } @@ -264,7 +264,7 @@ void searchInfoById1() { .set("operationDays", List.of()) .sample(); - doReturn(param).when(cakeShopReader).searchInfoById(cakeShopId); + doReturn(param).when(cakeShopReadFacade).searchInfoById(cakeShopId); // when CakeShopInfoResponse result = shopService.searchInfoById(cakeShopId); @@ -272,7 +272,7 @@ void searchInfoById1() { // then assertEquals(ShopMapper.supplyCakeShopInfoResponseBy(param), result); - verify(cakeShopReader, times(1)).searchInfoById(cakeShopId); + verify(cakeShopReadFacade, times(1)).searchInfoById(cakeShopId); } @TestWithDisplayName("id에 해당하는 케이크 샵이 없으면 상세조회 시, 에러를 반환한다.") @@ -280,7 +280,7 @@ void searchInfoById2() { // given Long cakeShopId = 1L; - doThrow(new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)).when(cakeShopReader).searchInfoById(cakeShopId); + doThrow(new CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP)).when(cakeShopReadFacade).searchInfoById(cakeShopId); // then assertThatThrownBy( @@ -288,7 +288,7 @@ void searchInfoById2() { .isInstanceOf(CakkException.class) .hasMessageContaining(ReturnCode.NOT_EXIST_CAKE_SHOP.getMessage()); - verify(cakeShopReader, times(1)).searchInfoById(cakeShopId); + verify(cakeShopReadFacade, times(1)).searchInfoById(cakeShopId); } @TestWithDisplayName("인기 케이크 샵 목록을 조회한다.") @@ -306,7 +306,7 @@ void searchCakeShopsByCursorAndViews1() { .sampleList(3); doReturn(cakeShopIds).when(cakeShopViewsRedisRepository).findTopShopIdsByOffsetAndCount(offset, pageSize); - doReturn(cakeShops).when(cakeShopReader).searchShopsByShopIds(cakeShopIds); + doReturn(cakeShops).when(cakeShopReadFacade).searchShopsByShopIds(cakeShopIds); // when final CakeShopSearchResponse result = shopService.searchCakeShopsByCursorAndViews(dto); @@ -316,7 +316,7 @@ void searchCakeShopsByCursorAndViews1() { assertEquals(cakeShops.size(), result.size()); verify(cakeShopViewsRedisRepository, times(1)).findTopShopIdsByOffsetAndCount(offset, pageSize); - verify(cakeShopReader, times(1)).searchShopsByShopIds(cakeShopIds); + verify(cakeShopReadFacade, times(1)).searchShopsByShopIds(cakeShopIds); } @TestWithDisplayName("인기 케이크 샵 목록이 없는 경우, 빈 배열을 조회한다.") @@ -337,6 +337,6 @@ void searchCakeShopsByCursorAndViews2() { assertThat(result.cakeShops()).isEmpty(); verify(cakeShopViewsRedisRepository, times(1)).findTopShopIdsByOffsetAndCount(offset, pageSize); - verify(cakeShopReader, times(0)).searchShopsByShopIds(cakeShopIds); + verify(cakeShopReadFacade, times(0)).searchShopsByShopIds(cakeShopIds); } } diff --git a/cakk-api/src/test/java/com/cakk/api/service/user/SignServiceTest.java b/cakk-api/src/test/java/com/cakk/api/service/user/SignServiceTest.java index e7fc503b..9c7f329c 100644 --- a/cakk-api/src/test/java/com/cakk/api/service/user/SignServiceTest.java +++ b/cakk-api/src/test/java/com/cakk/api/service/user/SignServiceTest.java @@ -22,8 +22,8 @@ import com.cakk.common.enums.ReturnCode; import com.cakk.common.exception.CakkException; import com.cakk.core.facade.user.UserManageFacade; +import com.cakk.core.facade.user.UserReadFacade; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.UserReader; import com.cakk.domain.redis.repository.TokenRedisRepository; @DisplayName("Sign 관련 비즈니스 로직 테스트") @@ -39,7 +39,7 @@ class SignServiceTest extends ServiceTest { private JwtProvider jwtProvider; @Mock - private UserReader userReader; + private UserReadFacade userReadFacade; @Mock private UserManageFacade userManagerFacade; @@ -119,7 +119,7 @@ void signIn() { .sample(); doReturn(providerId).when(oidcProviderFactory).getProviderId(dto.provider(), dto.idToken()); - doReturn(user).when(userReader).findByProviderId(providerId); + doReturn(user).when(userReadFacade).findByProviderId(providerId); doReturn(jwt).when(jwtProvider).generateToken(user); // when @@ -131,7 +131,7 @@ void signIn() { Assertions.assertNotNull(result.grantType()); verify(oidcProviderFactory, times(1)).getProviderId(dto.provider(), dto.idToken()); - verify(userReader, times(1)).findByProviderId(providerId); + verify(userReadFacade, times(1)).findByProviderId(providerId); verify(jwtProvider, times(1)).generateToken(user); } @@ -147,7 +147,7 @@ void signIn2() { .sample(); doReturn(providerId).when(oidcProviderFactory).getProviderId(dto.provider(), dto.idToken()); - doThrow(new CakkException(ReturnCode.NOT_EXIST_USER)).when(userReader).findByProviderId(providerId); + doThrow(new CakkException(ReturnCode.NOT_EXIST_USER)).when(userReadFacade).findByProviderId(providerId); // when Assertions.assertThrows( @@ -156,7 +156,7 @@ void signIn2() { ReturnCode.NOT_EXIST_USER.getMessage()); verify(oidcProviderFactory, times(1)).getProviderId(dto.provider(), dto.idToken()); - verify(userReader, times(1)).findByProviderId(providerId); + verify(userReadFacade, times(1)).findByProviderId(providerId); verify(jwtProvider, times(0)).generateToken(user); } diff --git a/cakk-api/src/test/java/com/cakk/api/service/user/UserServiceTest.java b/cakk-api/src/test/java/com/cakk/api/service/user/UserServiceTest.java index 50b41651..7b3314fa 100644 --- a/cakk-api/src/test/java/com/cakk/api/service/user/UserServiceTest.java +++ b/cakk-api/src/test/java/com/cakk/api/service/user/UserServiceTest.java @@ -17,8 +17,8 @@ import com.cakk.common.enums.ReturnCode; import com.cakk.common.exception.CakkException; import com.cakk.core.facade.user.UserManageFacade; +import com.cakk.core.facade.user.UserReadFacade; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.UserReader; @DisplayName("유저 관련 비즈니스 로직 테스트") class UserServiceTest extends ServiceTest { @@ -27,7 +27,7 @@ class UserServiceTest extends ServiceTest { private UserService userService; @Mock - private UserReader userReader; + private UserReadFacade userReadFacade; @Mock private UserManageFacade userManagerFacade; @@ -41,7 +41,7 @@ void findProfile1() { .set("providerId", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) .sample(); - doReturn(user).when(userReader).findByUserId(user.getId()); + doReturn(user).when(userReadFacade).findByUserId(user.getId()); // when final ProfileInformationResponse response = userService.findProfile(user); @@ -49,7 +49,7 @@ void findProfile1() { // then Assertions.assertNotNull(response); - verify(userReader, times(1)).findByUserId(user.getId()); + verify(userReadFacade, times(1)).findByUserId(user.getId()); } @TestWithDisplayName("유저가 존재하지 않으면 유저 프로필 조회에 실패한다.") @@ -61,14 +61,14 @@ void findProfile2() { .set("providerId", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) .sample(); - doThrow(new CakkException(ReturnCode.NOT_EXIST_USER)).when(userReader).findByUserId(user.getId()); + doThrow(new CakkException(ReturnCode.NOT_EXIST_USER)).when(userReadFacade).findByUserId(user.getId()); // when Assertions.assertThrows(CakkException.class, () -> userService.findProfile(user), ReturnCode.NOT_EXIST_USER.getMessage()); - verify(userReader, times(1)).findByUserId(user.getId()); + verify(userReadFacade, times(1)).findByUserId(user.getId()); } @TestWithDisplayName("유저 프로필을 수정한다.") @@ -81,12 +81,12 @@ void updateInformation() { .sample(); final ProfileUpdateRequest request = getConstructorMonkey().giveMeOne(ProfileUpdateRequest.class); - doReturn(user).when(userReader).findByUserId(user.getId()); + doReturn(user).when(userReadFacade).findByUserId(user.getId()); // when & then Assertions.assertDoesNotThrow(() -> userService.updateInformation(user, request)); - verify(userReader, times(1)).findByUserId(user.getId()); + verify(userReadFacade, times(1)).findByUserId(user.getId()); } @TestWithDisplayName("유저를 탈퇴한다.") @@ -94,12 +94,12 @@ void withdraw1() { // given final User user = getUser(); - doReturn(user).when(userReader).findByIdWithAll(user.getId()); + doReturn(user).when(userReadFacade).findByIdWithAll(user.getId()); // when & then Assertions.assertDoesNotThrow(() -> userService.withdraw(user)); - verify(userReader, times(1)).findByIdWithAll(user.getId()); + verify(userReadFacade, times(1)).findByIdWithAll(user.getId()); verify(userManagerFacade, times(1)).withdraw(any(), any()); } @@ -108,14 +108,14 @@ void withdraw2() { // given final User user = getUser(); - doThrow(new CakkException(ReturnCode.NOT_EXIST_USER)).when(userReader).findByIdWithAll(user.getId()); + doThrow(new CakkException(ReturnCode.NOT_EXIST_USER)).when(userReadFacade).findByIdWithAll(user.getId()); // when & then Assertions.assertThrows(CakkException.class, () -> userService.withdraw(user), ReturnCode.NOT_EXIST_USER.getMessage()); - verify(userReader, times(1)).findByIdWithAll(user.getId()); + verify(userReadFacade, times(1)).findByIdWithAll(user.getId()); verify(userManagerFacade, never()).withdraw(any(), any()); } } From 73e8f4b18f8079a349152684d4ab11766c8c3494 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Mon, 16 Sep 2024 18:41:20 +0900 Subject: [PATCH 07/18] =?UTF-8?q?Refactor=20|=20CAKK-82=20|=20kt=20?= =?UTF-8?q?=EB=B3=80=ED=99=98=20=ED=9B=84=20nullable=20=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cakk/core/facade/cake/CakeReadFacade.kt | 3 +- .../core/facade/cake/CakeShopReadFacade.kt | 56 ++++++------------- 2 files changed, 18 insertions(+), 41 deletions(-) diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt index d962f502..8906e461 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt @@ -14,7 +14,6 @@ import com.cakk.domain.mysql.repository.jpa.CakeCategoryJpaRepository import com.cakk.domain.mysql.repository.jpa.CakeJpaRepository import com.cakk.domain.mysql.repository.query.CakeQueryRepository import java.util.* -import java.util.function.Supplier @DomainFacade class CakeReadFacade( @@ -76,7 +75,7 @@ class CakeReadFacade( return param } - fun findByCakeId(cakeId: Long?): CakeCategory { + fun findCakeCategoryByCakeId(cakeId: Long?): CakeCategory { return cakeCategoryJpaRepository.findByCakeId(cakeId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_CATEGORY) } } diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt index 78e82a41..042ec666 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt @@ -19,8 +19,6 @@ import com.cakk.domain.mysql.repository.jpa.CakeShopLinkJpaRepository import com.cakk.domain.mysql.repository.jpa.CakeShopOperationJpaRepository import com.cakk.domain.mysql.repository.query.CakeShopQueryRepository import org.locationtech.jts.geom.Point -import java.util.* -import java.util.function.Supplier @DomainFacade class CakeShopReadFacade( @@ -35,44 +33,24 @@ class CakeShopReadFacade( } fun findByIdWithHeart(cakeShopId: Long): CakeShop { - val cakeShop: CakeShop = cakeShopQueryRepository.searchByIdWithHeart(cakeShopId) - if (Objects.isNull(cakeShop)) { - throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) - } - return cakeShop + return cakeShopQueryRepository.searchByIdWithHeart(cakeShopId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) } fun findByIdWithLike(cakeShopId: Long?): CakeShop { - val cakeShop: CakeShop = cakeShopQueryRepository.searchByIdWithLike(cakeShopId) - if (Objects.isNull(cakeShop)) { - throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) - } - return cakeShop + return cakeShopQueryRepository.searchByIdWithLike(cakeShopId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) } fun searchSimpleById(cakeShopId: Long?): CakeShopSimpleParam { - val response: CakeShopSimpleParam = cakeShopQueryRepository.searchSimpleById(cakeShopId) - if (Objects.isNull(response)) { - throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) - } - return response + return cakeShopQueryRepository.searchSimpleById(cakeShopId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) } - fun searchDetailById(cakeShopId: Long?): CakeShopDetailParam { - val response: CakeShopDetailParam = cakeShopQueryRepository.searchDetailById(cakeShopId) - if (Objects.isNull(response)) { - throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) - } - return response - } + fun searchDetailById(cakeShopId: Long?): CakeShopDetailParam { + return cakeShopQueryRepository.searchDetailById(cakeShopId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) + } - fun searchInfoById(cakeShopId: Long?): CakeShopInfoParam { - val response: CakeShopInfoParam = cakeShopQueryRepository.searchInfoById(cakeShopId) - if (Objects.isNull(response)) { - throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) - } - return response - } + fun searchInfoById(cakeShopId: Long?): CakeShopInfoParam { + return cakeShopQueryRepository.searchInfoById(cakeShopId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) + } fun findBusinessInformationWithShop(cakeShopId: Long): BusinessInformation { return businessInformationJpaRepository.findBusinessInformationWithCakeShop(cakeShopId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) @@ -97,24 +75,24 @@ class CakeShopReadFacade( fun searchWithShopLinks(owner: User?, cakeShopId: Long?): CakeShop { return cakeShopQueryRepository.searchWithShopLinks(owner, cakeShopId) - .orElseThrow(Supplier { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) }) - } + .orElseThrow { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) } + } fun searchByIdAndOwner(cakeShopId: Long?, owner: User?): CakeShop { return cakeShopQueryRepository.searchWithBusinessInformationAndOwnerById(owner, cakeShopId) - .orElseThrow(Supplier { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) }) - } + .orElseThrow { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) } + } fun searchWithOperations(owner: User?, cakeShopId: Long?): CakeShop { return cakeShopQueryRepository.searchWithOperations(owner, cakeShopId) - .orElseThrow(Supplier { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) }) - } + .orElseThrow { CakkException(ReturnCode.NOT_CAKE_SHOP_OWNER) } + } - fun searchShopsByShopIds(shopIds: List?): List { + fun searchShopsByShopIds(shopIds: List?): List { return cakeShopQueryRepository.searchByShopIds(shopIds) } - fun findCakeShopsByCakeShopId(cakeShopId: Long): List { + fun findCakeShopOperationsByCakeShopId(cakeShopId: Long): List { return cakeShopOperationJpaRepository.findAllByCakeShopId(cakeShopId) } From 92ec7d197bde1609c5bc535319f1474ba7921f8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Mon, 16 Sep 2024 18:42:29 +0900 Subject: [PATCH 08/18] =?UTF-8?q?Refactor=20|=20CAKK-82=20|=20=EB=8F=84?= =?UTF-8?q?=EB=A9=94=EC=9D=B8=20=EB=AA=A8=EB=93=88=EC=97=90=20=EC=9E=88?= =?UTF-8?q?=EB=8A=94=20dto=20java=EB=A1=9C=20=EC=9E=AC=EB=B3=80=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mysql/dto/param/cake/CakeCreateParam.java | 16 ++++++++++++++++ .../mysql/dto/param/cake/CakeCreateParam.kt | 13 ------------- .../mysql/dto/param/cake/CakeDetailParam.java | 16 ++++++++++++++++ .../mysql/dto/param/cake/CakeDetailParam.kt | 13 ------------- .../dto/param/cake/CakeImageResponseParam.java | 8 ++++++++ .../dto/param/cake/CakeImageResponseParam.kt | 7 ------- .../mysql/dto/param/cake/CakeSearchParam.java | 13 +++++++++++++ .../mysql/dto/param/cake/CakeSearchParam.kt | 11 ----------- .../mysql/dto/param/cake/CakeUpdateParam.java | 15 +++++++++++++++ .../mysql/dto/param/cake/CakeUpdateParam.kt | 12 ------------ .../param/like/HeartCakeImageResponseParam.java | 9 +++++++++ .../param/like/HeartCakeImageResponseParam.kt | 9 --------- .../param/like/HeartCakeShopResponseParam.java | 16 ++++++++++++++++ .../dto/param/like/HeartCakeShopResponseParam.kt | 13 ------------- .../mysql/dto/param/link/UpdateLinkParam.java | 16 ++++++++++++++++ .../mysql/dto/param/link/UpdateLinkParam.kt | 10 ---------- .../operation/UpdateShopOperationParam.java | 16 ++++++++++++++++ .../param/operation/UpdateShopOperationParam.kt | 10 ---------- .../dto/param/shop/CakeShopDetailParam.java | 16 ++++++++++++++++ .../mysql/dto/param/shop/CakeShopDetailParam.kt | 13 ------------- .../mysql/dto/param/shop/CakeShopInfoParam.java | 12 ++++++++++++ .../mysql/dto/param/shop/CakeShopInfoParam.kt | 9 --------- .../mysql/dto/param/shop/CakeShopLinkParam.java | 9 +++++++++ .../mysql/dto/param/shop/CakeShopLinkParam.kt | 8 -------- .../shop/CakeShopLocationResponseParam.java | 14 ++++++++++++++ .../param/shop/CakeShopLocationResponseParam.kt | 11 ----------- .../dto/param/shop/CakeShopOperationParam.java | 12 ++++++++++++ .../dto/param/shop/CakeShopOperationParam.kt | 10 ---------- .../dto/param/shop/CakeShopSearchParam.java | 11 +++++++++++ .../mysql/dto/param/shop/CakeShopSearchParam.kt | 10 ---------- .../param/shop/CakeShopSearchResponseParam.java | 14 ++++++++++++++ .../param/shop/CakeShopSearchResponseParam.kt | 10 ---------- .../dto/param/shop/CakeShopSimpleParam.java | 9 +++++++++ .../mysql/dto/param/shop/CakeShopSimpleParam.kt | 8 -------- .../dto/param/shop/CakeShopUpdateParam.java | 16 ++++++++++++++++ .../mysql/dto/param/shop/CakeShopUpdateParam.kt | 13 ------------- .../mysql/dto/param/shop/ShopOperationParam.java | 13 +++++++++++++ .../mysql/dto/param/shop/ShopOperationParam.kt | 11 ----------- .../dto/param/shop/UpdateShopAddressParam.java | 16 ++++++++++++++++ .../dto/param/shop/UpdateShopAddressParam.kt | 11 ----------- .../domain/mysql/dto/param/tag/TagParam.java | 7 +++++++ .../cakk/domain/mysql/dto/param/tag/TagParam.kt | 6 ------ .../cakk/domain/mysql/entity/shop/CakeShop.java | 12 ++++++------ .../com/cakk/domain/mysql/entity/user/User.java | 2 ++ 44 files changed, 282 insertions(+), 224 deletions(-) create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.kt create mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.java delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.kt diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.java new file mode 100644 index 00000000..162d2fb2 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.java @@ -0,0 +1,16 @@ +package com.cakk.domain.mysql.dto.param.cake; + +import java.util.List; + +import com.cakk.domain.mysql.entity.cake.Cake; +import com.cakk.domain.mysql.entity.cake.CakeCategory; +import com.cakk.domain.mysql.entity.user.User; + +public record CakeCreateParam( + Cake cake, + List cakeCategories, + List tagNames, + User owner, + Long cakeShopId +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.kt deleted file mode 100644 index 47bd01ca..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeCreateParam.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.cakk.domain.mysql.dto.param.cake - -import com.cakk.domain.mysql.entity.cake.Cake -import com.cakk.domain.mysql.entity.cake.CakeCategory -import com.cakk.domain.mysql.entity.user.User - -data class CakeCreateParam( - val cake: Cake, - val cakeCategories: List, - val tagNames: List, - val owner: User, - val cakeShopId: Long -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.java new file mode 100644 index 00000000..6733831b --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.java @@ -0,0 +1,16 @@ +package com.cakk.domain.mysql.dto.param.cake; + +import java.util.Set; + +import com.cakk.common.enums.CakeDesignCategory; +import com.cakk.domain.mysql.dto.param.tag.TagParam; + +public record CakeDetailParam( + String cakeImageUrl, + String cakeShopName, + String shopBio, + Long cakeShopId, + Set cakeCategories, + Set tags +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.kt deleted file mode 100644 index ae93749f..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeDetailParam.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.cakk.domain.mysql.dto.param.cake - -import com.cakk.common.enums.CakeDesignCategory -import com.cakk.domain.mysql.dto.param.tag.TagParam - -data class CakeDetailParam( - val cakeImageUrl: String, - val cakeShopName: String, - val shopBio: String, - val cakeShopId: Long, - val cakeCategories: Set, - val tags: Set -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.java new file mode 100644 index 00000000..6dd5e69c --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.java @@ -0,0 +1,8 @@ +package com.cakk.domain.mysql.dto.param.cake; + +public record CakeImageResponseParam( + Long cakeShopId, + Long cakeId, + String cakeImageUrl +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.kt deleted file mode 100644 index 34cfde43..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeImageResponseParam.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.cakk.domain.mysql.dto.param.cake - -data class CakeImageResponseParam( - val cakeShopId: Long, - val cakeId: Long, - val cakeImageUrl: String -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.java new file mode 100644 index 00000000..714331f1 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.java @@ -0,0 +1,13 @@ +package com.cakk.domain.mysql.dto.param.cake; + +import org.locationtech.jts.geom.Point; + +public record CakeSearchParam( + + Long cakeId, + String keyword, + Point location, + Integer pageSize +) { + +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.kt deleted file mode 100644 index 72894e5d..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeSearchParam.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.cakk.domain.mysql.dto.param.cake - -import org.locationtech.jts.geom.Point - - -data class CakeSearchParam( - val cakeId: Long, - val keyword: String, - val location: Point, - val pageSize: Int -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.java new file mode 100644 index 00000000..eaa41902 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.java @@ -0,0 +1,15 @@ +package com.cakk.domain.mysql.dto.param.cake; + +import java.util.List; + +import com.cakk.domain.mysql.entity.cake.CakeCategory; +import com.cakk.domain.mysql.entity.user.User; + +public record CakeUpdateParam( + User owner, + Long cakeId, + String cakeImageUrl, + List cakeCategories, + List tagNames +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.kt deleted file mode 100644 index 2d8208b3..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/cake/CakeUpdateParam.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.cakk.domain.mysql.dto.param.cake - -import com.cakk.domain.mysql.entity.cake.CakeCategory -import com.cakk.domain.mysql.entity.user.User - -data class CakeUpdateParam( - val owner: User, - val cakeId: Long, - val cakeImageUrl: String, - val cakeCategories: List, - val tagNames: List -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.java new file mode 100644 index 00000000..5b71379e --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.java @@ -0,0 +1,9 @@ +package com.cakk.domain.mysql.dto.param.like; + +public record HeartCakeImageResponseParam( + Long cakeShopId, + Long cakeId, + Long cakeHeartId, + String cakeImageUrl +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.kt deleted file mode 100644 index 570134b6..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeImageResponseParam.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.cakk.domain.mysql.dto.param.like - - -data class HeartCakeImageResponseParam( - val cakeShopId: Long, - val cakeId: Long, - val cakeHeartId: Long, - val cakeImageUrl: String -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.java new file mode 100644 index 00000000..3ebc2242 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.java @@ -0,0 +1,16 @@ +package com.cakk.domain.mysql.dto.param.like; + +import java.util.Set; + +import com.cakk.common.enums.Days; + +public record HeartCakeShopResponseParam( + Long cakeShopHeartId, + Long cakeShopId, + String thumbnailUrl, + String cakeShopName, + String cakeShopBio, + Set cakeImageUrls, + Set operationDays +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.kt deleted file mode 100644 index b3f4f5e7..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/like/HeartCakeShopResponseParam.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.cakk.domain.mysql.dto.param.like - -import com.cakk.common.enums.Days - -data class HeartCakeShopResponseParam( - val cakeShopHeartId: Long, - val cakeShopId: Long, - val thumbnailUrl: String, - val cakeShopName: String, - val cakeShopBio: String, - val cakeImageUrls: Set, - val operationDays: Set -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.java new file mode 100644 index 00000000..b592bcd0 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.java @@ -0,0 +1,16 @@ +package com.cakk.domain.mysql.dto.param.link; + +import java.util.List; + +import lombok.Builder; + +import com.cakk.domain.mysql.entity.shop.CakeShopLink; +import com.cakk.domain.mysql.entity.user.User; + +@Builder +public record UpdateLinkParam( + User user, + Long cakeShopId, + List cakeShopLinks +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.kt deleted file mode 100644 index 1f2f3fd4..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/link/UpdateLinkParam.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.cakk.domain.mysql.dto.param.link - -import com.cakk.domain.mysql.entity.shop.CakeShopLink -import com.cakk.domain.mysql.entity.user.User - -data class UpdateLinkParam( - val user: User, - val cakeShopId: Long, - val cakeShopLinks: List -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.java new file mode 100644 index 00000000..e658e207 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.java @@ -0,0 +1,16 @@ +package com.cakk.domain.mysql.dto.param.operation; + +import java.util.List; + +import lombok.Builder; + +import com.cakk.domain.mysql.entity.shop.CakeShopOperation; +import com.cakk.domain.mysql.entity.user.User; + +@Builder +public record UpdateShopOperationParam( + List cakeShopOperations, + User user, + Long cakeShopId +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.kt deleted file mode 100644 index 51e57d01..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/operation/UpdateShopOperationParam.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.cakk.domain.mysql.dto.param.operation - -import com.cakk.domain.mysql.entity.shop.CakeShopOperation -import com.cakk.domain.mysql.entity.user.User - -data class UpdateShopOperationParam( - val cakeShopOperations: List, - val user: User, - val cakeShopId: Long -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.java new file mode 100644 index 00000000..03ac503a --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.java @@ -0,0 +1,16 @@ +package com.cakk.domain.mysql.dto.param.shop; + +import java.util.Set; + +import com.cakk.common.enums.Days; + +public record CakeShopDetailParam( + Long cakeShopId, + String shopName, + String thumbnailUrl, + String shopBio, + String shopDescription, + Set operationDays, + Set links +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.kt deleted file mode 100644 index dabe156d..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopDetailParam.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop - -import com.cakk.common.enums.Days - -data class CakeShopDetailParam( - val cakeShopId: Long, - val shopName: String, - val thumbnailUrl: String, - val shopBio: String, - val shopDescription: String, - val operationDays: Set, - val links: Set -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.java new file mode 100644 index 00000000..ede7a3cc --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.java @@ -0,0 +1,12 @@ +package com.cakk.domain.mysql.dto.param.shop; + +import java.util.List; + +import org.locationtech.jts.geom.Point; + +public record CakeShopInfoParam( + String shopAddress, + Point point, + List shopOperationDays +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.kt deleted file mode 100644 index 00f325ce..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopInfoParam.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop - -import org.locationtech.jts.geom.Point - -data class CakeShopInfoParam( - val shopAddress: String, - val point: Point, - val shopOperationDays: List -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.java new file mode 100644 index 00000000..c4ee2823 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.java @@ -0,0 +1,9 @@ +package com.cakk.domain.mysql.dto.param.shop; + +import com.cakk.common.enums.LinkKind; + +public record CakeShopLinkParam( + LinkKind linkKind, + String linkPath +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.kt deleted file mode 100644 index 31e694d2..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLinkParam.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop - -import com.cakk.common.enums.LinkKind - -data class CakeShopLinkParam( - val linkKind: LinkKind, - val linkPath: String -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.java new file mode 100644 index 00000000..bd33a01f --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.java @@ -0,0 +1,14 @@ +package com.cakk.domain.mysql.dto.param.shop; + +import java.util.Set; + +public record CakeShopLocationResponseParam( + Long cakeShopId, + String thumbnailUrl, + String cakeShopName, + String cakeShopBio, + Set cakeImageUrls, + Double longitude, + Double latitude +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.kt deleted file mode 100644 index 2e8c14cb..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopLocationResponseParam.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop - -data class CakeShopLocationResponseParam( - val cakeShopId: Long, - val thumbnailUrl: String, - val cakeShopName: String, - val cakeShopBio: String, - val cakeImageUrls: Set, - val longitude: Double, - val latitude: Double -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.java new file mode 100644 index 00000000..76b3b1f0 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.java @@ -0,0 +1,12 @@ +package com.cakk.domain.mysql.dto.param.shop; + +import java.time.LocalTime; + +import com.cakk.common.enums.Days; + +public record CakeShopOperationParam( + Days operationDay, + LocalTime operationStartTime, + LocalTime operationEndTime +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.kt deleted file mode 100644 index 02e0f539..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopOperationParam.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop - -import com.cakk.common.enums.Days -import java.time.LocalTime - -data class CakeShopOperationParam( - val operationDay: Days, - val operationStartTime: LocalTime, - val operationEndTime: LocalTime -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.java new file mode 100644 index 00000000..7d4149fb --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.java @@ -0,0 +1,11 @@ +package com.cakk.domain.mysql.dto.param.shop; + +import org.locationtech.jts.geom.Point; + +public record CakeShopSearchParam( + Long cakeShopId, + String keyword, + Point location, + Integer pageSize +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.kt deleted file mode 100644 index ca398948..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchParam.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop - -import org.locationtech.jts.geom.Point - -data class CakeShopSearchParam( - val cakeShopId: Long, - val keyword: String, - val location: Point, - val pageSize: Int -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.java new file mode 100644 index 00000000..c7ca2fd4 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.java @@ -0,0 +1,14 @@ +package com.cakk.domain.mysql.dto.param.shop; + +import java.util.Set; + +public record CakeShopSearchResponseParam( + Long cakeShopId, + String thumbnailUrl, + String cakeShopName, + String cakeShopBio, + Set cakeImageUrls, + Set operationDays +) { + +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.kt deleted file mode 100644 index d5e3a4f5..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSearchResponseParam.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop - -data class CakeShopSearchResponseParam( - val cakeShopId: Long, - val thumbnailUrl: String, - val cakeShopName: String, - val cakeShopBio: String, - val cakeImageUrls: Set, - val operationDays: Set -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.java new file mode 100644 index 00000000..396d1922 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.java @@ -0,0 +1,9 @@ +package com.cakk.domain.mysql.dto.param.shop; + +public record CakeShopSimpleParam( + Long cakeShopId, + String thumbnailUrl, + String cakeShopName, + String cakeShopBio +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.kt deleted file mode 100644 index b752586f..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopSimpleParam.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop - -data class CakeShopSimpleParam( - val cakeShopId: Long, - val thumbnailUrl: String, - val cakeShopName: String, - val cakeShopBio: String -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.java new file mode 100644 index 00000000..9167cf07 --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.java @@ -0,0 +1,16 @@ +package com.cakk.domain.mysql.dto.param.shop; + +import lombok.Builder; + +import com.cakk.domain.mysql.entity.user.User; + +@Builder +public record CakeShopUpdateParam( + String thumbnailUrl, + String shopName, + String shopBio, + String shopDescription, + User user, + Long cakeShopId +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.kt deleted file mode 100644 index 8047394a..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/CakeShopUpdateParam.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop - -import com.cakk.domain.mysql.entity.user.User -import lombok.Builder - -data class CakeShopUpdateParam( - val thumbnailUrl: String, - val shopName: String, - val shopBio: String, - val shopDescription: String, - val user: User, - val cakeShopId: Long -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.java new file mode 100644 index 00000000..9b3b439e --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.java @@ -0,0 +1,13 @@ +package com.cakk.domain.mysql.dto.param.shop; + +import java.time.LocalTime; + +import com.cakk.common.enums.Days; + +public record ShopOperationParam( + Long cakeShopId, + Days operationDay, + LocalTime operationStartTime, + LocalTime operationEndTime +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.kt deleted file mode 100644 index 4cc9f304..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/ShopOperationParam.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop - -import com.cakk.common.enums.Days -import java.time.LocalTime - -data class ShopOperationParam( - val cakeShopId: Long, - val operationDay: Days, - val operationStartTime: LocalTime, - val operationEndTime: LocalTime -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.java new file mode 100644 index 00000000..1768788e --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.java @@ -0,0 +1,16 @@ +package com.cakk.domain.mysql.dto.param.shop; + +import org.locationtech.jts.geom.Point; + +import lombok.Builder; + +import com.cakk.domain.mysql.entity.user.User; + +@Builder +public record UpdateShopAddressParam( + String shopAddress, + Point location, + User user, + Long cakeShopId +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.kt deleted file mode 100644 index 1ac49ce5..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/shop/UpdateShopAddressParam.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.cakk.domain.mysql.dto.param.shop - -import com.cakk.domain.mysql.entity.user.User -import org.locationtech.jts.geom.Point - -data class UpdateShopAddressParam( - val shopAddress: String, - val location: Point, - val user: User, - val cakeShopId: Long -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.java new file mode 100644 index 00000000..b9bba88a --- /dev/null +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.java @@ -0,0 +1,7 @@ +package com.cakk.domain.mysql.dto.param.tag; + +public record TagParam( + Long tagId, + String tagName +) { +} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.kt deleted file mode 100644 index adb9e593..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/dto/param/tag/TagParam.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.cakk.domain.mysql.dto.param.tag - -data class TagParam( - val tagId: Long, - val tagName: String -) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/shop/CakeShop.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/shop/CakeShop.java index 8002ff2a..e3016caa 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/shop/CakeShop.java +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/shop/CakeShop.java @@ -144,10 +144,10 @@ public boolean isHeartedBy(final User user) { } public void updateBasicInformation(final CakeShopUpdateParam param) { - thumbnailUrl = param.getThumbnailUrl(); - shopName = param.getShopName(); - shopBio = param.getShopBio(); - shopDescription = param.getShopDescription(); + thumbnailUrl = param.thumbnailUrl(); + shopName = param.shopName(); + shopBio = param.shopBio(); + shopDescription = param.shopDescription(); } public void registerBusinessInformation(final BusinessInformation businessInformation) { @@ -168,8 +168,8 @@ public void updateShopLinks(final List cakeShopLinks) { } public void updateShopAddress(final UpdateShopAddressParam param) { - shopAddress = param.getShopAddress(); - location = param.getLocation(); + shopAddress = param.shopAddress(); + location = param.location(); } public void addShopOperationDays(final List cakeShopOperations) { diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/user/User.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/user/User.java index 7884c6a7..f68e4b8d 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/user/User.java +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/user/User.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; import lombok.AccessLevel; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; @@ -42,6 +43,7 @@ import com.cakk.domain.mysql.entity.shop.CakeShopLike; @Getter +@AllArgsConstructor(access = AccessLevel.PRIVATE) @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity @Table(name = "users") From 93b6fbd00a20bf42dbcfedfd456d748111580b22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Mon, 16 Sep 2024 18:43:03 +0900 Subject: [PATCH 09/18] =?UTF-8?q?Fix=20|=20CAKK-82=20|=20record=20type?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=95=84=EB=93=9C=20=EC=A0=91?= =?UTF-8?q?=EA=B7=BC=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cakk/admin/mapper/PointMapper.kt | 6 ++-- .../api/controller/shop/ShopController.java | 2 +- .../dto/request/shop/UpdateShopRequest.java | 20 +++++------ .../java/com/cakk/api/mapper/CakeMapper.java | 20 +++++------ .../java/com/cakk/api/mapper/ShopMapper.java | 20 +++++------ .../cakk/api/service/cake/CakeService.java | 16 ++++----- .../cakk/api/service/shop/ShopService.java | 16 ++++----- .../cakk/api/common/base/IntegrationTest.java | 8 ++--- .../com/cakk/api/common/base/ServiceTest.java | 25 +++++++++----- ...hMockCustomUserSecurityContextFactory.java | 6 ++-- .../integration/cake/CakeIntegrationTest.java | 12 +++---- .../integration/shop/ShopIntegrationTest.java | 34 +++++++++---------- .../user/MyPageIntegrationTest.java | 6 ++-- .../service/like/HeartConcurrencyTest.java | 18 +++++----- .../api/service/like/LikeConcurrencyTest.java | 12 +++---- .../api/service/like/LikeServiceTest.java | 6 ++-- .../api/service/user/UserServiceTest.java | 6 +--- 17 files changed, 120 insertions(+), 113 deletions(-) diff --git a/cakk-admin/src/main/kotlin/com/cakk/admin/mapper/PointMapper.kt b/cakk-admin/src/main/kotlin/com/cakk/admin/mapper/PointMapper.kt index 8af5fd4f..55043853 100644 --- a/cakk-admin/src/main/kotlin/com/cakk/admin/mapper/PointMapper.kt +++ b/cakk-admin/src/main/kotlin/com/cakk/admin/mapper/PointMapper.kt @@ -1,5 +1,7 @@ package com.cakk.admin.mapper +import com.cakk.common.enums.ReturnCode +import com.cakk.common.exception.CakkException import org.locationtech.jts.geom.Coordinate import org.locationtech.jts.geom.GeometryFactory import org.locationtech.jts.geom.Point @@ -10,9 +12,9 @@ private const val SPATIAL_REFERENCE_IDENTIFIER_NUMBER = 4326 private val geometryFactory = GeometryFactory(PrecisionModel(), SPATIAL_REFERENCE_IDENTIFIER_NUMBER) -fun supplyPointBy(latitude: Double?, longitude: Double?): Point? { +fun supplyPointBy(latitude: Double?, longitude: Double?): Point { if (Objects.isNull(latitude) || Objects.isNull(longitude)) { - return null + throw CakkException(ReturnCode.WRONG_PARAMETER) } return geometryFactory.createPoint(Coordinate(longitude!!, latitude!!)) } diff --git a/cakk-api/src/main/java/com/cakk/api/controller/shop/ShopController.java b/cakk-api/src/main/java/com/cakk/api/controller/shop/ShopController.java index 37eb546f..20a0da0c 100644 --- a/cakk-api/src/main/java/com/cakk/api/controller/shop/ShopController.java +++ b/cakk-api/src/main/java/com/cakk/api/controller/shop/ShopController.java @@ -142,7 +142,7 @@ public ApiResponse updateBasicInformation( @PathVariable Long cakeShopId, @Valid @RequestBody UpdateShopRequest request ) { - shopService.updateBasicInformation(request.toParam(user, cakeShopId)); + //shopService.updateBasicInformation(request.toParam(user, cakeShopId)); return ApiResponse.success(); } diff --git a/cakk-api/src/main/java/com/cakk/api/dto/request/shop/UpdateShopRequest.java b/cakk-api/src/main/java/com/cakk/api/dto/request/shop/UpdateShopRequest.java index 56d24ece..9db382fd 100644 --- a/cakk-api/src/main/java/com/cakk/api/dto/request/shop/UpdateShopRequest.java +++ b/cakk-api/src/main/java/com/cakk/api/dto/request/shop/UpdateShopRequest.java @@ -17,14 +17,14 @@ public record UpdateShopRequest( String shopDescription ) { - public CakeShopUpdateParam toParam(User user, Long cakeShopId) { - return CakeShopUpdateParam.builder() - .user(user) - .cakeShopId(cakeShopId) - .thumbnailUrl(thumbnailUrl()) - .shopName(shopName()) - .shopBio(shopBio()) - .shopDescription(shopDescription()) - .build(); - } + // public CakeShopUpdateParam toParam(User user, Long cakeShopId) { + // return CakeShopUpdateParam.builder() + // .user(user) + // .cakeShopId(cakeShopId) + // .thumbnailUrl(thumbnailUrl()) + // .shopName(shopName()) + // .shopBio(shopBio()) + // .shopDescription(shopDescription()) + // .build(); + // } } diff --git a/cakk-api/src/main/java/com/cakk/api/mapper/CakeMapper.java b/cakk-api/src/main/java/com/cakk/api/mapper/CakeMapper.java index 0dd83751..2b125ee4 100644 --- a/cakk-api/src/main/java/com/cakk/api/mapper/CakeMapper.java +++ b/cakk-api/src/main/java/com/cakk/api/mapper/CakeMapper.java @@ -27,7 +27,7 @@ public static CakeImageListResponse supplyCakeImageListResponse(final List cakeImage.cakeId == cakeId) + .filter(cakeImage -> cakeImage.cakeId() == cakeId) .findFirst() .ifPresent(sortedCakeImages::add); } @@ -57,13 +57,13 @@ public static HeartCakeImageListResponse supplyHeartCakeImageListResponseBy(fina return HeartCakeImageListResponse.builder() .cakeImages(cakeImages) - .lastCakeHeartId(cakeImages.isEmpty() ? null : cakeImages.get(size - 1).cakeHeartId) + .lastCakeHeartId(cakeImages.isEmpty() ? null : cakeImages.get(size - 1).cakeHeartId()) .size(cakeImages.size()) .build(); } public static CakeDetailResponse cakeDetailResponseFromParam(final CakeDetailParam param) { - Set tags = param.tags; + Set tags = param.tags(); for (TagParam tagParam : tags) { if (isEmptyTag(tagParam)) { @@ -73,11 +73,11 @@ public static CakeDetailResponse cakeDetailResponseFromParam(final CakeDetailPar } return CakeDetailResponse.builder() - .cakeShopId(param.cakeShopId) - .cakeShopName(param.cakeShopName) - .cakeImageUrl(param.cakeImageUrl) - .shopBio(param.shopBio) - .cakeCategories(param.cakeCategories) + .cakeShopId(param.cakeShopId()) + .cakeShopName(param.cakeShopName()) + .cakeImageUrl(param.cakeImageUrl()) + .shopBio(param.shopBio()) + .cakeCategories(param.cakeCategories()) .tags(tags) .build(); } @@ -89,6 +89,6 @@ public static Cake supplyCakeBy(String cakeImageUrl) { } private static boolean isEmptyTag(TagParam tagParam) { - return isNull(tagParam.tagId()) || isNull(tagParam.tagName() ); + return isNull(tagParam.tagId()) || isNull(tagParam.tagName()); } } diff --git a/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java b/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java index fdf340bf..0aac6578 100644 --- a/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java +++ b/cakk-api/src/main/java/com/cakk/api/mapper/ShopMapper.java @@ -21,9 +21,9 @@ import com.cakk.api.dto.response.shop.CakeShopOwnerResponse; import com.cakk.api.dto.response.shop.CakeShopSearchResponse; import com.cakk.api.dto.response.shop.CakeShopSimpleResponse; -import com.cakk.domain.mysql.dto.param.like.HeartCakeShopResponseParam; import com.cakk.domain.mysql.bo.shop.CakeShopByLocationParam; import com.cakk.domain.mysql.bo.shop.CakeShopBySearchParam; +import com.cakk.domain.mysql.dto.param.like.HeartCakeShopResponseParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopDetailParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopInfoParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopLocationResponseParam; @@ -74,10 +74,10 @@ public static List supplyCakeShopOperationsBy( public static CakeShopSimpleResponse cakeShopSimpleResponseFromParam(final CakeShopSimpleParam param) { return CakeShopSimpleResponse.builder() - .cakeShopId(param.cakeShopId) - .thumbnailUrl(param.thumbnailUrl) - .cakeShopName(param.cakeShopName) - .cakeShopBio(param.cakeShopBio) + .cakeShopId(param.cakeShopId()) + .thumbnailUrl(param.thumbnailUrl()) + .cakeShopName(param.cakeShopName()) + .cakeShopBio(param.cakeShopBio()) .build(); } @@ -157,11 +157,11 @@ public static CakeShopSearchResponse supplyCakeShopSearchResponseBy(final List cakeShops) { final int size = cakeShops.size(); - cakeShops.forEach(it -> keepOnlyNElements(it.cakeImageUrls, 4)); + cakeShops.forEach(it -> keepOnlyNElements(it.cakeImageUrls(), 4)); return HeartCakeShopListResponse.builder() .cakeShops(cakeShops) - .lastCakeShopHeartId(cakeShops.isEmpty() ? null : cakeShops.get(size - 1).cakeShopHeartId) + .lastCakeShopHeartId(cakeShops.isEmpty() ? null : cakeShops.get(size - 1).cakeShopHeartId()) .size(size) .build(); } @@ -208,8 +208,8 @@ public static CakeShopByMineResponse supplyCakeShopByMineResponseBy(final List tags = tagReadFacade.getTagsByTagName(param.getTagNames()); - final List cakeCategories = param.getCakeCategories(); + final CakeShop cakeShop = cakeShopReadFacade.searchByIdAndOwner(param.cakeShopId(), param.owner()); + final Cake cake = param.cake(); + final List tags = tagReadFacade.getTagsByTagName(param.tagNames()); + final List cakeCategories = param.cakeCategories(); cakeManageFacade.create(cakeShop, cake, tags, cakeCategories); } @Transactional public void updateCake(CakeUpdateParam param) { - final Cake cake = cakeReadFacade.findWithCakeTagsAndCakeCategories(param.getCakeId(), param.getOwner()); - final List tags = tagReadFacade.getTagsByTagName(param.getTagNames()); - final String cakeImageUrl = param.getCakeImageUrl(); - final List cakeCategories = param.getCakeCategories(); + final Cake cake = cakeReadFacade.findWithCakeTagsAndCakeCategories(param.cakeId(), param.owner()); + final List tags = tagReadFacade.getTagsByTagName(param.tagNames()); + final String cakeImageUrl = param.cakeImageUrl(); + final List cakeCategories = param.cakeCategories(); cakeManageFacade.update(cake, cakeImageUrl, tags, cakeCategories); } diff --git a/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java b/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java index f5635b80..f69669e8 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/shop/ShopService.java @@ -36,12 +36,12 @@ import com.cakk.core.facade.cake.CakeShopReadFacade; import com.cakk.core.facade.shop.CakeShopManageFacade; import com.cakk.core.facade.user.UserReadFacade; +import com.cakk.domain.mysql.bo.shop.CakeShopByLocationParam; +import com.cakk.domain.mysql.bo.shop.CakeShopBySearchParam; import com.cakk.domain.mysql.bo.shop.CakeShops; import com.cakk.domain.mysql.bo.user.VerificationPolicy; import com.cakk.domain.mysql.dto.param.link.UpdateLinkParam; import com.cakk.domain.mysql.dto.param.operation.UpdateShopOperationParam; -import com.cakk.domain.mysql.bo.shop.CakeShopByLocationParam; -import com.cakk.domain.mysql.bo.shop.CakeShopBySearchParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopDetailParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopInfoParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopSimpleParam; @@ -93,27 +93,27 @@ public void promoteUserToBusinessOwner(final PromotionRequest request) { @Transactional public void updateBasicInformation(final CakeShopUpdateParam param) { - final CakeShop cakeShop = cakeShopReadFacade.searchByIdAndOwner(param.getCakeShopId(), param.getUser()); + final CakeShop cakeShop = cakeShopReadFacade.searchByIdAndOwner(param.cakeShopId(), param.user()); cakeShop.updateBasicInformation(param); } @Transactional public void updateShopLinks(final UpdateLinkParam param) { - final CakeShop cakeShop = cakeShopReadFacade.searchWithShopLinks(param.getUser(), param.getCakeShopId()); - cakeShop.updateShopLinks(param.getCakeShopLinks()); + final CakeShop cakeShop = cakeShopReadFacade.searchWithShopLinks(param.user(), param.cakeShopId()); + cakeShop.updateShopLinks(param.cakeShopLinks()); } @Transactional public void updateShopAddress(final UpdateShopAddressParam param) { - final CakeShop cakeShop = cakeShopReadFacade.searchByIdAndOwner(param.getCakeShopId(), param.getUser()); + final CakeShop cakeShop = cakeShopReadFacade.searchByIdAndOwner(param.cakeShopId(), param.user()); cakeShop.updateShopAddress(param); } @Transactional public void updateShopOperationDays(final UpdateShopOperationParam param) { - final CakeShop cakeShop = cakeShopReadFacade.searchWithOperations(param.getUser(), param.getCakeShopId()); - cakeShop.updateShopOperationDays(param.getCakeShopOperations()); + final CakeShop cakeShop = cakeShopReadFacade.searchWithOperations(param.user(), param.cakeShopId()); + cakeShop.updateShopOperationDays(param.cakeShopOperations()); } @Transactional(readOnly = true) diff --git a/cakk-api/src/test/java/com/cakk/api/common/base/IntegrationTest.java b/cakk-api/src/test/java/com/cakk/api/common/base/IntegrationTest.java index 5ab9f014..a8bfc26a 100644 --- a/cakk-api/src/test/java/com/cakk/api/common/base/IntegrationTest.java +++ b/cakk-api/src/test/java/com/cakk/api/common/base/IntegrationTest.java @@ -18,8 +18,8 @@ import com.cakk.api.provider.jwt.JwtProvider; import com.cakk.api.vo.JsonWebToken; +import com.cakk.core.facade.user.UserReadFacade; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.UserReader; @ExtendWith(SpringExtension.class) @ActiveProfiles("test") @@ -42,7 +42,7 @@ public abstract class IntegrationTest { private JwtProvider jwtProvider; @Autowired - protected UserReader userReader; + protected UserReadFacade userReadFacade; protected static final String BASE_URL = "http://localhost:"; @@ -82,13 +82,13 @@ protected HttpHeaders getAuthHeaderById(Long id) { } protected JsonWebToken getAuthToken() { - final User user = userReader.findByUserId(1L); + final User user = userReadFacade.findByUserId(1L); return jwtProvider.generateToken(user); } private JsonWebToken getAuthTokenById(Long id) { - final User user = userReader.findByUserId(id); + final User user = userReadFacade.findByUserId(id); return jwtProvider.generateToken(user); } diff --git a/cakk-api/src/test/java/com/cakk/api/common/base/ServiceTest.java b/cakk-api/src/test/java/com/cakk/api/common/base/ServiceTest.java index 43e3dc34..cc20a688 100644 --- a/cakk-api/src/test/java/com/cakk/api/common/base/ServiceTest.java +++ b/cakk-api/src/test/java/com/cakk/api/common/base/ServiceTest.java @@ -14,11 +14,13 @@ import net.jqwik.api.Arbitraries; import com.navercorp.fixturemonkey.FixtureMonkey; +import com.navercorp.fixturemonkey.api.instantiator.Instantiator; import com.navercorp.fixturemonkey.api.introspector.BuilderArbitraryIntrospector; import com.navercorp.fixturemonkey.api.introspector.ConstructorPropertiesArbitraryIntrospector; import com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector; import com.navercorp.fixturemonkey.jakarta.validation.plugin.JakartaValidationPlugin; +import com.cakk.common.enums.Gender; import com.cakk.common.enums.Provider; import com.cakk.common.enums.Role; import com.cakk.domain.mysql.config.JpaConfig; @@ -59,14 +61,21 @@ protected final FixtureMonkey getBuilderMonkey() { protected User getUser() { return getConstructorMonkey().giveMeBuilder(User.class) - .set("id", Arbitraries.longs().greaterOrEqual(10)) - .set("provider", Arbitraries.of(Provider.class)) - .set("providerId", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) - .set("email", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) - .set("nickname", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) - .set("birthday", LocalDate.now()) - .set("role", Arbitraries.of(Role.class)) - .sample(); + .instantiate( + User.class, + Instantiator.constructor() + .parameter(long.class) + .parameter(Provider.class) + .parameter(String.class) + .parameter(String.class) + .parameter(String.class) + .parameter(String.class) + .parameter(Gender.class) + .parameter(LocalDate.class) + .parameter(String.class) + .parameter(String.class) + .parameter(Role.class) + ).sample(); } public static Point supplyPointBy(Double latitude, Double longitude) { diff --git a/cakk-api/src/test/java/com/cakk/api/common/config/WithMockCustomUserSecurityContextFactory.java b/cakk-api/src/test/java/com/cakk/api/common/config/WithMockCustomUserSecurityContextFactory.java index f1d16c6d..40441a72 100644 --- a/cakk-api/src/test/java/com/cakk/api/common/config/WithMockCustomUserSecurityContextFactory.java +++ b/cakk-api/src/test/java/com/cakk/api/common/config/WithMockCustomUserSecurityContextFactory.java @@ -9,20 +9,20 @@ import com.cakk.api.common.annotation.MockCustomUser; import com.cakk.api.vo.OAuthUserDetails; +import com.cakk.core.facade.user.UserReadFacade; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.UserReader; @Component public class WithMockCustomUserSecurityContextFactory implements WithSecurityContextFactory { @Autowired - private UserReader userReader; + private UserReadFacade userReadFacade; @Override public SecurityContext createSecurityContext(MockCustomUser annotation) { final SecurityContext securityContext = SecurityContextHolder.createEmptyContext(); - final User user = userReader.findByUserId(1L); + final User user = userReadFacade.findByUserId(1L); final OAuthUserDetails userDetails = new OAuthUserDetails(user); final UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); diff --git a/cakk-api/src/test/java/com/cakk/api/integration/cake/CakeIntegrationTest.java b/cakk-api/src/test/java/com/cakk/api/integration/cake/CakeIntegrationTest.java index 586bd7f3..7cd923d0 100644 --- a/cakk-api/src/test/java/com/cakk/api/integration/cake/CakeIntegrationTest.java +++ b/cakk-api/src/test/java/com/cakk/api/integration/cake/CakeIntegrationTest.java @@ -27,9 +27,9 @@ import com.cakk.common.enums.CakeDesignCategory; import com.cakk.common.enums.ReturnCode; import com.cakk.common.response.ApiResponse; +import com.cakk.core.facade.cake.CakeReadFacade; import com.cakk.domain.mysql.dto.param.cake.CakeImageResponseParam; import com.cakk.domain.mysql.entity.cake.CakeCategory; -import com.cakk.domain.mysql.repository.reader.CakeCategoryReader; import com.cakk.domain.redis.repository.CakeViewsRedisRepository; @SqlGroup({ @@ -45,7 +45,7 @@ class CakeIntegrationTest extends IntegrationTest { private static final String API_URL = "/api/v1/cakes"; @Autowired - private CakeCategoryReader cakeCategoryReader; + private CakeReadFacade cakeReadFacade; @Autowired private CakeViewsRedisRepository cakeViewsRedisRepository; @@ -101,7 +101,7 @@ void searchByCategory1() { assertEquals(lastCakeId, data.lastCakeId()); assertEquals(5, data.size()); data.cakeImages().forEach(cakeImage -> { - CakeCategory cakeCategory = cakeCategoryReader.findByCakeId(cakeImage.cakeId); + CakeCategory cakeCategory = cakeReadFacade.findCakeCategoryByCakeId(cakeImage.cakeId()); assertEquals(CakeDesignCategory.FLOWER, cakeCategory.getCakeDesignCategory()); }); } @@ -132,7 +132,7 @@ void searchByCategory2() { assertEquals(lastCakeId, data.lastCakeId()); assertEquals(5, data.size()); data.cakeImages().forEach(cakeImage -> { - CakeCategory cakeCategory = cakeCategoryReader.findByCakeId(cakeImage.cakeId); + CakeCategory cakeCategory = cakeReadFacade.findCakeCategoryByCakeId(cakeImage.cakeId()); assertEquals(CakeDesignCategory.FLOWER, cakeCategory.getCakeDesignCategory()); }); } @@ -189,7 +189,7 @@ void searchByShopId1() { assertEquals(lastCakeId, data.lastCakeId()); assertEquals(3, data.size()); data.cakeImages().forEach(cakeImage -> { - assertEquals(Long.valueOf(1L), cakeImage.cakeShopId); + assertEquals(Long.valueOf(1), cakeImage.cakeShopId()); }); } @@ -219,7 +219,7 @@ void searchByShopId2() { assertEquals(lastCakeId, data.lastCakeId()); assertEquals(3, data.size()); data.cakeImages().forEach(cakeImage -> - assertEquals(Long.valueOf(1L), cakeImage.cakeShopId) + assertEquals(Long.valueOf(1), cakeImage.cakeShopId()) ); } diff --git a/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java b/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java index 2bc96dba..0f1fb1d2 100644 --- a/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java +++ b/cakk-api/src/test/java/com/cakk/api/integration/shop/ShopIntegrationTest.java @@ -335,8 +335,8 @@ void findAllShopsByLocationBased1() { assertThat(data.cakeShops().size()).isGreaterThanOrEqualTo(0); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.getCakeImageUrls().size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.getCakeShopName()).isNotNull(); + assertThat(cakeShop.cakeImageUrls().size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.cakeShopName()).isNotNull(); }); } @@ -492,9 +492,9 @@ void findAllShopsByLocationBased2() { assertEquals(8, data.cakeShops().size()); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.getCakeShopId()).isIn(4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L); - assertThat(cakeShop.getCakeImageUrls().size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.getCakeShopName()).isNotNull(); + assertThat(cakeShop.cakeShopId()).isIn(4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L); + assertThat(cakeShop.cakeImageUrls().size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.cakeShopName()).isNotNull(); }); } @@ -522,10 +522,10 @@ void searchCakeShopsByKeywordsWithConditions1() { assertEquals(7, data.size()); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.getCakeImageUrls().size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.getCakeShopId()).isNotNull(); - assertThat(cakeShop.getCakeShopName()).isNotNull(); - assertThat(cakeShop.getOperationDays()).isNotNull(); + assertThat(cakeShop.cakeImageUrls().size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.cakeShopId()).isNotNull(); + assertThat(cakeShop.cakeShopName()).isNotNull(); + assertThat(cakeShop.operationDays()).isNotNull(); }); } @@ -553,10 +553,10 @@ void searchCakeShopsByKeywordWithConditions2() { assertThat(data.size()).isGreaterThanOrEqualTo(0); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.getCakeImageUrls().size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.getCakeShopId()).isNotNull(); - assertThat(cakeShop.getCakeShopName()).isNotNull(); - assertThat(cakeShop.getOperationDays()).isNotNull(); + assertThat(cakeShop.cakeImageUrls().size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.cakeShopId()).isNotNull(); + assertThat(cakeShop.cakeShopName()).isNotNull(); + assertThat(cakeShop.operationDays()).isNotNull(); }); } @@ -583,10 +583,10 @@ void searchCakeShopsByKeywordWithConditions3() { assertEquals(4, data.size()); data.cakeShops().forEach(cakeShop -> { - assertThat(cakeShop.getCakeImageUrls().size()).isLessThanOrEqualTo(4); - assertThat(cakeShop.getCakeShopId()).isNotNull(); - assertThat(cakeShop.getCakeShopName()).isNotNull(); - assertThat(cakeShop.getOperationDays()).isNotNull(); + assertThat(cakeShop.cakeImageUrls().size()).isLessThanOrEqualTo(4); + assertThat(cakeShop.cakeShopId()).isNotNull(); + assertThat(cakeShop.cakeShopName()).isNotNull(); + assertThat(cakeShop.operationDays()).isNotNull(); }); } diff --git a/cakk-api/src/test/java/com/cakk/api/integration/user/MyPageIntegrationTest.java b/cakk-api/src/test/java/com/cakk/api/integration/user/MyPageIntegrationTest.java index a971ab99..d802a008 100644 --- a/cakk-api/src/test/java/com/cakk/api/integration/user/MyPageIntegrationTest.java +++ b/cakk-api/src/test/java/com/cakk/api/integration/user/MyPageIntegrationTest.java @@ -63,7 +63,7 @@ void profile() { assertEquals(ReturnCode.SUCCESS.getCode(), response.getReturnCode()); assertEquals(ReturnCode.SUCCESS.getMessage(), response.getReturnMessage()); - final User user = userReader.findByUserId(getUserId()); + final User user = userReadFacade.findByUserId(getUserId()); assertEquals(body.nickname(), user.getNickname()); assertEquals(body.profileImageUrl(), user.getProfileImageUrl()); assertEquals(body.email(), user.getEmail()); @@ -128,7 +128,7 @@ void modify() { assertEquals(ReturnCode.SUCCESS.getCode(), response.getReturnCode()); assertEquals(ReturnCode.SUCCESS.getMessage(), response.getReturnMessage()); - final User user = userReader.findByUserId(1L); + final User user = userReadFacade.findByUserId(1L); assertEquals(body.nickname(), user.getNickname()); assertEquals(body.profileImageUrl(), user.getProfileImageUrl()); assertEquals(body.email(), user.getEmail()); @@ -157,6 +157,6 @@ void withdraw() { assertEquals(ReturnCode.SUCCESS.getCode(), response.getReturnCode()); assertEquals(ReturnCode.SUCCESS.getMessage(), response.getReturnMessage()); - assertThrows(CakkException.class, () -> userReader.findByUserId(1L)); + assertThrows(CakkException.class, () -> userReadFacade.findByUserId(1L)); } } diff --git a/cakk-api/src/test/java/com/cakk/api/service/like/HeartConcurrencyTest.java b/cakk-api/src/test/java/com/cakk/api/service/like/HeartConcurrencyTest.java index 43dbab3f..82d41a26 100644 --- a/cakk-api/src/test/java/com/cakk/api/service/like/HeartConcurrencyTest.java +++ b/cakk-api/src/test/java/com/cakk/api/service/like/HeartConcurrencyTest.java @@ -15,12 +15,12 @@ import org.springframework.test.context.jdbc.SqlGroup; import com.cakk.api.common.annotation.TestWithDisplayName; +import com.cakk.core.facade.cake.CakeReadFacade; +import com.cakk.core.facade.cake.CakeShopReadFacade; +import com.cakk.core.facade.user.UserReadFacade; import com.cakk.domain.mysql.entity.cake.Cake; import com.cakk.domain.mysql.entity.shop.CakeShop; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.CakeReader; -import com.cakk.domain.mysql.repository.reader.CakeShopReader; -import com.cakk.domain.mysql.repository.reader.UserReader; @SpringBootTest(properties = "spring.profiles.active=test") @SqlGroup({ @@ -35,19 +35,19 @@ class HeartConcurrencyTest { private HeartService heartService; @Autowired - private CakeReader cakeReader; + private CakeReadFacade cakeReadFacade; @Autowired - private CakeShopReader cakeShopReader; + private CakeShopReadFacade cakeShopReadFacade; @Autowired - private UserReader userReader; + private UserReadFacade userReadFacade; private List userList; @BeforeEach void initUserList() { - userList = userReader.findAll(); + userList = userReadFacade.findAll(); } @TestWithDisplayName("케이크 하트 동작 시, 동시성 문제가 발생하지 않는다.") @@ -75,7 +75,7 @@ void executeHeartCakeWithLock() throws InterruptedException { latch.await(); // then - final Cake cake = cakeReader.findById(cakeId); + final Cake cake = cakeReadFacade.findById(cakeId); assertEquals(100, cake.getHeartCount().intValue()); } @@ -104,7 +104,7 @@ void executeHeartCakeShopWithLock() throws InterruptedException { latch.await(); // then - final CakeShop cakeShop = cakeShopReader.findById(cakeShopId); + final CakeShop cakeShop = cakeShopReadFacade.findById(cakeShopId); assertEquals(100, cakeShop.getHeartCount().intValue()); } } diff --git a/cakk-api/src/test/java/com/cakk/api/service/like/LikeConcurrencyTest.java b/cakk-api/src/test/java/com/cakk/api/service/like/LikeConcurrencyTest.java index 41bf975a..eaa12ca2 100644 --- a/cakk-api/src/test/java/com/cakk/api/service/like/LikeConcurrencyTest.java +++ b/cakk-api/src/test/java/com/cakk/api/service/like/LikeConcurrencyTest.java @@ -14,10 +14,10 @@ import org.springframework.test.context.jdbc.SqlGroup; import com.cakk.api.common.annotation.TestWithDisplayName; +import com.cakk.core.facade.cake.CakeShopReadFacade; +import com.cakk.core.facade.user.UserReadFacade; import com.cakk.domain.mysql.entity.shop.CakeShop; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.CakeShopReader; -import com.cakk.domain.mysql.repository.reader.UserReader; @SpringBootTest(properties = "spring.profiles.active=test") @SqlGroup({ @@ -32,16 +32,16 @@ public class LikeConcurrencyTest { private LikeService likeService; @Autowired - private CakeShopReader cakeShopReader; + private CakeShopReadFacade cakeShopReadFacade; @Autowired - private UserReader userReader; + private UserReadFacade userReadFacade; private User user; @BeforeEach void initUser() { - user = userReader.findByUserId(1L); + user = userReadFacade.findByUserId(1L); } @TestWithDisplayName("케이크샵 좋아요 동작 시, 동시성 문제가 발생하지 않는다.") @@ -67,7 +67,7 @@ void executeLikeCakeShopWithLock() throws InterruptedException { latch.await(); // then - final CakeShop cakeShop = cakeShopReader.findById(cakeShopId); + final CakeShop cakeShop = cakeShopReadFacade.findById(cakeShopId); assertEquals(50, cakeShop.getLikeCount().intValue()); } } diff --git a/cakk-api/src/test/java/com/cakk/api/service/like/LikeServiceTest.java b/cakk-api/src/test/java/com/cakk/api/service/like/LikeServiceTest.java index 281865bf..044ac8e7 100644 --- a/cakk-api/src/test/java/com/cakk/api/service/like/LikeServiceTest.java +++ b/cakk-api/src/test/java/com/cakk/api/service/like/LikeServiceTest.java @@ -11,10 +11,10 @@ import com.cakk.api.common.annotation.TestWithDisplayName; import com.cakk.api.common.base.ServiceTest; +import com.cakk.core.facade.cake.CakeShopReadFacade; import com.cakk.core.facade.user.UserLikeFacade; import com.cakk.domain.mysql.entity.shop.CakeShop; import com.cakk.domain.mysql.entity.user.User; -import com.cakk.domain.mysql.repository.reader.CakeShopReader; @DisplayName("좋아요 기능 관련 비즈니스 로직 테스트") public class LikeServiceTest extends ServiceTest { @@ -22,7 +22,7 @@ public class LikeServiceTest extends ServiceTest { private LikeService likeService; @Mock - private CakeShopReader cakeShopReader; + private CakeShopReadFacade cakeShopReadFacade; @Mock private UserLikeFacade userLikeFacade; @@ -39,7 +39,7 @@ void likeCakeShop() { .set("location", supplyPointBy(Arbitraries.doubles().sample(), Arbitraries.doubles().sample())) .sample(); - doReturn(cakeShop).when(cakeShopReader).findByIdWithLike(cakeShopId); + doReturn(cakeShop).when(cakeShopReadFacade).findByIdWithLike(cakeShopId); doNothing().when(userLikeFacade).likeCakeShop(user, cakeShop); // when diff --git a/cakk-api/src/test/java/com/cakk/api/service/user/UserServiceTest.java b/cakk-api/src/test/java/com/cakk/api/service/user/UserServiceTest.java index 7b3314fa..4a7777db 100644 --- a/cakk-api/src/test/java/com/cakk/api/service/user/UserServiceTest.java +++ b/cakk-api/src/test/java/com/cakk/api/service/user/UserServiceTest.java @@ -35,11 +35,7 @@ class UserServiceTest extends ServiceTest { @TestWithDisplayName("유저 프로필을 조회한다.") void findProfile1() { // given - final User user = getConstructorMonkey().giveMeBuilder(User.class) - .set("id", Arbitraries.longs().greaterOrEqual(10)) - .set("provider", Arbitraries.of(Provider.class)) - .set("providerId", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) - .sample(); + final User user = getUser(); doReturn(user).when(userReadFacade).findByUserId(user.getId()); From e59f44275361d7ee896374aa61965438a97d5ac4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Mon, 16 Sep 2024 19:01:30 +0900 Subject: [PATCH 10/18] =?UTF-8?q?Feature=20|=20CAKK-82=20|=20=EC=A7=81?= =?UTF-8?q?=EB=A0=AC=ED=99=94=20=EC=97=AD=EC=A7=81=EB=A0=AC=ED=99=94=20Del?= =?UTF-8?q?eteAt=EC=97=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cakk/domain/mysql/entity/user/User.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/user/User.java b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/user/User.java index f68e4b8d..15fdb2cf 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/user/User.java +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/entity/user/User.java @@ -23,7 +23,9 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -90,6 +92,8 @@ public class User extends AuditEntity { private Role role; @ColumnDefault("null") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) @Column(name = "deleted_at") private LocalDateTime deletedAt; From 089fbb5d875b0ec8bc16147bea5c5772f6eaf7bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Mon, 16 Sep 2024 19:02:44 +0900 Subject: [PATCH 11/18] =?UTF-8?q?Fix=20|=20CAKK-82=20|=20=EB=84=A4?= =?UTF-8?q?=EC=9D=B4=EB=B0=8D=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20Repository=20=EC=A3=BC=EC=9E=85?= =?UTF-8?q?=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cakk/api/service/like/HeartService.java | 2 +- .../com/cakk/core/facade/cake/CakeShopUserReadFacade.kt | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/cakk-api/src/main/java/com/cakk/api/service/like/HeartService.java b/cakk-api/src/main/java/com/cakk/api/service/like/HeartService.java index 56f213bd..16e42e18 100644 --- a/cakk-api/src/main/java/com/cakk/api/service/like/HeartService.java +++ b/cakk-api/src/main/java/com/cakk/api/service/like/HeartService.java @@ -54,7 +54,7 @@ public HeartCakeShopListResponse searchCakeShopByCursorAndHeart( final HeartCakeShopSearchRequest dto, final User signInUser ) { - final List cakeShops = cakeShopUserReadFacade.searchAllByCursorAndHeart( + final List cakeShops = cakeShopUserReadFacade.searchAllCakeShopsByCursorAndHeart( dto.cakeShopHeartId(), signInUser.getId(), dto.pageSize() diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt index 1321241d..cf7aef76 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt @@ -3,7 +3,6 @@ package com.cakk.core.facade.cake import com.cakk.core.annotation.DomainFacade import com.cakk.domain.mysql.dto.param.like.HeartCakeImageResponseParam import com.cakk.domain.mysql.dto.param.like.HeartCakeShopResponseParam -import com.cakk.domain.mysql.repository.jpa.CakeShopHeartJpaRepository import com.cakk.domain.mysql.repository.query.CakeHeartQueryRepository import com.cakk.domain.mysql.repository.query.CakeShopHeartQueryRepository @@ -11,10 +10,9 @@ import com.cakk.domain.mysql.repository.query.CakeShopHeartQueryRepository @DomainFacade class CakeShopUserReadFacade( private val cakeShopHeartQueryRepository: CakeShopHeartQueryRepository, - private val cakeShopHeartJpaRepository: CakeShopHeartJpaRepository, private val cakeHeartQueryRepository: CakeHeartQueryRepository ) { - fun searchAllByCursorAndHeart( + fun searchAllCakeShopsByCursorAndHeart( cakeShopHeartId: Long?, userId: Long?, pageSize: Int From fc05e053bd34e93e4336f29d702284c7be2ca2bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Mon, 16 Sep 2024 19:17:51 +0900 Subject: [PATCH 12/18] =?UTF-8?q?Fix=20|=20CAKK-82=20|=20Fixture=20Monkey?= =?UTF-8?q?=20constructor=20=EC=83=9D=EC=84=B1=EC=9E=90=20=ED=99=9C?= =?UTF-8?q?=EC=9A=A9=20=EC=8B=9C,=20id=20null=20=EC=A3=BC=EC=9E=85?= =?UTF-8?q?=EB=90=98=EB=8A=94=20=EA=B1=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cakk/core/common/base/FacadeTest.kt | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/cakk-core/src/test/kotlin/com/cakk/core/common/base/FacadeTest.kt b/cakk-core/src/test/kotlin/com/cakk/core/common/base/FacadeTest.kt index 675862d5..b9771c2e 100644 --- a/cakk-core/src/test/kotlin/com/cakk/core/common/base/FacadeTest.kt +++ b/cakk-core/src/test/kotlin/com/cakk/core/common/base/FacadeTest.kt @@ -1,11 +1,13 @@ package com.cakk.core.common.base +import com.cakk.common.enums.Gender import com.cakk.common.enums.Provider import com.cakk.common.enums.Role import com.cakk.domain.mysql.entity.cake.Cake import com.cakk.domain.mysql.entity.shop.CakeShop import com.cakk.domain.mysql.entity.user.User import com.navercorp.fixturemonkey.FixtureMonkey +import com.navercorp.fixturemonkey.api.instantiator.Instantiator import com.navercorp.fixturemonkey.api.introspector.BuilderArbitraryIntrospector import com.navercorp.fixturemonkey.api.introspector.ConstructorPropertiesArbitraryIntrospector import com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector @@ -46,14 +48,21 @@ abstract class FacadeTest { protected fun getUserFixture(role: Role): User { return getConstructorMonkey().giveMeBuilder(User::class.java) - .set("id", Arbitraries.longs().greaterOrEqual(10)) - .set("provider", Arbitraries.of(Provider::class.java)) - .set("providerId", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) - .set("email", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) - .set("nickname", Arbitraries.strings().withCharRange('a', 'z').ofMinLength(1).ofMaxLength(50)) - .set("birthday", LocalDate.now()) - .set("role", role) - .sample() + .instantiate( + User::class.java, + Instantiator.constructor() + .parameter(Long::class.javaPrimitiveType) + .parameter(Provider::class.java) + .parameter(String::class.java) + .parameter(String::class.java) + .parameter(String::class.java) + .parameter(String::class.java) + .parameter(Gender::class.java) + .parameter(LocalDate::class.java) + .parameter(String::class.java) + .parameter(String::class.java) + .parameter(role.javaClass) + ).sample() } protected fun getCakeFixture(): Cake { From d5e56e3f53ad5ffa43f00f2445add268817c3575 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Mon, 16 Sep 2024 19:33:32 +0900 Subject: [PATCH 13/18] =?UTF-8?q?Fix=20|=20CAKK-82=20|=20=EC=9C=A0?= =?UTF-8?q?=EC=A0=80=20=EC=A0=80=EC=9E=A5=20=EB=A1=9C=EC=A7=81=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/cakk/core/facade/user/UserManageFacade.kt | 5 ++--- .../test/kotlin/com/cakk/core/facade/UserManageFacadeTest.kt | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt index 4019ddb3..e0044cfb 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt @@ -16,9 +16,8 @@ class UserManageFacade( ) { fun create(user: User): User { - userJpaRepository.findByProviderId(user.providerId) ?: throw CakkException(ReturnCode.ALREADY_EXIST_USER) - - return userJpaRepository.save(user) + userJpaRepository.findByProviderId(user.providerId) ?: return userJpaRepository.save(user) + throw CakkException(ReturnCode.ALREADY_EXIST_USER) } fun updateProfile(user: User, param: ProfileUpdateParam) { diff --git a/cakk-core/src/test/kotlin/com/cakk/core/facade/UserManageFacadeTest.kt b/cakk-core/src/test/kotlin/com/cakk/core/facade/UserManageFacadeTest.kt index 080945d5..0bd67d9a 100644 --- a/cakk-core/src/test/kotlin/com/cakk/core/facade/UserManageFacadeTest.kt +++ b/cakk-core/src/test/kotlin/com/cakk/core/facade/UserManageFacadeTest.kt @@ -3,7 +3,6 @@ package com.cakk.core.facade import org.mockito.Mockito.* import java.time.LocalDateTime -import java.util.Optional import org.mockito.InjectMocks import org.mockito.Mock @@ -41,7 +40,7 @@ internal class UserManageFacadeTest : FacadeTest() { // given val user = getUserFixture(Role.USER) - doReturn(Optional.ofNullable(null)).`when`(userJpaRepository).findByProviderId(user.providerId) + doReturn(null).`when`(userJpaRepository).findByProviderId(user.providerId) doReturn(user).`when`(userJpaRepository).save(user) // when @@ -57,7 +56,7 @@ internal class UserManageFacadeTest : FacadeTest() { // given val user = getUserFixture(Role.USER) - doReturn(Optional.of(user)).`when`(userJpaRepository).findByProviderId(user.providerId) + doReturn(user).`when`(userJpaRepository).findByProviderId(user.providerId) // when val exception = shouldThrow { From 5d6a72437446af137788df8be381b33e391f1bf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Mon, 16 Sep 2024 20:03:02 +0900 Subject: [PATCH 14/18] =?UTF-8?q?Test=20|=20CAKK-82=20|=20=EC=BC=80?= =?UTF-8?q?=EC=9D=B4=ED=81=AC=EC=83=B5=20=EA=B8=B0=EB=B3=B8=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=88=98=EC=A0=95=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/shop/ShopServiceTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java b/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java index b3cedcb9..69196267 100644 --- a/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java +++ b/cakk-api/src/test/java/com/cakk/api/service/shop/ShopServiceTest.java @@ -38,6 +38,7 @@ import com.cakk.domain.mysql.dto.param.shop.CakeShopDetailParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopInfoParam; import com.cakk.domain.mysql.dto.param.shop.CakeShopSimpleParam; +import com.cakk.domain.mysql.dto.param.shop.CakeShopUpdateParam; import com.cakk.domain.mysql.dto.param.user.CertificationParam; import com.cakk.domain.mysql.entity.shop.CakeShop; import com.cakk.domain.mysql.entity.user.BusinessInformation; @@ -339,4 +340,24 @@ void searchCakeShopsByCursorAndViews2() { verify(cakeShopViewsRedisRepository, times(1)).findTopShopIdsByOffsetAndCount(offset, pageSize); verify(cakeShopReadFacade, times(0)).searchShopsByShopIds(cakeShopIds); } + + @TestWithDisplayName("케이크샵 기본 정보 수정을 한다") + void updateCakeShopBasicInformation() { + //given + CakeShopUpdateParam cakeShopUpdateParam = getConstructorMonkey().giveMeBuilder(CakeShopUpdateParam.class) + .set("cakeShopId", Arbitraries.longs().greaterOrEqual(1)) + .set("user", getUser()) + .sample(); + CakeShop cakeShopFixture = getCakeShopFixture(); + + doReturn(cakeShopFixture) + .when(cakeShopReadFacade).searchByIdAndOwner(cakeShopUpdateParam.cakeShopId(), cakeShopUpdateParam.user()); + + //when, then + shopService.updateBasicInformation(cakeShopUpdateParam); + + //verify + verify(cakeShopReadFacade, times(1)) + .searchByIdAndOwner(cakeShopUpdateParam.cakeShopId(), cakeShopUpdateParam.user()); + } } From d4674e3c03adaea1627541e220418030b4100394 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Mon, 16 Sep 2024 23:55:00 +0900 Subject: [PATCH 15/18] =?UTF-8?q?Refactor=20|=20CAKK-82=20|=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EB=A6=AC=EB=B7=B0=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/shop/ShopController.java | 2 +- .../dto/request/shop/UpdateShopRequest.java | 20 +++++++++---------- .../com/cakk/core/facade/tag/TagReadFacade.kt | 13 +++++------- .../cakk/core/facade/user/UserManageFacade.kt | 5 +++-- .../cakk/core/facade/user/UserReadFacade.kt | 6 +----- 5 files changed, 20 insertions(+), 26 deletions(-) diff --git a/cakk-api/src/main/java/com/cakk/api/controller/shop/ShopController.java b/cakk-api/src/main/java/com/cakk/api/controller/shop/ShopController.java index 20a0da0c..37eb546f 100644 --- a/cakk-api/src/main/java/com/cakk/api/controller/shop/ShopController.java +++ b/cakk-api/src/main/java/com/cakk/api/controller/shop/ShopController.java @@ -142,7 +142,7 @@ public ApiResponse updateBasicInformation( @PathVariable Long cakeShopId, @Valid @RequestBody UpdateShopRequest request ) { - //shopService.updateBasicInformation(request.toParam(user, cakeShopId)); + shopService.updateBasicInformation(request.toParam(user, cakeShopId)); return ApiResponse.success(); } diff --git a/cakk-api/src/main/java/com/cakk/api/dto/request/shop/UpdateShopRequest.java b/cakk-api/src/main/java/com/cakk/api/dto/request/shop/UpdateShopRequest.java index 9db382fd..56d24ece 100644 --- a/cakk-api/src/main/java/com/cakk/api/dto/request/shop/UpdateShopRequest.java +++ b/cakk-api/src/main/java/com/cakk/api/dto/request/shop/UpdateShopRequest.java @@ -17,14 +17,14 @@ public record UpdateShopRequest( String shopDescription ) { - // public CakeShopUpdateParam toParam(User user, Long cakeShopId) { - // return CakeShopUpdateParam.builder() - // .user(user) - // .cakeShopId(cakeShopId) - // .thumbnailUrl(thumbnailUrl()) - // .shopName(shopName()) - // .shopBio(shopBio()) - // .shopDescription(shopDescription()) - // .build(); - // } + public CakeShopUpdateParam toParam(User user, Long cakeShopId) { + return CakeShopUpdateParam.builder() + .user(user) + .cakeShopId(cakeShopId) + .thumbnailUrl(thumbnailUrl()) + .shopName(shopName()) + .shopBio(shopBio()) + .shopDescription(shopDescription()) + .build(); + } } diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt index 37b6a075..dd7737be 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt @@ -12,13 +12,10 @@ class TagReadFacade( fun getTagsByTagName(tagNames: List): List { val tags: List = tagJpaRepository.findTagsByTagNameIsIn(tagNames) - return tagNames.stream() - .map { tagName: String -> - tags - .stream() - .filter { tag: Tag -> tag.tagName == tagName } - .findAny() - .orElse(tagJpaRepository.save(TagMapper.supplyTagBy(tagName))) - }.toList() + return tagNames.map { + tags.find { + tag: Tag -> tag.tagName == it + } ?: tagJpaRepository.save(TagMapper.supplyTagBy(it)) + }.toList() } } diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt index e0044cfb..1bc05649 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserManageFacade.kt @@ -16,8 +16,9 @@ class UserManageFacade( ) { fun create(user: User): User { - userJpaRepository.findByProviderId(user.providerId) ?: return userJpaRepository.save(user) - throw CakkException(ReturnCode.ALREADY_EXIST_USER) + userJpaRepository.findByProviderId(user.providerId)?.let { + throw CakkException(ReturnCode.ALREADY_EXIST_USER) + } ?: return userJpaRepository.save(user) } fun updateProfile(user: User, param: ProfileUpdateParam) { diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt index dcba662a..5f510ba5 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt @@ -24,11 +24,7 @@ class UserReadFacade( } fun findByIdWithAll(userId: Long): User { - val user: User = userQueryRepository.searchByIdWithAll(userId) - if (Objects.isNull(user)) { - throw CakkException(ReturnCode.NOT_EXIST_USER) - } - return user + return userQueryRepository.searchByIdWithAll(userId) ?: throw CakkException(ReturnCode.NOT_EXIST_USER) } fun findAll(): List { From 4a5801465505d9893d5b889596642d248e5f52e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Tue, 17 Sep 2024 00:35:26 +0900 Subject: [PATCH 16/18] =?UTF-8?q?Refactor=20|=20CAKK-82=20|=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EA=B3=B5?= =?UTF-8?q?=EB=B0=B1=20=EB=B0=8F=20=EA=B0=9C=ED=96=89=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../facade/cake/BusinessInformationReadFacade.kt | 2 ++ .../com/cakk/core/facade/cake/CakeReadFacade.kt | 2 ++ .../com/cakk/core/facade/cake/CakeShopReadFacade.kt | 2 ++ .../cakk/core/facade/cake/CakeShopUserReadFacade.kt | 2 ++ .../com/cakk/core/facade/tag/TagReadFacade.kt | 1 + .../com/cakk/core/facade/user/UserReadFacade.kt | 2 ++ .../cakk/domain/mysql/config/DataSourceConfig.kt | 1 + .../com/cakk/domain/mysql/config/JacksonConfig.kt | 1 + .../com/cakk/domain/mysql/config/P6spyConfig.kt | 1 + .../domain/mysql/config/P6spySqlFormatterConfig.kt | 4 +++- .../com/cakk/domain/mysql/config/QuerydslConfig.kt | 2 ++ .../domain/mysql/converter/DayOfWeekConverter.kt | 4 +++- .../domain/mysql/converter/LinkKindConverter.kt | 4 +++- .../mysql/converter/VerificationStatusConverter.kt | 4 +++- .../jpa/BusinessInformationJpaRepository.kt | 4 +++- .../repository/jpa/CakeCategoryJpaRepository.kt | 4 +++- .../mysql/repository/jpa/CakeHeartJpaRepository.kt | 4 +++- .../repository/jpa/CakeShopHeartJpaRepository.kt | 13 ------------- .../repository/jpa/CakeShopLikeJpaRepository.kt | 9 --------- .../repository/jpa/CakeShopLinkJpaRepository.kt | 4 +++- .../jpa/CakeShopOperationJpaRepository.kt | 4 +++- .../domain/mysql/repository/jpa/TagJpaRepository.kt | 4 +++- .../mysql/repository/jpa/UserJpaRepository.kt | 2 ++ .../test/java/com/cakk/domain/base/DomainTest.kt | 4 +++- .../test/java/com/cakk/domain/base/FacadeTest.kt | 1 + .../domain/entity/user/BusinessInformationTest.kt | 4 +++- .../domain/entity/user/VerificationPolicyTest.kt | 4 +++- 27 files changed, 58 insertions(+), 35 deletions(-) delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.kt delete mode 100644 cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.kt diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt index 89172a28..86d3c061 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/BusinessInformationReadFacade.kt @@ -12,6 +12,7 @@ import com.cakk.domain.mysql.repository.jpa.BusinessInformationJpaRepository class BusinessInformationReadFacade( private val businessInformationJpaRepository: BusinessInformationJpaRepository ) { + fun isExistBusinessInformation(owner: User, cakeShopId: Long): Boolean { return businessInformationJpaRepository.existsBusinessInformationByUserAndCakeShop_Id(owner, cakeShopId) } @@ -28,3 +29,4 @@ class BusinessInformationReadFacade( return businessInformationJpaRepository.findBusinessInformationByUserId(userId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) } } + diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt index 8906e461..2b2f8a09 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeReadFacade.kt @@ -21,6 +21,7 @@ class CakeReadFacade( private val cakeCategoryJpaRepository: CakeCategoryJpaRepository, private val cakeQueryRepository: CakeQueryRepository ) { + fun findById(cakeId: Long): Cake { return cakeJpaRepository.findById(cakeId).orElseThrow { CakkException(ReturnCode.NOT_EXIST_CAKE) } } @@ -79,3 +80,4 @@ class CakeReadFacade( return cakeCategoryJpaRepository.findByCakeId(cakeId) ?: throw CakkException(ReturnCode.NOT_EXIST_CAKE_CATEGORY) } } + diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt index 042ec666..847588a8 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopReadFacade.kt @@ -28,6 +28,7 @@ class CakeShopReadFacade( private val cakeShopLinkJpaRepository: CakeShopLinkJpaRepository, private val businessInformationJpaRepository: BusinessInformationJpaRepository ) { + fun findById(cakeShopId: Long): CakeShop { return cakeShopJpaRepository.findById(cakeShopId).orElseThrow { CakkException(ReturnCode.NOT_EXIST_CAKE_SHOP) } } @@ -100,3 +101,4 @@ class CakeShopReadFacade( return cakeShopLinkJpaRepository.findAllByCakeShopId(cakeShopId) } } + diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt index cf7aef76..634f03b7 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt @@ -12,6 +12,7 @@ class CakeShopUserReadFacade( private val cakeShopHeartQueryRepository: CakeShopHeartQueryRepository, private val cakeHeartQueryRepository: CakeHeartQueryRepository ) { + fun searchAllCakeShopsByCursorAndHeart( cakeShopHeartId: Long?, userId: Long?, @@ -29,3 +30,4 @@ class CakeShopUserReadFacade( return cakeHeartQueryRepository.searchCakeImagesByCursorAndHeart(cakeHeartId, userId, pageSize) } } + diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt index dd7737be..4a8aa2ca 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/tag/TagReadFacade.kt @@ -19,3 +19,4 @@ class TagReadFacade( }.toList() } } + diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt index 5f510ba5..b9973265 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt @@ -15,6 +15,7 @@ class UserReadFacade( private val userJpaRepository: UserJpaRepository, private val userQueryRepository: UserQueryRepository ) { + fun findByUserId(userId: Long): User { return userJpaRepository.findById(userId).orElseThrow { CakkException(ReturnCode.NOT_EXIST_USER) } } @@ -31,3 +32,4 @@ class UserReadFacade( return userJpaRepository.findAll() } } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.kt index 3bb9b48f..254273b9 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/DataSourceConfig.kt @@ -22,3 +22,4 @@ class DataSourceConfig { return HikariDataSource(hikariConfig()) } } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.kt index 7028ac33..96635745 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/JacksonConfig.kt @@ -16,3 +16,4 @@ class JacksonConfig { return objectMapper } } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.kt index ce59199c..8d8ed345 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spyConfig.kt @@ -11,3 +11,4 @@ class P6spyConfig { P6SpyOptions.getActiveInstance().logMessageFormat = P6spySqlFormatterConfig::class.java.name } } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.kt index 8019cd17..3fb5f2bd 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/P6spySqlFormatterConfig.kt @@ -8,7 +8,8 @@ import java.util.* import java.util.function.Predicate class P6spySqlFormatterConfig : MessageFormattingStrategy { - override fun formatMessage( + + override fun formatMessage( connectionId: Int, now: String, elapsed: Long, @@ -96,3 +97,4 @@ class P6spySqlFormatterConfig : MessageFormattingStrategy { private const val COMMENT = "comment" } } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.kt index e740d9d2..0de280c0 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/config/QuerydslConfig.kt @@ -9,6 +9,7 @@ import org.springframework.context.annotation.Configuration @Configuration class QuerydslConfig { + @PersistenceContext private val entityManager: EntityManager? = null @Bean @@ -16,3 +17,4 @@ class QuerydslConfig { return JPAQueryFactory(JPQLTemplates.DEFAULT, entityManager) } } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.kt index 8dc4f1db..3be243de 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/DayOfWeekConverter.kt @@ -7,7 +7,8 @@ import jakarta.persistence.AttributeConverter import java.util.stream.Stream class DayOfWeekConverter : AttributeConverter { - override fun convertToDatabaseColumn(days: Days?): Int? { + + override fun convertToDatabaseColumn(days: Days?): Int? { return days?.code } @@ -20,3 +21,4 @@ class DayOfWeekConverter : AttributeConverter { .orElseThrow { CakkException(ReturnCode.INTERNAL_SERVER_ERROR) } } } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.kt index 05f52e01..9bf4d2ed 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/LinkKindConverter.kt @@ -7,7 +7,8 @@ import jakarta.persistence.AttributeConverter import java.util.stream.Stream class LinkKindConverter : AttributeConverter { - override fun convertToDatabaseColumn(linkKind: LinkKind?): String? { + + override fun convertToDatabaseColumn(linkKind: LinkKind?): String? { return linkKind?.value } @@ -20,3 +21,4 @@ class LinkKindConverter : AttributeConverter { .orElseThrow { CakkException(ReturnCode.INTERNAL_SERVER_ERROR) } } } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.kt index 47143b97..db5705e8 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/converter/VerificationStatusConverter.kt @@ -7,7 +7,8 @@ import jakarta.persistence.AttributeConverter import java.util.stream.Stream class VerificationStatusConverter : AttributeConverter { - override fun convertToDatabaseColumn(verificationStatus: VerificationStatus?): Int? { + + override fun convertToDatabaseColumn(verificationStatus: VerificationStatus?): Int? { return verificationStatus?.code } @@ -20,3 +21,4 @@ class VerificationStatusConverter : AttributeConverter { - @Query("select bi from BusinessInformation as bi join fetch bi.cakeShop " + + @Query("select bi from BusinessInformation as bi join fetch bi.cakeShop " + "where bi.cakeShop.id =:cakeShopId") fun findBusinessInformationWithCakeShop(@Param("cakeShopId") cakeShopId: Long): BusinessInformation? @@ -28,3 +29,4 @@ interface BusinessInformationJpaRepository : JpaRepository { - fun findByCakeId(cakeId: Long?): CakeCategory? + + fun findByCakeId(cakeId: Long?): CakeCategory? } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.kt index c6f46605..abf4112a 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeHeartJpaRepository.kt @@ -7,7 +7,9 @@ import org.springframework.data.jpa.repository.JpaRepository import java.util.* interface CakeHeartJpaRepository : JpaRepository { - fun findAllByUser(user: User): List + + fun findAllByUser(user: User): List fun findByUserAndCake(user: User, cake: Cake): CakeHeart? fun existsByUserAndCake(user: User, cake: Cake): Boolean } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.kt deleted file mode 100644 index 787eb2d7..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopHeartJpaRepository.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa - -import com.cakk.domain.mysql.entity.shop.CakeShop -import com.cakk.domain.mysql.entity.shop.CakeShopHeart -import com.cakk.domain.mysql.entity.user.User -import org.springframework.data.jpa.repository.JpaRepository -import java.util.* - -interface CakeShopHeartJpaRepository : JpaRepository { - fun findAllByUser(user: User): List - fun findByUserAndCakeShop(user: User, cakeShop: CakeShop): CakeShopHeart? - fun existsByUserAndCakeShop(user: User, cakeShop: CakeShop): Boolean -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.kt deleted file mode 100644 index def381bc..00000000 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLikeJpaRepository.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.cakk.domain.mysql.repository.jpa - -import com.cakk.domain.mysql.entity.shop.CakeShopLike -import com.cakk.domain.mysql.entity.user.User -import org.springframework.data.jpa.repository.JpaRepository - -interface CakeShopLikeJpaRepository : JpaRepository { - fun countByCakeShopIdAndUser(cakeShopId: Long, user: User): Int -} diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.kt index b1879451..61db8abb 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopLinkJpaRepository.kt @@ -4,5 +4,7 @@ import com.cakk.domain.mysql.entity.shop.CakeShopLink import org.springframework.data.jpa.repository.JpaRepository interface CakeShopLinkJpaRepository : JpaRepository { - fun findAllByCakeShopId(cakeShopId: Long): List + + fun findAllByCakeShopId(cakeShopId: Long): List } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.kt index c540b84a..8b494520 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/CakeShopOperationJpaRepository.kt @@ -4,5 +4,7 @@ import com.cakk.domain.mysql.entity.shop.CakeShopOperation import org.springframework.data.jpa.repository.JpaRepository interface CakeShopOperationJpaRepository : JpaRepository { - fun findAllByCakeShopId(cakeShopId: Long): List + + fun findAllByCakeShopId(cakeShopId: Long): List } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.kt index 5fadc618..eaf1c2f5 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/TagJpaRepository.kt @@ -7,6 +7,8 @@ import java.util.* @Repository interface TagJpaRepository : JpaRepository { - fun findTagByTagName(tagName: String?): Tag? + + fun findTagByTagName(tagName: String?): Tag? fun findTagsByTagNameIsIn(tagNames: List): List } + diff --git a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.kt b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.kt index 1ff70520..489b63ee 100644 --- a/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.kt +++ b/cakk-domain/mysql/src/main/java/com/cakk/domain/mysql/repository/jpa/UserJpaRepository.kt @@ -5,5 +5,7 @@ import org.springframework.data.jpa.repository.JpaRepository import java.util.* interface UserJpaRepository : JpaRepository { + fun findByProviderId(providerId: String): User? } + diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.kt b/cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.kt index a41503fe..b2f171e3 100644 --- a/cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.kt +++ b/cakk-domain/mysql/src/test/java/com/cakk/domain/base/DomainTest.kt @@ -22,7 +22,8 @@ import org.locationtech.jts.geom.Point import org.locationtech.jts.geom.PrecisionModel abstract class DomainTest { - protected val reflectionMonkey: FixtureMonkey + + protected val reflectionMonkey: FixtureMonkey protected get() = FixtureMonkey.builder() .plugin(JakartaValidationPlugin()) .objectIntrospector(FieldReflectionArbitraryIntrospector.INSTANCE) @@ -99,3 +100,4 @@ abstract class DomainTest { } } } + diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.kt b/cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.kt index f98ab245..468db72d 100644 --- a/cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.kt +++ b/cakk-domain/mysql/src/test/java/com/cakk/domain/base/FacadeTest.kt @@ -85,3 +85,4 @@ abstract class FacadeTest { } } } + diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.kt b/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.kt index 285a1f2c..2317228d 100644 --- a/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.kt +++ b/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/BusinessInformationTest.kt @@ -11,7 +11,8 @@ import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test internal class BusinessInformationTest : DomainTest() { - private fun getBusinessInformationFixtureWithUser(verificationStatus: VerificationStatus, role: Role): BusinessInformation { + + private fun getBusinessInformationFixtureWithUser(verificationStatus: VerificationStatus, role: Role): BusinessInformation { return constructorMonkey.giveMeBuilder(BusinessInformation::class.java) .setNotNull("businessNumber") .set("businessNumber", Arbitraries.strings().withCharRange('a', 'z').ofMaxLength(20)) @@ -102,3 +103,4 @@ internal class BusinessInformationTest : DomainTest() { Assertions.assertThat(businessInformation.isBusinessOwnerCandidate(verificationPolicy)).isFalse } } + diff --git a/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.kt b/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.kt index 24b5b52d..db4148c1 100644 --- a/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.kt +++ b/cakk-domain/mysql/src/test/java/com/cakk/domain/entity/user/VerificationPolicyTest.kt @@ -9,7 +9,8 @@ import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test class VerificationPolicyTest : DomainTest() { - @Test + + @Test @DisplayName("인증 정책은 사용자를 케이크샵 주인으로 승격시켜준다") fun approveToBusinessOwner() { val verificationPolicy = verificationPolicy @@ -67,3 +68,4 @@ class VerificationPolicyTest : DomainTest() { ) { verificationPolicy.requestCertificationBusinessOwner(businessInformation, param) } } } + From 50a9f193d2d2d12c3e01fb2a9df341fd9604fce1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Tue, 17 Sep 2024 00:44:30 +0900 Subject: [PATCH 17/18] =?UTF-8?q?Fix=20|=20CAKK-82=20|=20User=20Test=20Fix?= =?UTF-8?q?ture=20=EC=83=9D=EC=84=B1=EB=B0=A9=EB=B2=95=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/test/kotlin/com/cakk/core/common/base/FacadeTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cakk-core/src/test/kotlin/com/cakk/core/common/base/FacadeTest.kt b/cakk-core/src/test/kotlin/com/cakk/core/common/base/FacadeTest.kt index b9771c2e..4346fc12 100644 --- a/cakk-core/src/test/kotlin/com/cakk/core/common/base/FacadeTest.kt +++ b/cakk-core/src/test/kotlin/com/cakk/core/common/base/FacadeTest.kt @@ -51,7 +51,7 @@ abstract class FacadeTest { .instantiate( User::class.java, Instantiator.constructor() - .parameter(Long::class.javaPrimitiveType) + .parameter(Long::class.java) .parameter(Provider::class.java) .parameter(String::class.java) .parameter(String::class.java) From 5823a32047bbd84acf53e343b12a611cd9b2a62f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=83=9C=EC=9A=A9?= Date: Tue, 17 Sep 2024 11:57:32 +0900 Subject: [PATCH 18/18] =?UTF-8?q?Fix=20|=20CAKK-82=20|=20=EA=B0=9C?= =?UTF-8?q?=ED=96=89=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt | 1 - .../main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt | 3 --- 2 files changed, 4 deletions(-) diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt index 634f03b7..1fdaf4f6 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/cake/CakeShopUserReadFacade.kt @@ -6,7 +6,6 @@ import com.cakk.domain.mysql.dto.param.like.HeartCakeShopResponseParam import com.cakk.domain.mysql.repository.query.CakeHeartQueryRepository import com.cakk.domain.mysql.repository.query.CakeShopHeartQueryRepository - @DomainFacade class CakeShopUserReadFacade( private val cakeShopHeartQueryRepository: CakeShopHeartQueryRepository, diff --git a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt index b9973265..cdaa3dbf 100644 --- a/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt +++ b/cakk-core/src/main/kotlin/com/cakk/core/facade/user/UserReadFacade.kt @@ -6,9 +6,6 @@ import com.cakk.core.annotation.DomainFacade import com.cakk.domain.mysql.entity.user.User import com.cakk.domain.mysql.repository.jpa.UserJpaRepository import com.cakk.domain.mysql.repository.query.UserQueryRepository -import java.util.* - - @DomainFacade class UserReadFacade(