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;