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] =?UTF-8?q?[refact]=20=ED=99=9C=EB=8F=99=EC=8B=9C=EC=9E=91?= =?UTF-8?q?=EC=8B=9C=EA=B8=B0=20=EC=97=86=EC=9C=BC=EB=A9=B4=20null=20?= =?UTF-8?q?=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();