From 45bdf92e722f4c3fc9ee4103dc3150fef838863c Mon Sep 17 00:00:00 2001 From: Sanghoon Jeong <67852689+wjdtkdgns@users.noreply.github.com> Date: Mon, 7 Aug 2023 14:40:05 +0900 Subject: [PATCH 1/9] =?UTF-8?q?[fix]=20=EC=A7=80=EC=9B=90=ED=95=98?= =?UTF-8?q?=EA=B8=B0=20hibernate=20500=20=EC=97=90=EB=9F=AC=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0=20(#132)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [fix] application question 가져오기 response 변경 * [fix] query 순서 변경 및 enum value 변경 #131 * [chore] spotless 적용 #131 --- .../domain/application/domain/QuestionCategory.java | 2 +- .../application/dto/response/GetResultResponse.java | 3 +-- .../application/exception/NotSetInterviewTime.java | 3 +-- .../application/mapper/ApplicationMapper.java | 4 ++-- .../application/service/ApplicationService.java | 2 +- .../application/validator/ApplicationValidator.java | 13 +++++++------ 6 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/main/java/ceos/backend/domain/application/domain/QuestionCategory.java b/src/main/java/ceos/backend/domain/application/domain/QuestionCategory.java index fa0ea1b0..253d00fd 100644 --- a/src/main/java/ceos/backend/domain/application/domain/QuestionCategory.java +++ b/src/main/java/ceos/backend/domain/application/domain/QuestionCategory.java @@ -2,7 +2,7 @@ public enum QuestionCategory { COMMON, - STRATEGY, + PRODUCT, DESIGN, FRONTEND, BACKEND; diff --git a/src/main/java/ceos/backend/domain/application/dto/response/GetResultResponse.java b/src/main/java/ceos/backend/domain/application/dto/response/GetResultResponse.java index 4a5652c3..d9f4d091 100644 --- a/src/main/java/ceos/backend/domain/application/dto/response/GetResultResponse.java +++ b/src/main/java/ceos/backend/domain/application/dto/response/GetResultResponse.java @@ -7,11 +7,10 @@ import ceos.backend.global.common.dto.ParsedDuration; import ceos.backend.global.util.ParsedDurationConvertor; import com.fasterxml.jackson.annotation.JsonUnwrapped; +import java.time.LocalDate; import lombok.Builder; import lombok.Getter; -import java.time.LocalDate; - @Getter public class GetResultResponse { private Pass pass; diff --git a/src/main/java/ceos/backend/domain/application/exception/NotSetInterviewTime.java b/src/main/java/ceos/backend/domain/application/exception/NotSetInterviewTime.java index 62bfa378..7dde17ba 100644 --- a/src/main/java/ceos/backend/domain/application/exception/NotSetInterviewTime.java +++ b/src/main/java/ceos/backend/domain/application/exception/NotSetInterviewTime.java @@ -5,8 +5,7 @@ public class NotSetInterviewTime extends BaseErrorException { - public static final NotSetInterviewTime EXCEPTION = - new NotSetInterviewTime(); + public static final NotSetInterviewTime EXCEPTION = new NotSetInterviewTime(); private NotSetInterviewTime() { super(ApplicationErrorCode.NOT_SET_INTERVIEW_TIME); diff --git a/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java b/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java index e6d399a3..c4690573 100644 --- a/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java +++ b/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java @@ -111,7 +111,7 @@ public QuestionListVo toQuestionList(UpdateApplicationQuestion updateApplication List questions = new ArrayList<>(); List questionDetails = new ArrayList<>(); parsingQuestion(questions, questionDetails, commonQuestions, QuestionCategory.COMMON); - parsingQuestion(questions, questionDetails, productQuestions, QuestionCategory.STRATEGY); + parsingQuestion(questions, questionDetails, productQuestions, QuestionCategory.PRODUCT); parsingQuestion(questions, questionDetails, designQuestions, QuestionCategory.DESIGN); parsingQuestion(questions, questionDetails, frontendQuestions, QuestionCategory.FRONTEND); parsingQuestion(questions, questionDetails, backendQuestions, QuestionCategory.BACKEND); @@ -182,7 +182,7 @@ public GetApplicationQuestion toGetApplicationQuestion( QuestionWithIdVo.of(applicationQuestion, questionDetailVos); switch (applicationQuestion.getCategory()) { case COMMON -> commonQuestions.add(questionVo); - case STRATEGY -> productQuestions.add(questionVo); + case PRODUCT -> productQuestions.add(questionVo); case DESIGN -> designQuestions.add(questionVo); case FRONTEND -> frontendQuestions.add(questionVo); case BACKEND -> backendQuestions.add(questionVo); diff --git a/src/main/java/ceos/backend/domain/application/service/ApplicationService.java b/src/main/java/ceos/backend/domain/application/service/ApplicationService.java index 399fe606..b63d44fb 100644 --- a/src/main/java/ceos/backend/domain/application/service/ApplicationService.java +++ b/src/main/java/ceos/backend/domain/application/service/ApplicationService.java @@ -71,6 +71,7 @@ public void createApplication(CreateApplicationRequest createApplicationRequest) final int generation = recruitmentHelper.takeRecruitment().getGeneration(); final Application application = applicationMapper.toEntity(createApplicationRequest, generation, UUID); + applicationRepository.save(application); final List applicationQuestions = applicationQuestionRepository.findAll(); @@ -89,7 +90,6 @@ public void createApplication(CreateApplicationRequest createApplicationRequest) application.addApplicationAnswerList(applicationAnswers); application.addApplicationInterviewList(applicationInterviews); - applicationRepository.save(application); // 이메일 전송 applicationHelper.sendEmail(createApplicationRequest, generation, UUID); diff --git a/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java b/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java index e26971f1..b1becf19 100644 --- a/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java +++ b/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java @@ -109,12 +109,13 @@ public void validateQAMatching(CreateApplicationRequest createApplicationRequest } public void validateInterviewTimeExist(String uuid, String email) { - Application application = applicationRepository - .findByUuidAndEmail(uuid, email) - .orElseThrow( - () -> { - throw ApplicantNotFound.EXCEPTION; - }); + Application application = + applicationRepository + .findByUuidAndEmail(uuid, email) + .orElseThrow( + () -> { + throw ApplicantNotFound.EXCEPTION; + }); if (application.getInterviewDatetime() == null) { throw NotSetInterviewTime.EXCEPTION; } From 460ac82d49ebe7b1f5ea9e936b5374722b0f2ace Mon Sep 17 00:00:00 2001 From: JeongHyun Lee <86969518+hyunihs@users.noreply.github.com> Date: Mon, 7 Aug 2023 14:43:22 +0900 Subject: [PATCH 2/9] =?UTF-8?q?[refact]=20=EA=B8=B0=EC=88=98=20=ED=99=9C?= =?UTF-8?q?=EB=8F=99=EC=8B=9C=EA=B8=B0=20=ED=85=8C=EC=9D=B4=EB=B8=94=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC=20(#133)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [refact] 활동시작시기 테이블 분리 (#130) * [refact] awards api 수정 (#130) * [refact] awards api 수정 (#130) * [chore] spotless 적용 --- .../domain/awards/AwardsController.java | 5 +- .../backend/domain/awards/domain/Awards.java | 21 +----- .../domain/awards/domain/StartDate.java | 40 +++++++++++ .../awards/dto/request/AwardsRequest.java | 19 ++--- .../awards/dto/response/AwardsResponse.java | 11 +-- .../response/GenerationAwardsResponse.java | 14 +++- .../awards/exception/AwardsErrorCode.java | 3 +- .../awards/exception/StartDateNotFound.java | 12 ++++ .../repository/StartDateRepository.java | 7 ++ .../domain/awards/service/AwardsService.java | 72 +++++++++++++++---- 10 files changed, 148 insertions(+), 56 deletions(-) create mode 100644 src/main/java/ceos/backend/domain/awards/domain/StartDate.java create mode 100644 src/main/java/ceos/backend/domain/awards/exception/StartDateNotFound.java create mode 100644 src/main/java/ceos/backend/domain/awards/repository/StartDateRepository.java diff --git a/src/main/java/ceos/backend/domain/awards/AwardsController.java b/src/main/java/ceos/backend/domain/awards/AwardsController.java index 51acc6de..f10186fc 100644 --- a/src/main/java/ceos/backend/domain/awards/AwardsController.java +++ b/src/main/java/ceos/backend/domain/awards/AwardsController.java @@ -8,7 +8,6 @@ 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 lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -24,7 +23,7 @@ public class AwardsController { @Operation(summary = "수상이력 추가하기") @PostMapping - public void createAwards(@RequestBody @Valid List awardsRequest) { + public void createAwards(@RequestBody @Valid AwardsRequest awardsRequest) { log.info("수상이력 추가하기"); awardsService.createAwards(awardsRequest); } @@ -49,7 +48,7 @@ public GenerationAwardsResponse getGenerationAwards( @PutMapping("/{generation}") public void updateAwards( @PathVariable(name = "generation") int generation, - @RequestBody List awardsRequest) { + @RequestBody AwardsRequest awardsRequest) { log.info("수상이력 수정하기"); awardsService.updateAwards(generation, awardsRequest); } diff --git a/src/main/java/ceos/backend/domain/awards/domain/Awards.java b/src/main/java/ceos/backend/domain/awards/domain/Awards.java index 376e5c95..02701ba1 100644 --- a/src/main/java/ceos/backend/domain/awards/domain/Awards.java +++ b/src/main/java/ceos/backend/domain/awards/domain/Awards.java @@ -1,11 +1,9 @@ package ceos.backend.domain.awards.domain; -import ceos.backend.domain.awards.dto.request.AwardsRequest; import jakarta.persistence.*; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; -import java.time.LocalDate; import lombok.*; @Getter @@ -24,28 +22,15 @@ public class Awards { @Size(max = 100) private String content; - @NotNull private LocalDate startDate; - // 생성자 @Builder - private Awards(int generation, String content, LocalDate startDate) { + private Awards(int generation, String content) { this.generation = generation; this.content = content; - this.startDate = startDate; } // 정적 팩토리 메서드 - public static Awards from(AwardsRequest awardsRequest) { - return Awards.builder() - .generation(awardsRequest.getGeneration()) - .content(awardsRequest.getContent()) - .startDate(awardsRequest.getStartDate()) - .build(); - } - - public void updateAward(AwardsRequest awardsRequest) { - this.generation = awardsRequest.getGeneration(); - this.content = awardsRequest.getContent(); - this.startDate = awardsRequest.getStartDate(); + public static Awards of(int generation, String content) { + return Awards.builder().generation(generation).content(content).build(); } } diff --git a/src/main/java/ceos/backend/domain/awards/domain/StartDate.java b/src/main/java/ceos/backend/domain/awards/domain/StartDate.java new file mode 100644 index 00000000..f755bee4 --- /dev/null +++ b/src/main/java/ceos/backend/domain/awards/domain/StartDate.java @@ -0,0 +1,40 @@ +package ceos.backend.domain.awards.domain; + + +import ceos.backend.domain.awards.dto.request.AwardsRequest; +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; +import java.time.LocalDate; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@Entity +public class StartDate { + + @Id private int generation; + + @NotNull private LocalDate startDate; + + // 생성자 + @Builder + public StartDate(int generation, LocalDate startDate) { + this.generation = generation; + this.startDate = startDate; + } + + // 정적 팩토리 메서드 + public static StartDate from(AwardsRequest awardsRequest) { + return StartDate.builder() + .generation(awardsRequest.getGeneration()) + .startDate(awardsRequest.getStartDate()) + .build(); + } + + public void updateStartDate(LocalDate startDate) { + this.startDate = startDate; + } +} diff --git a/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java b/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java index e3f53599..60791f5b 100644 --- a/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java +++ b/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java @@ -6,6 +6,7 @@ import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import java.time.LocalDate; +import java.util.List; import lombok.Builder; import lombok.Getter; @@ -16,28 +17,28 @@ public class AwardsRequest { @Valid private int generation; - @Schema(defaultValue = "2023 예비창업패키지 최종선정", description = "수상 기록") - @NotEmpty(message = "수상 기록을 입력해주세요") - @Valid - private String content; - @Schema(description = "활동 시작 시기") @NotNull(message = "활동 시작 시기를 입력해주세요") @Valid private LocalDate startDate; + @Schema(description = "수상 기록 리스트") + @NotEmpty(message = "수상 기록을 입력해주세요") + @Valid + private List content; + @Builder - private AwardsRequest(int generation, String content, LocalDate startDate) { + public AwardsRequest(int generation, LocalDate startDate, List content) { this.generation = generation; - this.content = content; this.startDate = startDate; + this.content = content; } - public static AwardsRequest of(int generation, String content, LocalDate startDate) { + public static AwardsRequest of(int generation, LocalDate startDate, List content) { return AwardsRequest.builder() .generation(generation) - .content(content) .startDate(startDate) + .content(content) .build(); } } diff --git a/src/main/java/ceos/backend/domain/awards/dto/response/AwardsResponse.java b/src/main/java/ceos/backend/domain/awards/dto/response/AwardsResponse.java index 0f6111ee..aaa2ba9a 100644 --- a/src/main/java/ceos/backend/domain/awards/dto/response/AwardsResponse.java +++ b/src/main/java/ceos/backend/domain/awards/dto/response/AwardsResponse.java @@ -2,7 +2,6 @@ import ceos.backend.domain.awards.domain.Awards; -import java.time.LocalDate; import lombok.Builder; import lombok.Getter; @@ -11,20 +10,14 @@ public class AwardsResponse { private Long id; private String content; - private LocalDate startDate; @Builder - private AwardsResponse(Long id, String content, LocalDate startDate) { + private AwardsResponse(Long id, String content) { this.id = id; this.content = content; - this.startDate = startDate; } public static AwardsResponse to(Awards awards) { - return AwardsResponse.builder() - .id(awards.getId()) - .content(awards.getContent()) - .startDate(awards.getStartDate()) - .build(); + return AwardsResponse.builder().id(awards.getId()).content(awards.getContent()).build(); } } diff --git a/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java b/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java index 80b8c0fb..f68cece3 100644 --- a/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java +++ b/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java @@ -2,6 +2,7 @@ import ceos.backend.domain.awards.vo.ProjectInfoVo; +import java.time.LocalDate; import java.util.List; import lombok.Builder; import lombok.Getter; @@ -9,21 +10,30 @@ @Getter public class GenerationAwardsResponse { private int generation; + private LocalDate startDate; private List awards; private List projects; @Builder public GenerationAwardsResponse( - int generation, List awards, List projects) { + int generation, + LocalDate startDate, + List awards, + List projects) { this.generation = generation; + this.startDate = startDate; this.awards = awards; this.projects = projects; } public static GenerationAwardsResponse of( - int generation, List awards, List projects) { + int generation, + LocalDate startDate, + List awards, + List projects) { return GenerationAwardsResponse.builder() .generation(generation) + .startDate(startDate) .awards(awards) .projects(projects) .build(); diff --git a/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java b/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java index 7210486f..3637ca86 100644 --- a/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java +++ b/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java @@ -11,7 +11,8 @@ @Getter @AllArgsConstructor public enum AwardsErrorCode implements BaseErrorCode { - AWARD_NOT_FOUND(BAD_REQUEST, "AWARD_404_1", "해당 수상이력이 존재하지 않습니다"); + AWARD_NOT_FOUND(BAD_REQUEST, "AWARD_404_1", "해당 수상이력이 존재하지 않습니다"), + START_DATE_NOT_FOUND(BAD_REQUEST, "AWARD_404_2", "해당 기수의 활동 시작 시기 정보가 존재하지 않습니다"); private HttpStatus status; private String code; diff --git a/src/main/java/ceos/backend/domain/awards/exception/StartDateNotFound.java b/src/main/java/ceos/backend/domain/awards/exception/StartDateNotFound.java new file mode 100644 index 00000000..7c4e0c86 --- /dev/null +++ b/src/main/java/ceos/backend/domain/awards/exception/StartDateNotFound.java @@ -0,0 +1,12 @@ +package ceos.backend.domain.awards.exception; + + +import ceos.backend.global.error.BaseErrorException; + +public class StartDateNotFound extends BaseErrorException { + public static final StartDateNotFound EXCEPTION = new StartDateNotFound(); + + private StartDateNotFound() { + super(AwardsErrorCode.START_DATE_NOT_FOUND); + } +} diff --git a/src/main/java/ceos/backend/domain/awards/repository/StartDateRepository.java b/src/main/java/ceos/backend/domain/awards/repository/StartDateRepository.java new file mode 100644 index 00000000..1055ecad --- /dev/null +++ b/src/main/java/ceos/backend/domain/awards/repository/StartDateRepository.java @@ -0,0 +1,7 @@ +package ceos.backend.domain.awards.repository; + + +import ceos.backend.domain.awards.domain.StartDate; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface StartDateRepository extends JpaRepository {} diff --git a/src/main/java/ceos/backend/domain/awards/service/AwardsService.java b/src/main/java/ceos/backend/domain/awards/service/AwardsService.java index 1e370e0b..0f1bf4d3 100644 --- a/src/main/java/ceos/backend/domain/awards/service/AwardsService.java +++ b/src/main/java/ceos/backend/domain/awards/service/AwardsService.java @@ -2,13 +2,17 @@ import ceos.backend.domain.awards.domain.Awards; +import ceos.backend.domain.awards.domain.StartDate; import ceos.backend.domain.awards.dto.request.AwardsRequest; import ceos.backend.domain.awards.dto.response.AllAwardsResponse; import ceos.backend.domain.awards.dto.response.GenerationAwardsResponse; +import ceos.backend.domain.awards.exception.StartDateNotFound; import ceos.backend.domain.awards.helper.AwardsHelper; import ceos.backend.domain.awards.repository.AwardsRepository; +import ceos.backend.domain.awards.repository.StartDateRepository; import ceos.backend.domain.project.repository.ProjectRepository; import ceos.backend.global.common.dto.PageInfo; +import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import lombok.RequiredArgsConstructor; @@ -22,13 +26,20 @@ public class AwardsService { private final AwardsRepository awardsRepository; + private final StartDateRepository startDateRepository; private final ProjectRepository projectRepository; private final AwardsHelper awardsHelper; @Transactional - public void createAwards(List awardsRequestList) { - for (AwardsRequest awardsRequest : awardsRequestList) { - Awards awards = Awards.from(awardsRequest); + public void createAwards(AwardsRequest awardsRequest) { + // 활동 시작 시기 저장 + StartDate startDate = StartDate.from(awardsRequest); + startDateRepository.save(startDate); + + // 수상 내역 저장 + List contentList = awardsRequest.getContent(); + for (String content : contentList) { + Awards awards = Awards.of(awardsRequest.getGeneration(), content); awardsRepository.save(awards); } } @@ -39,9 +50,20 @@ public AllAwardsResponse getAllAwards(int pageNum, int limit) { int maxGeneration = projectRepository.findMaxGeneration(); for (int i = maxGeneration; i > 0; i--) { + LocalDate startDate = + startDateRepository + .findById(i) + .orElseThrow( + () -> { + throw StartDateNotFound.EXCEPTION; + }) + .getStartDate(); GenerationAwardsResponse generationAwardsResponse = GenerationAwardsResponse.of( - i, awardsHelper.getAwardsDto(i), awardsHelper.getProjectVo(i)); + i, + startDate, + awardsHelper.getAwardsDto(i), + awardsHelper.getProjectVo(i)); generationAwardsResponses.add(generationAwardsResponse); } @@ -63,20 +85,42 @@ public AllAwardsResponse getAllAwards(int pageNum, int limit) { @Transactional(readOnly = true) public GenerationAwardsResponse getGenerationAwards(int generation) { - GenerationAwardsResponse generationAwardsResponse = - GenerationAwardsResponse.of( - generation, - awardsHelper.getAwardsDto(generation), - awardsHelper.getProjectVo(generation)); - return generationAwardsResponse; + LocalDate startDate = + startDateRepository + .findById(generation) + .orElseThrow( + () -> { + throw StartDateNotFound.EXCEPTION; + }) + .getStartDate(); + return GenerationAwardsResponse.of( + generation, + startDate, + awardsHelper.getAwardsDto(generation), + awardsHelper.getProjectVo(generation)); } @Transactional - public void updateAwards(int generation, List awardsRequestList) { - // 기존 데이터 삭제 + public void updateAwards(int generation, AwardsRequest awardsRequest) { + // 기존 수상내역 데이터 삭제 deleteAwards(generation); - // 수정된 데이터 넣기 - createAwards(awardsRequestList); + + // 활동시작시기 업데이트 + StartDate startDate = + startDateRepository + .findById(generation) + .orElseThrow( + () -> { + throw StartDateNotFound.EXCEPTION; + }); + startDate.updateStartDate(awardsRequest.getStartDate()); + + // 수상 내역 저장 + List contentList = awardsRequest.getContent(); + for (String content : contentList) { + Awards awards = Awards.of(awardsRequest.getGeneration(), content); + awardsRepository.save(awards); + } } @Transactional From 39d2bac361db956a97d67831a0d1226c2529cf41 Mon Sep 17 00:00:00 2001 From: JeongHyun Lee <86969518+hyunihs@users.noreply.github.com> Date: Mon, 7 Aug 2023 15:15:21 +0900 Subject: [PATCH 3/9] =?UTF-8?q?[add]=20=EA=B8=B0=EC=88=98=20=EC=88=98?= =?UTF-8?q?=EC=83=81=EB=82=B4=EC=97=AD=EC=9D=B4=20=EC=9E=88=EC=9D=84?= =?UTF-8?q?=EB=95=8C=20=EB=8B=A4=EC=8B=9C=20=EC=B6=94=EA=B0=80=EC=8B=9C=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=EC=B2=98=EB=A6=AC=20(#134)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [add] 기수 수상내역이 있을때 다시 추가시 에러처리 (#130) * [chore] spotless 적용 * [docs] 주석 추가 --- .../domain/awards/exception/AwardsErrorCode.java | 4 +++- .../domain/awards/exception/DuplicateGeneration.java | 12 ++++++++++++ .../backend/domain/awards/helper/AwardsHelper.java | 12 ++++++++++++ .../backend/domain/awards/service/AwardsService.java | 3 +++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/main/java/ceos/backend/domain/awards/exception/DuplicateGeneration.java diff --git a/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java b/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java index 3637ca86..cc2feb1a 100644 --- a/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java +++ b/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java @@ -1,6 +1,7 @@ package ceos.backend.domain.awards.exception; import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.CONFLICT; import ceos.backend.global.common.dto.ErrorReason; import ceos.backend.global.error.BaseErrorCode; @@ -12,7 +13,8 @@ @AllArgsConstructor public enum AwardsErrorCode implements BaseErrorCode { AWARD_NOT_FOUND(BAD_REQUEST, "AWARD_404_1", "해당 수상이력이 존재하지 않습니다"), - START_DATE_NOT_FOUND(BAD_REQUEST, "AWARD_404_2", "해당 기수의 활동 시작 시기 정보가 존재하지 않습니다"); + START_DATE_NOT_FOUND(BAD_REQUEST, "AWARD_404_2", "해당 기수의 활동 시작 시기 정보가 존재하지 않습니다"), + DUPLICATE_GENERATION(CONFLICT, "AWARD_409_1", "해당 기수의 데이터가 이미 존재합니다"); private HttpStatus status; private String code; diff --git a/src/main/java/ceos/backend/domain/awards/exception/DuplicateGeneration.java b/src/main/java/ceos/backend/domain/awards/exception/DuplicateGeneration.java new file mode 100644 index 00000000..3376c75c --- /dev/null +++ b/src/main/java/ceos/backend/domain/awards/exception/DuplicateGeneration.java @@ -0,0 +1,12 @@ +package ceos.backend.domain.awards.exception; + + +import ceos.backend.global.error.BaseErrorException; + +public class DuplicateGeneration extends BaseErrorException { + public static final DuplicateGeneration EXCEPTION = new DuplicateGeneration(); + + private DuplicateGeneration() { + super(AwardsErrorCode.DUPLICATE_GENERATION); + } +} diff --git a/src/main/java/ceos/backend/domain/awards/helper/AwardsHelper.java b/src/main/java/ceos/backend/domain/awards/helper/AwardsHelper.java index 260c281a..f845f168 100644 --- a/src/main/java/ceos/backend/domain/awards/helper/AwardsHelper.java +++ b/src/main/java/ceos/backend/domain/awards/helper/AwardsHelper.java @@ -2,13 +2,17 @@ import ceos.backend.domain.awards.domain.Awards; +import ceos.backend.domain.awards.domain.StartDate; import ceos.backend.domain.awards.dto.response.AwardsResponse; +import ceos.backend.domain.awards.exception.DuplicateGeneration; import ceos.backend.domain.awards.repository.AwardsRepository; +import ceos.backend.domain.awards.repository.StartDateRepository; import ceos.backend.domain.awards.vo.ProjectInfoVo; import ceos.backend.domain.project.domain.Project; import ceos.backend.domain.project.repository.ProjectRepository; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @@ -18,6 +22,7 @@ public class AwardsHelper { private final ProjectRepository projectRepository; private final AwardsRepository awardsRepository; + private final StartDateRepository startDateRepository; public List getProjectVo(int generation) { List projectList = projectRepository.findByGeneration(generation); @@ -39,4 +44,11 @@ public List getAwardsDto(int generation) { } return awardsResponseList; } + + public void validateGeneration(int generation) { + Optional startDate = startDateRepository.findById(generation); + if (startDate.isPresent()) { + throw DuplicateGeneration.EXCEPTION; + } + } } diff --git a/src/main/java/ceos/backend/domain/awards/service/AwardsService.java b/src/main/java/ceos/backend/domain/awards/service/AwardsService.java index 0f1bf4d3..c314e597 100644 --- a/src/main/java/ceos/backend/domain/awards/service/AwardsService.java +++ b/src/main/java/ceos/backend/domain/awards/service/AwardsService.java @@ -32,6 +32,9 @@ public class AwardsService { @Transactional public void createAwards(AwardsRequest awardsRequest) { + // 이미 기수의 수상 정보가 있다면 다시 추가할 수 없음 + awardsHelper.validateGeneration(awardsRequest.getGeneration()); + // 활동 시작 시기 저장 StartDate startDate = StartDate.from(awardsRequest); startDateRepository.save(startDate); From a6725abf2fa62f95a9596943fa55d2c72f28822d Mon Sep 17 00:00:00 2001 From: JeongHyun Lee <86969518+hyunihs@users.noreply.github.com> Date: Mon, 7 Aug 2023 16:21:13 +0900 Subject: [PATCH 4/9] =?UTF-8?q?[refact]=20=ED=99=9C=EB=8F=99=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=EC=8B=9C=EA=B8=B0=20=EC=97=86=EC=9C=BC=EB=A9=B4=20nul?= =?UTF-8?q?l=20=EB=84=A3=EA=B8=B0=20(#135)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [add] 기수 수상내역이 있을때 다시 추가시 에러처리 (#130) * [chore] spotless 적용 * [docs] 주석 추가 * [refact] 활동시작시기 없으면 null 넣기 (#130) --- .../awards/exception/AwardsErrorCode.java | 1 - .../awards/exception/StartDateNotFound.java | 12 ----- .../domain/awards/service/AwardsService.java | 44 ++++++++----------- 3 files changed, 19 insertions(+), 38 deletions(-) delete mode 100644 src/main/java/ceos/backend/domain/awards/exception/StartDateNotFound.java diff --git a/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java b/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java index cc2feb1a..f34db541 100644 --- a/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java +++ b/src/main/java/ceos/backend/domain/awards/exception/AwardsErrorCode.java @@ -13,7 +13,6 @@ @AllArgsConstructor public enum AwardsErrorCode implements BaseErrorCode { AWARD_NOT_FOUND(BAD_REQUEST, "AWARD_404_1", "해당 수상이력이 존재하지 않습니다"), - START_DATE_NOT_FOUND(BAD_REQUEST, "AWARD_404_2", "해당 기수의 활동 시작 시기 정보가 존재하지 않습니다"), DUPLICATE_GENERATION(CONFLICT, "AWARD_409_1", "해당 기수의 데이터가 이미 존재합니다"); private HttpStatus status; diff --git a/src/main/java/ceos/backend/domain/awards/exception/StartDateNotFound.java b/src/main/java/ceos/backend/domain/awards/exception/StartDateNotFound.java deleted file mode 100644 index 7c4e0c86..00000000 --- a/src/main/java/ceos/backend/domain/awards/exception/StartDateNotFound.java +++ /dev/null @@ -1,12 +0,0 @@ -package ceos.backend.domain.awards.exception; - - -import ceos.backend.global.error.BaseErrorException; - -public class StartDateNotFound extends BaseErrorException { - public static final StartDateNotFound EXCEPTION = new StartDateNotFound(); - - private StartDateNotFound() { - super(AwardsErrorCode.START_DATE_NOT_FOUND); - } -} diff --git a/src/main/java/ceos/backend/domain/awards/service/AwardsService.java b/src/main/java/ceos/backend/domain/awards/service/AwardsService.java index c314e597..603e27d9 100644 --- a/src/main/java/ceos/backend/domain/awards/service/AwardsService.java +++ b/src/main/java/ceos/backend/domain/awards/service/AwardsService.java @@ -6,7 +6,6 @@ import ceos.backend.domain.awards.dto.request.AwardsRequest; import ceos.backend.domain.awards.dto.response.AllAwardsResponse; import ceos.backend.domain.awards.dto.response.GenerationAwardsResponse; -import ceos.backend.domain.awards.exception.StartDateNotFound; import ceos.backend.domain.awards.helper.AwardsHelper; import ceos.backend.domain.awards.repository.AwardsRepository; import ceos.backend.domain.awards.repository.StartDateRepository; @@ -15,6 +14,7 @@ import java.time.LocalDate; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -53,14 +53,11 @@ public AllAwardsResponse getAllAwards(int pageNum, int limit) { int maxGeneration = projectRepository.findMaxGeneration(); for (int i = maxGeneration; i > 0; i--) { - LocalDate startDate = - startDateRepository - .findById(i) - .orElseThrow( - () -> { - throw StartDateNotFound.EXCEPTION; - }) - .getStartDate(); + Optional s = startDateRepository.findById(i); + LocalDate startDate = null; + if (s.isPresent()) { + startDate = s.get().getStartDate(); + } GenerationAwardsResponse generationAwardsResponse = GenerationAwardsResponse.of( i, @@ -88,14 +85,11 @@ public AllAwardsResponse getAllAwards(int pageNum, int limit) { @Transactional(readOnly = true) public GenerationAwardsResponse getGenerationAwards(int generation) { - LocalDate startDate = - startDateRepository - .findById(generation) - .orElseThrow( - () -> { - throw StartDateNotFound.EXCEPTION; - }) - .getStartDate(); + Optional s = startDateRepository.findById(generation); + LocalDate startDate = null; + if (s.isPresent()) { + startDate = s.get().getStartDate(); + } return GenerationAwardsResponse.of( generation, startDate, @@ -109,14 +103,14 @@ public void updateAwards(int generation, AwardsRequest awardsRequest) { deleteAwards(generation); // 활동시작시기 업데이트 - StartDate startDate = - startDateRepository - .findById(generation) - .orElseThrow( - () -> { - throw StartDateNotFound.EXCEPTION; - }); - startDate.updateStartDate(awardsRequest.getStartDate()); + Optional startDate = startDateRepository.findById(awardsRequest.getGeneration()); + if (startDate.isEmpty()) { + // 활동 시작 시기 저장 + StartDate s = StartDate.from(awardsRequest); + startDateRepository.save(s); + } else { // 활동 시작 시기 수정 + startDate.get().updateStartDate(awardsRequest.getStartDate()); + } // 수상 내역 저장 List contentList = awardsRequest.getContent(); From 3303132519997f362835f95ac8f239cf59cab009 Mon Sep 17 00:00:00 2001 From: Sanghoon Jeong <67852689+wjdtkdgns@users.noreply.github.com> Date: Mon, 7 Aug 2023 18:08:25 +0900 Subject: [PATCH 5/9] =?UTF-8?q?[feat]=20question=20=EC=88=98=EC=A0=95,=20?= =?UTF-8?q?=EC=B5=9C=EC=A2=85=20=ED=95=A9=EA=B2=A9=20=EC=97=AC=EB=B6=80=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EC=84=9C=EB=B9=84=EC=8A=A4=20validation?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=20(#137)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/application/domain/Application.java | 2 +- .../exception/ApplicationErrorCode.java | 1 + .../{ => exceptions}/AlreadyCheckFinal.java | 3 ++- .../{ => exceptions}/AlreadyCheckInterview.java | 3 ++- .../{ => exceptions}/AnswerStillExist.java | 3 ++- .../{ => exceptions}/ApplicantNotFound.java | 3 ++- .../ApplicationInterviewStillExist.java | 3 ++- .../exceptions/ApplicationStillExist.java | 14 ++++++++++++++ .../{ => exceptions}/DuplicateApplicant.java | 3 ++- .../{ => exceptions}/FileCreationFailed.java | 3 ++- .../{ => exceptions}/InterviewNotFound.java | 3 ++- .../exception/{ => exceptions}/NotMatchingQnA.java | 3 ++- .../{ => exceptions}/NotPassDocument.java | 3 ++- .../exception/{ => exceptions}/NotPassFinal.java | 3 ++- .../{ => exceptions}/NotSetInterviewTime.java | 3 ++- .../{ => exceptions}/QuestionNotFound.java | 3 ++- .../exception/{ => exceptions}/SamePassStatus.java | 3 ++- .../{ => exceptions}/WrongGeneration.java | 3 ++- .../application/helper/ApplicationHelper.java | 2 +- .../application/mapper/ApplicationMapper.java | 4 ++-- .../service/ApplicationExcelService.java | 2 +- .../application/service/ApplicationService.java | 1 + .../validator/ApplicationValidator.java | 5 ++++- .../domain/recruitment/domain/Recruitment.java | 2 +- .../backend/infra/ses/AwsSESMailGenerator.java | 2 +- 25 files changed, 57 insertions(+), 23 deletions(-) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/AlreadyCheckFinal.java (68%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/AlreadyCheckInterview.java (70%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/AnswerStillExist.java (68%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/ApplicantNotFound.java (68%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/ApplicationInterviewStillExist.java (73%) create mode 100644 src/main/java/ceos/backend/domain/application/exception/exceptions/ApplicationStillExist.java rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/DuplicateApplicant.java (69%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/FileCreationFailed.java (69%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/InterviewNotFound.java (68%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/NotMatchingQnA.java (67%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/NotPassDocument.java (68%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/NotPassFinal.java (67%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/NotSetInterviewTime.java (69%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/QuestionNotFound.java (68%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/SamePassStatus.java (67%) rename src/main/java/ceos/backend/domain/application/exception/{ => exceptions}/WrongGeneration.java (68%) diff --git a/src/main/java/ceos/backend/domain/application/domain/Application.java b/src/main/java/ceos/backend/domain/application/domain/Application.java index 7a246b3f..a08fc628 100644 --- a/src/main/java/ceos/backend/domain/application/domain/Application.java +++ b/src/main/java/ceos/backend/domain/application/domain/Application.java @@ -2,7 +2,7 @@ import ceos.backend.domain.application.dto.request.CreateApplicationRequest; -import ceos.backend.domain.application.exception.*; +import ceos.backend.domain.application.exception.exceptions.*; import ceos.backend.global.common.entity.BaseEntity; import jakarta.persistence.*; import jakarta.validation.constraints.NotNull; diff --git a/src/main/java/ceos/backend/domain/application/exception/ApplicationErrorCode.java b/src/main/java/ceos/backend/domain/application/exception/ApplicationErrorCode.java index b7d01f1a..97295dad 100644 --- a/src/main/java/ceos/backend/domain/application/exception/ApplicationErrorCode.java +++ b/src/main/java/ceos/backend/domain/application/exception/ApplicationErrorCode.java @@ -21,6 +21,7 @@ public enum ApplicationErrorCode implements BaseErrorCode { ALREADY_CHECK_FINAL(BAD_REQUEST, "APPLICATION_400_6", "활동 여부를 이미 선택했습니다."), SAME_PASS_STATUS(BAD_REQUEST, "APPLICATION_400_7", "같은 상태로 변경할 수 없습니다."), NOT_SET_INTERVIEW_TIME(BAD_REQUEST, "APPLICATION_400_8", "면접 시간이 정해지지 않았습니다."), + APPLICATION_STILL_EXIST(BAD_REQUEST, "APPLICATION_400_9", "기존 지원자 데이터가 남아있습니다."), APPLICANT_NOT_FOUND(BAD_REQUEST, "APPLICATION_404_3", "존재하지 않는 지원자입니다."), diff --git a/src/main/java/ceos/backend/domain/application/exception/AlreadyCheckFinal.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/AlreadyCheckFinal.java similarity index 68% rename from src/main/java/ceos/backend/domain/application/exception/AlreadyCheckFinal.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/AlreadyCheckFinal.java index 285aa27d..c57b2e70 100644 --- a/src/main/java/ceos/backend/domain/application/exception/AlreadyCheckFinal.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/AlreadyCheckFinal.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class AlreadyCheckFinal extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/AlreadyCheckInterview.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/AlreadyCheckInterview.java similarity index 70% rename from src/main/java/ceos/backend/domain/application/exception/AlreadyCheckInterview.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/AlreadyCheckInterview.java index 1e4e1583..b2ba5169 100644 --- a/src/main/java/ceos/backend/domain/application/exception/AlreadyCheckInterview.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/AlreadyCheckInterview.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class AlreadyCheckInterview extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/AnswerStillExist.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/AnswerStillExist.java similarity index 68% rename from src/main/java/ceos/backend/domain/application/exception/AnswerStillExist.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/AnswerStillExist.java index f5ecabe4..0da2b1c3 100644 --- a/src/main/java/ceos/backend/domain/application/exception/AnswerStillExist.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/AnswerStillExist.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class AnswerStillExist extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/ApplicantNotFound.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/ApplicantNotFound.java similarity index 68% rename from src/main/java/ceos/backend/domain/application/exception/ApplicantNotFound.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/ApplicantNotFound.java index 1690260e..f3d0f3d9 100644 --- a/src/main/java/ceos/backend/domain/application/exception/ApplicantNotFound.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/ApplicantNotFound.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class ApplicantNotFound extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/ApplicationInterviewStillExist.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/ApplicationInterviewStillExist.java similarity index 73% rename from src/main/java/ceos/backend/domain/application/exception/ApplicationInterviewStillExist.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/ApplicationInterviewStillExist.java index 39cebb70..020381cd 100644 --- a/src/main/java/ceos/backend/domain/application/exception/ApplicationInterviewStillExist.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/ApplicationInterviewStillExist.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class ApplicationInterviewStillExist extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/exceptions/ApplicationStillExist.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/ApplicationStillExist.java new file mode 100644 index 00000000..5ebf00fa --- /dev/null +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/ApplicationStillExist.java @@ -0,0 +1,14 @@ +package ceos.backend.domain.application.exception.exceptions; + + +import ceos.backend.domain.application.exception.ApplicationErrorCode; +import ceos.backend.global.error.BaseErrorException; + +public class ApplicationStillExist extends BaseErrorException { + + public static final ApplicationStillExist EXCEPTION = new ApplicationStillExist(); + + private ApplicationStillExist() { + super(ApplicationErrorCode.ALREADY_CHECK_INTERVIEW); + } +} diff --git a/src/main/java/ceos/backend/domain/application/exception/DuplicateApplicant.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/DuplicateApplicant.java similarity index 69% rename from src/main/java/ceos/backend/domain/application/exception/DuplicateApplicant.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/DuplicateApplicant.java index df3ee10c..87560641 100644 --- a/src/main/java/ceos/backend/domain/application/exception/DuplicateApplicant.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/DuplicateApplicant.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class DuplicateApplicant extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/FileCreationFailed.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/FileCreationFailed.java similarity index 69% rename from src/main/java/ceos/backend/domain/application/exception/FileCreationFailed.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/FileCreationFailed.java index aa24ae2a..f4d1b817 100644 --- a/src/main/java/ceos/backend/domain/application/exception/FileCreationFailed.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/FileCreationFailed.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class FileCreationFailed extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/InterviewNotFound.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/InterviewNotFound.java similarity index 68% rename from src/main/java/ceos/backend/domain/application/exception/InterviewNotFound.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/InterviewNotFound.java index 37478f75..02742de6 100644 --- a/src/main/java/ceos/backend/domain/application/exception/InterviewNotFound.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/InterviewNotFound.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class InterviewNotFound extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/NotMatchingQnA.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/NotMatchingQnA.java similarity index 67% rename from src/main/java/ceos/backend/domain/application/exception/NotMatchingQnA.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/NotMatchingQnA.java index 88d869b4..9ce4c3e8 100644 --- a/src/main/java/ceos/backend/domain/application/exception/NotMatchingQnA.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/NotMatchingQnA.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class NotMatchingQnA extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/NotPassDocument.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/NotPassDocument.java similarity index 68% rename from src/main/java/ceos/backend/domain/application/exception/NotPassDocument.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/NotPassDocument.java index ebaf009e..b9d7cb56 100644 --- a/src/main/java/ceos/backend/domain/application/exception/NotPassDocument.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/NotPassDocument.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class NotPassDocument extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/NotPassFinal.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/NotPassFinal.java similarity index 67% rename from src/main/java/ceos/backend/domain/application/exception/NotPassFinal.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/NotPassFinal.java index 75cb6d59..8a0a08f8 100644 --- a/src/main/java/ceos/backend/domain/application/exception/NotPassFinal.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/NotPassFinal.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class NotPassFinal extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/NotSetInterviewTime.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/NotSetInterviewTime.java similarity index 69% rename from src/main/java/ceos/backend/domain/application/exception/NotSetInterviewTime.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/NotSetInterviewTime.java index 7dde17ba..4b0b1798 100644 --- a/src/main/java/ceos/backend/domain/application/exception/NotSetInterviewTime.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/NotSetInterviewTime.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class NotSetInterviewTime extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/QuestionNotFound.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/QuestionNotFound.java similarity index 68% rename from src/main/java/ceos/backend/domain/application/exception/QuestionNotFound.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/QuestionNotFound.java index a31694bb..a8359040 100644 --- a/src/main/java/ceos/backend/domain/application/exception/QuestionNotFound.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/QuestionNotFound.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class QuestionNotFound extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/SamePassStatus.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/SamePassStatus.java similarity index 67% rename from src/main/java/ceos/backend/domain/application/exception/SamePassStatus.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/SamePassStatus.java index e1e6d6ec..b96cfe7b 100644 --- a/src/main/java/ceos/backend/domain/application/exception/SamePassStatus.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/SamePassStatus.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class SamePassStatus extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/exception/WrongGeneration.java b/src/main/java/ceos/backend/domain/application/exception/exceptions/WrongGeneration.java similarity index 68% rename from src/main/java/ceos/backend/domain/application/exception/WrongGeneration.java rename to src/main/java/ceos/backend/domain/application/exception/exceptions/WrongGeneration.java index aa4e38c0..540590ec 100644 --- a/src/main/java/ceos/backend/domain/application/exception/WrongGeneration.java +++ b/src/main/java/ceos/backend/domain/application/exception/exceptions/WrongGeneration.java @@ -1,6 +1,7 @@ -package ceos.backend.domain.application.exception; +package ceos.backend.domain.application.exception.exceptions; +import ceos.backend.domain.application.exception.ApplicationErrorCode; import ceos.backend.global.error.BaseErrorException; public class WrongGeneration extends BaseErrorException { diff --git a/src/main/java/ceos/backend/domain/application/helper/ApplicationHelper.java b/src/main/java/ceos/backend/domain/application/helper/ApplicationHelper.java index 1f51e031..d2a39d08 100644 --- a/src/main/java/ceos/backend/domain/application/helper/ApplicationHelper.java +++ b/src/main/java/ceos/backend/domain/application/helper/ApplicationHelper.java @@ -6,7 +6,7 @@ import ceos.backend.domain.application.dto.request.UpdateAttendanceRequest; import ceos.backend.domain.application.enums.SortPartType; import ceos.backend.domain.application.enums.SortPassType; -import ceos.backend.domain.application.exception.ApplicantNotFound; +import ceos.backend.domain.application.exception.exceptions.ApplicantNotFound; import ceos.backend.domain.application.mapper.ApplicationMapper; import ceos.backend.domain.application.repository.*; import ceos.backend.global.common.dto.AwsSESMail; diff --git a/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java b/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java index c4690573..c3c6a7bc 100644 --- a/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java +++ b/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java @@ -5,8 +5,8 @@ import ceos.backend.domain.application.dto.request.CreateApplicationRequest; import ceos.backend.domain.application.dto.request.UpdateApplicationQuestion; import ceos.backend.domain.application.dto.response.*; -import ceos.backend.domain.application.exception.InterviewNotFound; -import ceos.backend.domain.application.exception.QuestionNotFound; +import ceos.backend.domain.application.exception.exceptions.InterviewNotFound; +import ceos.backend.domain.application.exception.exceptions.QuestionNotFound; import ceos.backend.domain.application.vo.*; import ceos.backend.domain.recruitment.domain.Recruitment; import ceos.backend.global.common.dto.PageInfo; diff --git a/src/main/java/ceos/backend/domain/application/service/ApplicationExcelService.java b/src/main/java/ceos/backend/domain/application/service/ApplicationExcelService.java index 404890b9..9afb5169 100644 --- a/src/main/java/ceos/backend/domain/application/service/ApplicationExcelService.java +++ b/src/main/java/ceos/backend/domain/application/service/ApplicationExcelService.java @@ -6,7 +6,7 @@ import ceos.backend.domain.application.domain.ApplicationInterview; import ceos.backend.domain.application.domain.ApplicationQuestion; import ceos.backend.domain.application.dto.response.GetCreationTime; -import ceos.backend.domain.application.exception.FileCreationFailed; +import ceos.backend.domain.application.exception.exceptions.FileCreationFailed; import ceos.backend.domain.application.helper.ApplicationExcelHelper; import ceos.backend.domain.application.repository.ApplicationQuestionRepository; import ceos.backend.domain.application.repository.ApplicationRepository; diff --git a/src/main/java/ceos/backend/domain/application/service/ApplicationService.java b/src/main/java/ceos/backend/domain/application/service/ApplicationService.java index b63d44fb..4167084b 100644 --- a/src/main/java/ceos/backend/domain/application/service/ApplicationService.java +++ b/src/main/java/ceos/backend/domain/application/service/ApplicationService.java @@ -157,6 +157,7 @@ public void updateInterviewAttendance( public GetResultResponse getFinalResult(String uuid, String email) { recruitmentValidator.validateFinalResultAbleDuration(); // 최종 합격 기간 검증 applicationValidator.validateApplicantAccessible(uuid, email); // 유저 검증 + applicationValidator.validateInterviewTimeExist(uuid, email); // 유저 검증 final Application application = applicationHelper.getApplicationByUuidAndEmail(uuid, email); applicationValidator.validateApplicantDocumentPass(application); // 유저 서류 합격 여부 검증 diff --git a/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java b/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java index b1becf19..f1e879b2 100644 --- a/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java +++ b/src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java @@ -6,7 +6,7 @@ import ceos.backend.domain.application.domain.Interview; import ceos.backend.domain.application.domain.QuestionCategory; import ceos.backend.domain.application.dto.request.CreateApplicationRequest; -import ceos.backend.domain.application.exception.*; +import ceos.backend.domain.application.exception.exceptions.*; import ceos.backend.domain.application.repository.ApplicationAnswerRepository; import ceos.backend.domain.application.repository.ApplicationInterviewRepository; import ceos.backend.domain.application.repository.ApplicationQuestionRepository; @@ -80,6 +80,9 @@ public void validateInterviewTime(List interviews, String interviewTi } public void validateRemainApplications() { + if (applicationRepository.count() != 0) { + throw ApplicationStillExist.EXCEPTION; + } if (applicationAnswerRepository.count() != 0) { throw AnswerStillExist.EXCEPTION; } diff --git a/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java b/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java index d0ec6093..969b0573 100644 --- a/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java +++ b/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java @@ -2,7 +2,7 @@ import ceos.backend.domain.admin.exception.NotAllowedToModify; -import ceos.backend.domain.application.exception.WrongGeneration; +import ceos.backend.domain.application.exception.exceptions.WrongGeneration; import ceos.backend.domain.recruitment.dto.request.UpdateRecruitmentRequest; import ceos.backend.domain.recruitment.exception.*; import ceos.backend.global.common.entity.BaseEntity; diff --git a/src/main/java/ceos/backend/infra/ses/AwsSESMailGenerator.java b/src/main/java/ceos/backend/infra/ses/AwsSESMailGenerator.java index 7ec21b33..904157f7 100644 --- a/src/main/java/ceos/backend/infra/ses/AwsSESMailGenerator.java +++ b/src/main/java/ceos/backend/infra/ses/AwsSESMailGenerator.java @@ -4,7 +4,7 @@ import ceos.backend.domain.application.domain.ApplicationQuestion; import ceos.backend.domain.application.domain.QuestionCategory; import ceos.backend.domain.application.dto.request.CreateApplicationRequest; -import ceos.backend.domain.application.exception.QuestionNotFound; +import ceos.backend.domain.application.exception.exceptions.QuestionNotFound; import ceos.backend.domain.application.vo.AnswerVo; import ceos.backend.global.common.dto.AwsSESMail; import ceos.backend.global.common.dto.AwsSESPasswordMail; From 8c85830dba531ff381ef17e517d540894b4fef0d Mon Sep 17 00:00:00 2001 From: Jeonghyun Lee Date: Mon, 7 Aug 2023 22:18:09 +0900 Subject: [PATCH 6/9] =?UTF-8?q?[chore]=20Awards=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=20BaseEntity=20=EC=83=81=EC=86=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ceos/backend/domain/awards/domain/Awards.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/ceos/backend/domain/awards/domain/Awards.java b/src/main/java/ceos/backend/domain/awards/domain/Awards.java index 02701ba1..8c029566 100644 --- a/src/main/java/ceos/backend/domain/awards/domain/Awards.java +++ b/src/main/java/ceos/backend/domain/awards/domain/Awards.java @@ -1,6 +1,7 @@ package ceos.backend.domain.awards.domain; +import ceos.backend.global.common.entity.BaseEntity; import jakarta.persistence.*; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; @@ -9,7 +10,7 @@ @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity -public class Awards { +public class Awards extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) From f33eac1c21afa0f26c88812f868b7602afa0eb73 Mon Sep 17 00:00:00 2001 From: Ayeon Kim <77188666+yourzinc@users.noreply.github.com> Date: Mon, 7 Aug 2023 22:34:17 +0900 Subject: [PATCH 7/9] =?UTF-8?q?[refactor]=20=EB=A9=B4=EC=A0=91=20=EC=8B=9C?= =?UTF-8?q?=EA=B0=84=20=EC=A0=95=EB=A0=AC=20=EC=B6=94=EA=B0=80=20(#138)=20?= =?UTF-8?q?(#139)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/application/mapper/ApplicationMapper.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java b/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java index c3c6a7bc..0a8ae1f4 100644 --- a/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java +++ b/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java @@ -16,14 +16,13 @@ import ceos.backend.global.util.ParsedDurationConvertor; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import org.springframework.data.domain.Page; import org.springframework.stereotype.Component; +import static java.util.Map.*; + @Component public class ApplicationMapper { public Application toEntity(CreateApplicationRequest request, int generation, String UUID) { @@ -196,6 +195,9 @@ public GetApplicationQuestion toGetApplicationQuestion( .toList(); final Set dateSets = parsedDurations.stream().map(ParsedDuration::getDate).collect(Collectors.toSet()); + + final Comparator order = Comparator.comparing(InterviewDateTimesVo::getDate); + final List interviewDateTimesVos = dateSets.stream() .map( @@ -210,6 +212,7 @@ public GetApplicationQuestion toGetApplicationQuestion( .equals(dateSet)) .map(ParsedDuration::getDuration) .toList())) + .sorted(order) .toList(); return GetApplicationQuestion.of( From 6f3a77506c7d3167382a3ae1c4dd6aa97d9e0bb3 Mon Sep 17 00:00:00 2001 From: Jeonghyun Lee Date: Tue, 8 Aug 2023 00:06:35 +0900 Subject: [PATCH 8/9] =?UTF-8?q?[refact]=20startDate=20String=20=ED=98=95?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/ceos/backend/domain/awards/domain/StartDate.java | 6 +++--- .../backend/domain/awards/dto/request/AwardsRequest.java | 6 +++--- .../awards/dto/response/GenerationAwardsResponse.java | 6 +++--- .../ceos/backend/domain/awards/service/AwardsService.java | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/ceos/backend/domain/awards/domain/StartDate.java b/src/main/java/ceos/backend/domain/awards/domain/StartDate.java index f755bee4..e3157aba 100644 --- a/src/main/java/ceos/backend/domain/awards/domain/StartDate.java +++ b/src/main/java/ceos/backend/domain/awards/domain/StartDate.java @@ -17,11 +17,11 @@ public class StartDate { @Id private int generation; - @NotNull private LocalDate startDate; + @NotNull private String startDate; // 생성자 @Builder - public StartDate(int generation, LocalDate startDate) { + public StartDate(int generation, String startDate) { this.generation = generation; this.startDate = startDate; } @@ -34,7 +34,7 @@ public static StartDate from(AwardsRequest awardsRequest) { .build(); } - public void updateStartDate(LocalDate startDate) { + public void updateStartDate(String startDate) { this.startDate = startDate; } } diff --git a/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java b/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java index 60791f5b..817f7951 100644 --- a/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java +++ b/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java @@ -20,7 +20,7 @@ public class AwardsRequest { @Schema(description = "활동 시작 시기") @NotNull(message = "활동 시작 시기를 입력해주세요") @Valid - private LocalDate startDate; + private String startDate; @Schema(description = "수상 기록 리스트") @NotEmpty(message = "수상 기록을 입력해주세요") @@ -28,13 +28,13 @@ public class AwardsRequest { private List content; @Builder - public AwardsRequest(int generation, LocalDate startDate, List content) { + public AwardsRequest(int generation, String startDate, List content) { this.generation = generation; this.startDate = startDate; this.content = content; } - public static AwardsRequest of(int generation, LocalDate startDate, List content) { + public static AwardsRequest of(int generation, String startDate, List content) { return AwardsRequest.builder() .generation(generation) .startDate(startDate) diff --git a/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java b/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java index f68cece3..207a4198 100644 --- a/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java +++ b/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java @@ -10,14 +10,14 @@ @Getter public class GenerationAwardsResponse { private int generation; - private LocalDate startDate; + private String startDate; private List awards; private List projects; @Builder public GenerationAwardsResponse( int generation, - LocalDate startDate, + String startDate, List awards, List projects) { this.generation = generation; @@ -28,7 +28,7 @@ public GenerationAwardsResponse( public static GenerationAwardsResponse of( int generation, - LocalDate startDate, + String startDate, List awards, List projects) { return GenerationAwardsResponse.builder() diff --git a/src/main/java/ceos/backend/domain/awards/service/AwardsService.java b/src/main/java/ceos/backend/domain/awards/service/AwardsService.java index 603e27d9..003294c8 100644 --- a/src/main/java/ceos/backend/domain/awards/service/AwardsService.java +++ b/src/main/java/ceos/backend/domain/awards/service/AwardsService.java @@ -54,7 +54,7 @@ public AllAwardsResponse getAllAwards(int pageNum, int limit) { int maxGeneration = projectRepository.findMaxGeneration(); for (int i = maxGeneration; i > 0; i--) { Optional s = startDateRepository.findById(i); - LocalDate startDate = null; + String startDate = null; if (s.isPresent()) { startDate = s.get().getStartDate(); } @@ -86,7 +86,7 @@ public AllAwardsResponse getAllAwards(int pageNum, int limit) { @Transactional(readOnly = true) public GenerationAwardsResponse getGenerationAwards(int generation) { Optional s = startDateRepository.findById(generation); - LocalDate startDate = null; + String startDate = null; if (s.isPresent()) { startDate = s.get().getStartDate(); } From f98ee266e8efd1c11ed41949665149951d362523 Mon Sep 17 00:00:00 2001 From: Jeonghyun Lee Date: Tue, 8 Aug 2023 00:07:21 +0900 Subject: [PATCH 9/9] =?UTF-8?q?[chore]=20spotless=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/application/mapper/ApplicationMapper.java | 6 +++--- .../java/ceos/backend/domain/awards/domain/StartDate.java | 1 - .../backend/domain/awards/dto/request/AwardsRequest.java | 1 - .../awards/dto/response/GenerationAwardsResponse.java | 1 - .../ceos/backend/domain/awards/service/AwardsService.java | 1 - 5 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java b/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java index 0a8ae1f4..00f83c0c 100644 --- a/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java +++ b/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java @@ -1,5 +1,6 @@ package ceos.backend.domain.application.mapper; +import static java.util.Map.*; import ceos.backend.domain.application.domain.*; import ceos.backend.domain.application.dto.request.CreateApplicationRequest; @@ -21,8 +22,6 @@ import org.springframework.data.domain.Page; import org.springframework.stereotype.Component; -import static java.util.Map.*; - @Component public class ApplicationMapper { public Application toEntity(CreateApplicationRequest request, int generation, String UUID) { @@ -196,7 +195,8 @@ public GetApplicationQuestion toGetApplicationQuestion( final Set dateSets = parsedDurations.stream().map(ParsedDuration::getDate).collect(Collectors.toSet()); - final Comparator order = Comparator.comparing(InterviewDateTimesVo::getDate); + final Comparator order = + Comparator.comparing(InterviewDateTimesVo::getDate); final List interviewDateTimesVos = dateSets.stream() diff --git a/src/main/java/ceos/backend/domain/awards/domain/StartDate.java b/src/main/java/ceos/backend/domain/awards/domain/StartDate.java index e3157aba..1ea6cf56 100644 --- a/src/main/java/ceos/backend/domain/awards/domain/StartDate.java +++ b/src/main/java/ceos/backend/domain/awards/domain/StartDate.java @@ -4,7 +4,6 @@ import ceos.backend.domain.awards.dto.request.AwardsRequest; import jakarta.persistence.*; import jakarta.validation.constraints.NotNull; -import java.time.LocalDate; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; diff --git a/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java b/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java index 817f7951..0f68230a 100644 --- a/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java +++ b/src/main/java/ceos/backend/domain/awards/dto/request/AwardsRequest.java @@ -5,7 +5,6 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; -import java.time.LocalDate; import java.util.List; import lombok.Builder; import lombok.Getter; diff --git a/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java b/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java index 207a4198..1c6576f6 100644 --- a/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java +++ b/src/main/java/ceos/backend/domain/awards/dto/response/GenerationAwardsResponse.java @@ -2,7 +2,6 @@ import ceos.backend.domain.awards.vo.ProjectInfoVo; -import java.time.LocalDate; import java.util.List; import lombok.Builder; import lombok.Getter; diff --git a/src/main/java/ceos/backend/domain/awards/service/AwardsService.java b/src/main/java/ceos/backend/domain/awards/service/AwardsService.java index 003294c8..a5568f55 100644 --- a/src/main/java/ceos/backend/domain/awards/service/AwardsService.java +++ b/src/main/java/ceos/backend/domain/awards/service/AwardsService.java @@ -11,7 +11,6 @@ import ceos.backend.domain.awards.repository.StartDateRepository; import ceos.backend.domain.project.repository.ProjectRepository; import ceos.backend.global.common.dto.PageInfo; -import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import java.util.Optional;