Skip to content

Commit

Permalink
Merge branch 'dev' of https://github.com/CEOS-Developers/CEOS-BE into…
Browse files Browse the repository at this point in the history
… dev
  • Loading branch information
suhhyun524 committed Aug 12, 2023
2 parents ea692bd + f98ee26 commit c0f571b
Show file tree
Hide file tree
Showing 38 changed files with 235 additions and 100 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

public enum QuestionCategory {
COMMON,
STRATEGY,
PRODUCT,
DESIGN,
FRONTEND,
BACKEND;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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", "존재하지 않는 지원자입니다."),

Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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);
}
}
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
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 {

public static final NotSetInterviewTime EXCEPTION =
new NotSetInterviewTime();
public static final NotSetInterviewTime EXCEPTION = new NotSetInterviewTime();

private NotSetInterviewTime() {
super(ApplicationErrorCode.NOT_SET_INTERVIEW_TIME);
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
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;
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;
Expand All @@ -16,10 +17,7 @@
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;
Expand Down Expand Up @@ -111,7 +109,7 @@ public QuestionListVo toQuestionList(UpdateApplicationQuestion updateApplication
List<ApplicationQuestion> questions = new ArrayList<>();
List<ApplicationQuestionDetail> 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);
Expand Down Expand Up @@ -182,7 +180,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);
Expand All @@ -196,6 +194,10 @@ public GetApplicationQuestion toGetApplicationQuestion(
.toList();
final Set<String> dateSets =
parsedDurations.stream().map(ParsedDuration::getDate).collect(Collectors.toSet());

final Comparator<InterviewDateTimesVo> order =
Comparator.comparing(InterviewDateTimesVo::getDate);

final List<InterviewDateTimesVo> interviewDateTimesVos =
dateSets.stream()
.map(
Expand All @@ -210,6 +212,7 @@ public GetApplicationQuestion toGetApplicationQuestion(
.equals(dateSet))
.map(ParsedDuration::getDuration)
.toList()))
.sorted(order)
.toList();

return GetApplicationQuestion.of(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<ApplicationQuestion> applicationQuestions =
applicationQuestionRepository.findAll();
Expand All @@ -89,7 +90,6 @@ public void createApplication(CreateApplicationRequest createApplicationRequest)

application.addApplicationAnswerList(applicationAnswers);
application.addApplicationInterviewList(applicationInterviews);
applicationRepository.save(application);

// 이메일 전송
applicationHelper.sendEmail(createApplicationRequest, generation, UUID);
Expand Down Expand Up @@ -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); // 유저 서류 합격 여부 검증

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -80,6 +80,9 @@ public void validateInterviewTime(List<Interview> interviews, String interviewTi
}

public void validateRemainApplications() {
if (applicationRepository.count() != 0) {
throw ApplicationStillExist.EXCEPTION;
}
if (applicationAnswerRepository.count() != 0) {
throw AnswerStillExist.EXCEPTION;
}
Expand Down Expand Up @@ -109,12 +112,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;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.*;
Expand All @@ -24,7 +23,7 @@ public class AwardsController {

@Operation(summary = "수상이력 추가하기")
@PostMapping
public void createAwards(@RequestBody @Valid List<AwardsRequest> awardsRequest) {
public void createAwards(@RequestBody @Valid AwardsRequest awardsRequest) {
log.info("수상이력 추가하기");
awardsService.createAwards(awardsRequest);
}
Expand All @@ -49,7 +48,7 @@ public GenerationAwardsResponse getGenerationAwards(
@PutMapping("/{generation}")
public void updateAwards(
@PathVariable(name = "generation") int generation,
@RequestBody List<AwardsRequest> awardsRequest) {
@RequestBody AwardsRequest awardsRequest) {
log.info("수상이력 수정하기");
awardsService.updateAwards(generation, awardsRequest);
}
Expand Down
Loading

0 comments on commit c0f571b

Please sign in to comment.