From 37335bb92861a6bba3e3d761842b7ac3daa21686 Mon Sep 17 00:00:00 2001 From: cabbage16 Date: Sun, 8 Sep 2024 08:48:58 +0900 Subject: [PATCH 1/3] =?UTF-8?q?perf(#124):=20form-id=20=EC=A0=95=EB=A0=AC?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=B5=9C=EC=A2=85=20?= =?UTF-8?q?=EC=A0=90=EC=88=98=20null=EA=B0=92=20=ED=97=88=EC=9A=A9=20-=20f?= =?UTF-8?q?orm-id=20=EC=98=A4=EB=A6=84=EC=B0=A8=EC=88=9C=EC=9C=BC=EB=A1=9C?= =?UTF-8?q?=20=EC=A0=95=EB=A0=AC=EC=9D=84=20=ED=95=A0=20=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EB=8F=84=EB=A1=9D=20=EC=B6=94=EA=B0=80=ED=96=88?= =?UTF-8?q?=EC=96=B4=EC=9A=94.=20-=20total-score=EB=A1=9C=20=EC=A0=95?= =?UTF-8?q?=EB=A0=AC=EC=9D=84=20=ED=95=A0=20=EA=B2=BD=EC=9A=B0=20total-sco?= =?UTF-8?q?re=EA=B0=80=20null=EC=9D=B8=20=EC=9B=90=EC=84=9C=EA=B0=80=20?= =?UTF-8?q?=EC=9E=88=EC=96=B4=EB=8F=84=20=EB=8D=94=20=EC=9D=B4=EC=83=81=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=EB=A5=BC=20=EB=B0=9C=EC=83=9D=EC=8B=9C?= =?UTF-8?q?=ED=82=A4=EC=A7=80=20=EC=95=8A=EB=8F=84=EB=A1=9D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=ED=96=88=EC=96=B4=EC=9A=94.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/form/QueryAllFormUseCase.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/bamdoliro/maru/application/form/QueryAllFormUseCase.java b/src/main/java/com/bamdoliro/maru/application/form/QueryAllFormUseCase.java index 179dd360..be71a3cc 100644 --- a/src/main/java/com/bamdoliro/maru/application/form/QueryAllFormUseCase.java +++ b/src/main/java/com/bamdoliro/maru/application/form/QueryAllFormUseCase.java @@ -25,13 +25,14 @@ public List execute(FormStatus status, FormType.Category cat .filter(form -> Objects.isNull(category) || form.getType().categoryEquals(category)) .toList()); - if (sort != null && formList.stream().anyMatch(form -> form.getScore().getTotalScore() == null)) { - throw new MissingTotalScoreException(); - } - if ("total-score-asc".equals(sort)) { - formList.sort(Comparator.comparing(form -> form.getScore().getTotalScore(), Comparator.naturalOrder())); - } else if ("total-score-desc".equals(sort)) { - formList.sort(Comparator.comparing(form -> form.getScore().getTotalScore(), Comparator.reverseOrder())); + if (sort != null) { + switch (sort) { + case "total-score-asc" -> + formList.sort(Comparator.comparing(form -> form.getScore().getTotalScore(), Comparator.nullsLast(Comparator.naturalOrder()))); + case "total-score-desc" -> + formList.sort(Comparator.comparing(form -> form.getScore().getTotalScore(), Comparator.nullsLast(Comparator.reverseOrder()))); + case "form-id" -> formList.sort(Comparator.comparing(Form::getId)); + } } return formList.stream() From a85ef7122d9ff5e629898de12f92c67da4935d8c Mon Sep 17 00:00:00 2001 From: cabbage16 Date: Sun, 8 Sep 2024 08:49:37 +0900 Subject: [PATCH 2/3] =?UTF-8?q?test(#124):=20QueryAllFormUseCaseTest=20-?= =?UTF-8?q?=20form-id=20=EC=A0=95=EB=A0=AC=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EB=A5=BC=20=EC=B6=94=EA=B0=80=ED=96=88=EC=96=B4=EC=9A=94.=20-?= =?UTF-8?q?=20=EC=A0=95=EB=A0=AC=20=EC=98=B5=EC=85=98=20=EC=84=A4=EB=AA=85?= =?UTF-8?q?=EC=9D=84=20=EC=B6=94=EA=B0=80=ED=96=88=EC=96=B4=EC=9A=94.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/QueryAllFormUseCaseTest.java | 21 +++++++++++++++++++ .../presentation/form/FormControllerTest.java | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/bamdoliro/maru/application/form/QueryAllFormUseCaseTest.java b/src/test/java/com/bamdoliro/maru/application/form/QueryAllFormUseCaseTest.java index 62671975..5f2e03d9 100644 --- a/src/test/java/com/bamdoliro/maru/application/form/QueryAllFormUseCaseTest.java +++ b/src/test/java/com/bamdoliro/maru/application/form/QueryAllFormUseCaseTest.java @@ -170,4 +170,25 @@ class QueryAllFormUseCaseTest { verify(formRepository, times(1)).findByStatus(null); } + + @Test + void 접수번호가_높은_순으로_조회한다() { + // given + List
formList = List.of( + FormFixture.createForm(FormType.REGULAR), + FormFixture.createForm(FormType.SPECIAL_ADMISSION), + FormFixture.createForm(FormType.MEISTER_TALENT), + FormFixture.createForm(FormType.MULTI_CHILDREN) + ); + + given(formRepository.findByStatus(null)).willReturn(formList); + + // when + List returnedFormList = queryAllFormUseCase.execute(null, FormType.Category.SOCIAL_INTEGRATION, "form-id"); + + // then + assertEquals(1, returnedFormList.size()); + + verify(formRepository, times(1)).findByStatus(null); + } } \ No newline at end of file diff --git a/src/test/java/com/bamdoliro/maru/presentation/form/FormControllerTest.java b/src/test/java/com/bamdoliro/maru/presentation/form/FormControllerTest.java index f7179446..98b01e3e 100644 --- a/src/test/java/com/bamdoliro/maru/presentation/form/FormControllerTest.java +++ b/src/test/java/com/bamdoliro/maru/presentation/form/FormControllerTest.java @@ -1272,7 +1272,7 @@ class FormControllerTest extends RestDocsTestSupport { .description("<>") .optional(), parameterWithName("sort") - .description("정렬 기준 (최종 점수 오름차순인 경우 total-score-asc, 최종 점수 내림차순인 경우 total-score-desc, null인 경우 수험번호 오름차순 조회)") + .description("정렬 기준 (total-score-asc인 경우 최종 점수 오름차순, total-score-desc인 경우 최종 점수 내림차순, form-id인 경우 접수 번호순, null인 경우 수험번호 오름차순 조회)") .optional() ) )); From fdc5f95ad7571a190f7af8d79a9b1d5fcb1bd012 Mon Sep 17 00:00:00 2001 From: cabbage16 Date: Sun, 8 Sep 2024 08:52:25 +0900 Subject: [PATCH 3/3] =?UTF-8?q?refactor(#124):=20=EB=B6=88=ED=95=84?= =?UTF-8?q?=EC=9A=94=ED=95=9C=20import=EB=AC=B8=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bamdoliro/maru/application/form/QueryAllFormUseCase.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/bamdoliro/maru/application/form/QueryAllFormUseCase.java b/src/main/java/com/bamdoliro/maru/application/form/QueryAllFormUseCase.java index be71a3cc..3236b2a8 100644 --- a/src/main/java/com/bamdoliro/maru/application/form/QueryAllFormUseCase.java +++ b/src/main/java/com/bamdoliro/maru/application/form/QueryAllFormUseCase.java @@ -3,7 +3,6 @@ import com.bamdoliro.maru.domain.form.domain.Form; import com.bamdoliro.maru.domain.form.domain.type.FormStatus; import com.bamdoliro.maru.domain.form.domain.type.FormType; -import com.bamdoliro.maru.domain.form.exception.MissingTotalScoreException; import com.bamdoliro.maru.infrastructure.persistence.form.FormRepository; import com.bamdoliro.maru.presentation.form.dto.response.FormSimpleResponse; import com.bamdoliro.maru.shared.annotation.UseCase;