From 7b1fd90196198629f7792473905762c5bd210c81 Mon Sep 17 00:00:00 2001 From: Yeonri Date: Mon, 22 Sep 2025 19:35:42 +0900 Subject: [PATCH 1/4] =?UTF-8?q?fix=20:=20=EB=8C=80=ED=95=99=EA=B5=90=20?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?-=20findAllByRegionCodeAnKeywords=20=EB=A9=94=EC=84=9C=EB=93=9C?= =?UTF-8?q?=EC=97=90=EC=84=9C=20term=EC=9D=84=20=EA=B3=A0=EB=A0=A4?= =?UTF-8?q?=ED=95=98=EC=97=AC=20=EC=A1=B0=ED=9A=8C=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/ApplicationQueryService.java | 2 +- .../repository/custom/UnivApplyInfoFilterRepository.java | 2 +- .../repository/custom/UnivApplyInfoFilterRepositoryImpl.java | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index 7eba19de3..769b4f82b 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -45,7 +45,7 @@ public ApplicationsResponse getApplicants(long siteUserId, String regionCode, St // 1. 대학 지원 정보 필터링 (regionCode, keyword) SiteUser siteUser = siteUserRepository.findById(siteUserId) .orElseThrow(() -> new CustomException(USER_NOT_FOUND)); - List univApplyInfos = universityFilterRepository.findAllByRegionCodeAndKeywords(regionCode, List.of(keyword)); + List univApplyInfos = universityFilterRepository.findAllByRegionCodeAndKeywords(regionCode, List.of(keyword), term); if (univApplyInfos.isEmpty()) { return new ApplicationsResponse(List.of(), List.of(), List.of()); } diff --git a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java index c8a6601e3..b3a567e5d 100644 --- a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java @@ -6,7 +6,7 @@ public interface UnivApplyInfoFilterRepository { - List findAllByRegionCodeAndKeywords(String regionCode, List keywords); + List findAllByRegionCodeAndKeywords(String regionCode, List keywords, String term); List findAllByFilter(LanguageTestType testType, String testScore, String term, List countryKoreanNames); diff --git a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java index 3786f697c..987083de0 100644 --- a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java +++ b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java @@ -31,7 +31,7 @@ public UnivApplyInfoFilterRepositoryImpl(EntityManager em) { } @Override - public List findAllByRegionCodeAndKeywords(String regionCode, List keywords) { + public List findAllByRegionCodeAndKeywords(String regionCode, List keywords, String term) { QUnivApplyInfo univApplyInfo = QUnivApplyInfo.univApplyInfo; QUniversity university = QUniversity.university; QCountry country = QCountry.country; @@ -45,6 +45,7 @@ public List findAllByRegionCodeAndKeywords(String regionCode, Lis .where( regionCodeEq(country, regionCode) .and(countryOrUniversityContainsKeyword(country, university, keywords)) + .and(univApplyInfo.term.eq(term)) ) .distinct() .fetch(); From 04c8e381297cc4f4aca476743f2345b37e5b622e Mon Sep 17 00:00:00 2001 From: Yeonri Date: Thu, 25 Sep 2025 21:02:53 +0900 Subject: [PATCH 2/4] =?UTF-8?q?fix=20:=20keyword=EC=97=90=EC=84=9C=20NPE?= =?UTF-8?q?=EC=9D=B4=20=EB=B0=9C=EC=83=9D=ED=95=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EA=B2=80=EC=A6=9D=EB=A1=9C=EC=A7=81=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 --- .../application/service/ApplicationQueryService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index 769b4f82b..76fc8dd29 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -45,7 +45,8 @@ public ApplicationsResponse getApplicants(long siteUserId, String regionCode, St // 1. 대학 지원 정보 필터링 (regionCode, keyword) SiteUser siteUser = siteUserRepository.findById(siteUserId) .orElseThrow(() -> new CustomException(USER_NOT_FOUND)); - List univApplyInfos = universityFilterRepository.findAllByRegionCodeAndKeywords(regionCode, List.of(keyword), term); + List keywords = (keyword == null || keyword.isBlank()) ? List.of() : List.of(keyword); + List univApplyInfos = universityFilterRepository.findAllByRegionCodeAndKeywords(regionCode, keywords, term); if (univApplyInfos.isEmpty()) { return new ApplicationsResponse(List.of(), List.of(), List.of()); } From fe4a11ec3395a886c16c27688bbb9db5c23151b1 Mon Sep 17 00:00:00 2001 From: Yeonri Date: Mon, 29 Sep 2025 00:30:45 +0900 Subject: [PATCH 3/4] =?UTF-8?q?refactor=20:=20=EB=A9=94=EC=84=9C=EB=93=9C?= =?UTF-8?q?=EB=AA=85=20=EC=88=98=EC=A0=95=20-=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=EB=AA=85=EC=97=90=20Term=20=EC=B6=94=EA=B0=80=20-=20?= =?UTF-8?q?=EC=BB=A8=EB=B2=A4=EC=85=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/ApplicationQueryService.java | 5 +++-- .../repository/custom/UnivApplyInfoFilterRepository.java | 2 +- .../repository/custom/UnivApplyInfoFilterRepositoryImpl.java | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index 76fc8dd29..fef8c3b2b 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -14,6 +14,7 @@ import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import com.example.solidconnection.university.repository.custom.UnivApplyInfoFilterRepositoryImpl; +import io.micrometer.common.util.StringUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -45,8 +46,8 @@ public ApplicationsResponse getApplicants(long siteUserId, String regionCode, St // 1. 대학 지원 정보 필터링 (regionCode, keyword) SiteUser siteUser = siteUserRepository.findById(siteUserId) .orElseThrow(() -> new CustomException(USER_NOT_FOUND)); - List keywords = (keyword == null || keyword.isBlank()) ? List.of() : List.of(keyword); - List univApplyInfos = universityFilterRepository.findAllByRegionCodeAndKeywords(regionCode, keywords, term); + List keywords = StringUtils.isNotBlank(keyword) ? List.of(keyword) : List.of(); + List univApplyInfos = universityFilterRepository.findAllByRegionCodeAndKeywordsAndTerm(regionCode, keywords, term); if (univApplyInfos.isEmpty()) { return new ApplicationsResponse(List.of(), List.of(), List.of()); } diff --git a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java index b3a567e5d..9efeaee17 100644 --- a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java @@ -6,7 +6,7 @@ public interface UnivApplyInfoFilterRepository { - List findAllByRegionCodeAndKeywords(String regionCode, List keywords, String term); + List findAllByRegionCodeAndKeywordsAndTerm(String regionCode, List keywords, String term); List findAllByFilter(LanguageTestType testType, String testScore, String term, List countryKoreanNames); diff --git a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java index 987083de0..0935933df 100644 --- a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java +++ b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java @@ -31,7 +31,7 @@ public UnivApplyInfoFilterRepositoryImpl(EntityManager em) { } @Override - public List findAllByRegionCodeAndKeywords(String regionCode, List keywords, String term) { + public List findAllByRegionCodeAndKeywordsAndTerm(String regionCode, List keywords, String term) { QUnivApplyInfo univApplyInfo = QUnivApplyInfo.univApplyInfo; QUniversity university = QUniversity.university; QCountry country = QCountry.country; From 746c5858595bcef524cbb111f8dc1bfae9bed833 Mon Sep 17 00:00:00 2001 From: lsy1307 Date: Wed, 15 Oct 2025 15:37:39 +0900 Subject: [PATCH 4/4] =?UTF-8?q?refactor:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95=20-=20=EB=AA=85?= =?UTF-8?q?=EC=B9=AD=20=EB=B3=80=EA=B2=BD=20-=20=EC=A0=95=ED=99=95?= =?UTF-8?q?=ED=95=98=EA=B2=8C=20=ED=98=84=EC=9E=AC=20=ED=95=99=EA=B8=B0?= =?UTF-8?q?=EB=A7=8C=20=EC=A1=B0=ED=9A=8C=EB=90=98=EB=8A=94=EC=A7=80=20?= =?UTF-8?q?=ED=99=95=EC=9D=B8=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ApplicationQueryServiceTest.java | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/test/java/com/example/solidconnection/application/service/ApplicationQueryServiceTest.java b/src/test/java/com/example/solidconnection/application/service/ApplicationQueryServiceTest.java index a53c6b6bf..6491b95ac 100644 --- a/src/test/java/com/example/solidconnection/application/service/ApplicationQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/application/service/ApplicationQueryServiceTest.java @@ -249,11 +249,11 @@ class 지원자_목록_조회_테스트 { } @Test - void 이전_학기_지원자는_조회되지_않는다() { + void 현재_학기_지원서만_조회되고_이전_학기_지원서는_제외된다() { // given - Application application = applicationFixture.지원서( + applicationFixture.지원서( user1, - "nickname1", + "nickname1_past", "1988-1", gpaScore1.getGpa(), languageTestScore1.getLanguageTest(), @@ -262,6 +262,17 @@ class 지원자_목록_조회_테스트 { null ); + Application currentApplication = applicationFixture.지원서( + user1, + "nickname1", + term, + gpaScore1.getGpa(), + languageTestScore1.getLanguageTest(), + 괌대학_A_지원_정보.getId(), + null, + null + ); + // when ApplicationsResponse response = applicationQueryService.getApplicants( user1.getId(), @@ -270,10 +281,11 @@ class 지원자_목록_조회_테스트 { ); // then - assertThat(response.firstChoice()).doesNotContainAnyElementsOf(List.of( - ApplicantsResponse.of(괌대학_A_지원_정보, - List.of(application), user1) - )); + assertThat(response.firstChoice()).containsExactlyInAnyOrder( + ApplicantsResponse.of(괌대학_A_지원_정보, List.of(currentApplication), user1), + ApplicantsResponse.of(괌대학_B_지원_정보, List.of(), user1), + ApplicantsResponse.of(서던덴마크대학교_지원_정보, List.of(), user1) + ); } @Test