From 011573dd48f6d16ec56bb4d6acadfdde1b4236e8 Mon Sep 17 00:00:00 2001 From: HongGit Date: Sat, 15 Feb 2025 13:01:54 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[feat/#47]=20null=EA=B0=92=20=EC=9C=A0?= =?UTF-8?q?=ED=9A=A8=EC=84=B1=EA=B2=80=EC=82=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moplus_server/domain/problemset/domain/ProblemSet.java | 4 +++- .../domain/publish/controller/PublishController.java | 3 ++- .../domain/publish/dto/request/PublishPostRequest.java | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/moplus/moplus_server/domain/problemset/domain/ProblemSet.java b/src/main/java/com/moplus/moplus_server/domain/problemset/domain/ProblemSet.java index 43d09db..7a99cfd 100644 --- a/src/main/java/com/moplus/moplus_server/domain/problemset/domain/ProblemSet.java +++ b/src/main/java/com/moplus/moplus_server/domain/problemset/domain/ProblemSet.java @@ -35,15 +35,17 @@ public class ProblemSet extends BaseEntity { @Embedded private Title title; + @Column(nullable = false) private boolean isDeleted; @Enumerated(EnumType.STRING) + @Column(nullable = false) private ProblemSetConfirmStatus confirmStatus; @ElementCollection @CollectionTable(name = "problem_set_problems", joinColumns = @JoinColumn(name = "problem_set_id")) - @Column(name = "problem_id") @OrderColumn(name = "sequence") + @Column(name = "problem_id", nullable = false) private List problemIds = new ArrayList<>(); @Builder diff --git a/src/main/java/com/moplus/moplus_server/domain/publish/controller/PublishController.java b/src/main/java/com/moplus/moplus_server/domain/publish/controller/PublishController.java index 924344e..0415f17 100644 --- a/src/main/java/com/moplus/moplus_server/domain/publish/controller/PublishController.java +++ b/src/main/java/com/moplus/moplus_server/domain/publish/controller/PublishController.java @@ -7,6 +7,7 @@ import com.moplus.moplus_server.domain.publish.service.PublishSaveService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -40,7 +41,7 @@ public ResponseEntity> getPublishMonth( @PostMapping("") @Operation(summary = "발행 생성하기", description = "특정 날짜에 문항세트를 발행합니다.") public ResponseEntity postPublish( - @RequestBody PublishPostRequest request + @Valid @RequestBody PublishPostRequest request ) { return ResponseEntity.ok(publishSaveService.createPublish(request)); } diff --git a/src/main/java/com/moplus/moplus_server/domain/publish/dto/request/PublishPostRequest.java b/src/main/java/com/moplus/moplus_server/domain/publish/dto/request/PublishPostRequest.java index a020f43..7d3960e 100644 --- a/src/main/java/com/moplus/moplus_server/domain/publish/dto/request/PublishPostRequest.java +++ b/src/main/java/com/moplus/moplus_server/domain/publish/dto/request/PublishPostRequest.java @@ -1,10 +1,13 @@ package com.moplus.moplus_server.domain.publish.dto.request; import com.moplus.moplus_server.domain.publish.domain.Publish; +import jakarta.validation.constraints.NotNull; import java.time.LocalDate; public record PublishPostRequest( + @NotNull LocalDate publishedDate, + @NotNull Long problemSetId ) { public Publish toEntity() { From 7802a19be12c5a832327275c8c72d832949a680c Mon Sep 17 00:00:00 2001 From: HongGit Date: Sat, 15 Feb 2025 13:18:42 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[feat/#47]=20=EB=AC=B8=ED=95=AD=EC=84=B8?= =?UTF-8?q?=ED=8A=B8=20=EA=B2=80=EC=83=89=20=EC=8B=9C=20=EB=AC=B8=ED=95=AD?= =?UTF-8?q?=ED=83=80=EC=9D=B4=ED=8B=80,=20=EB=AC=B8=ED=95=AD=EB=A9=94?= =?UTF-8?q?=EB=AA=A8=20=ED=95=84=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../problemset/dto/response/ProblemThumbnailResponse.java | 6 +++++- .../repository/ProblemSetSearchRepositoryCustom.java | 4 ++++ .../repository/ProblemSetSearchRepositoryCustomTest.java | 7 ++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/moplus/moplus_server/domain/problemset/dto/response/ProblemThumbnailResponse.java b/src/main/java/com/moplus/moplus_server/domain/problemset/dto/response/ProblemThumbnailResponse.java index 0848eba..2cbef8f 100644 --- a/src/main/java/com/moplus/moplus_server/domain/problemset/dto/response/ProblemThumbnailResponse.java +++ b/src/main/java/com/moplus/moplus_server/domain/problemset/dto/response/ProblemThumbnailResponse.java @@ -6,9 +6,13 @@ @Getter @NoArgsConstructor public class ProblemThumbnailResponse { + private String problemTitle; + private String problemMemo; private String mainProblemImageUrl; - public ProblemThumbnailResponse(String mainProblemImageUrl) { + public ProblemThumbnailResponse(String problemTitle, String problemMemo, String mainProblemImageUrl) { + this.problemTitle = problemTitle; + this.problemMemo = problemMemo; this.mainProblemImageUrl = mainProblemImageUrl; } } diff --git a/src/main/java/com/moplus/moplus_server/domain/problemset/repository/ProblemSetSearchRepositoryCustom.java b/src/main/java/com/moplus/moplus_server/domain/problemset/repository/ProblemSetSearchRepositoryCustom.java index 7fc901c..9faa3f1 100644 --- a/src/main/java/com/moplus/moplus_server/domain/problemset/repository/ProblemSetSearchRepositoryCustom.java +++ b/src/main/java/com/moplus/moplus_server/domain/problemset/repository/ProblemSetSearchRepositoryCustom.java @@ -42,6 +42,8 @@ public List search(String problemSetTitle, String p publish.publishedDate, // 발행되지 않은 경우 null 반환 GroupBy.list( Projections.constructor(ProblemThumbnailResponse.class, + problem.title.title, + problem.memo, problem.mainProblemImageUrl ) ) @@ -70,6 +72,8 @@ public List confirmSearch(String problemSetTitle, S publish.publishedDate, // 발행되지 않은 경우 null 반환 GroupBy.list( Projections.constructor(ProblemThumbnailResponse.class, + problem.title.title, + problem.memo, problem.mainProblemImageUrl ) ) diff --git a/src/test/java/com/moplus/moplus_server/domain/problemset/repository/ProblemSetSearchRepositoryCustomTest.java b/src/test/java/com/moplus/moplus_server/domain/problemset/repository/ProblemSetSearchRepositoryCustomTest.java index 4a34089..bffb84d 100644 --- a/src/test/java/com/moplus/moplus_server/domain/problemset/repository/ProblemSetSearchRepositoryCustomTest.java +++ b/src/test/java/com/moplus/moplus_server/domain/problemset/repository/ProblemSetSearchRepositoryCustomTest.java @@ -98,8 +98,13 @@ public class ProblemSetSearchRepositoryCustomTest { List problems = response.getProblemThumbnailResponses(); assertThat(problems).hasSize(2); - // ✅ 문항의 이미지 URL이 올바르게 매핑되었는지 확인 + // ✅ 문항의 타이틀, 메모, 이미지 URL이 올바르게 매핑되었는지 확인 + assertThat(problems.get(0).getProblemTitle()).isEqualTo("제목1"); + assertThat(problems.get(0).getProblemMemo()).isEqualTo("기존 문제 설명 1"); assertThat(problems.get(0).getMainProblemImageUrl()).isEqualTo("mainProblem.png1"); + + assertThat(problems.get(1).getProblemTitle()).isEqualTo("제목2"); + assertThat(problems.get(1).getProblemMemo()).isEqualTo("기존 문제 설명 2"); assertThat(problems.get(1).getMainProblemImageUrl()).isEqualTo("mainProblem.png2"); }