Skip to content

Commit

Permalink
πŸ”— :: (#503) μžμž˜ν•œ λ¦¬νŒ©ν† λ§
Browse files Browse the repository at this point in the history
  • Loading branch information
tedsoftj1123 authored Jan 14, 2024
2 parents d445e1d + 87271f3 commit 6a76bc3
Show file tree
Hide file tree
Showing 13 changed files with 45 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@ public class ChangeContractDateUseCase {
private final CommandAcceptancePort commandAcceptancePort;

public void execute(ChangeContractDateRequest request) {
if (request.getContractDate().isBefore(LocalDate.now())) {
throw InvalidDateException.EXCEPTION;
}

commandAcceptancePort.updateContractDate(
request.getContractDate(),
request.getAcceptanceIds()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public void checkReviewAuthority() {
}
}

public void checkApplicationStatus(ApplicationStatus requestedStatus, ApplicationStatus...baseStatuses) {
public void checkApplicationStatus(ApplicationStatus requestedStatus, ApplicationStatus... baseStatuses) {
if (!List.of(baseStatuses).contains(requestedStatus)) {
throw ApplicationStatusCannotChangeException.EXCEPTION;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,14 @@ public interface QueryApplicationPort {

List<Application> queryApplicationsByIds(List<Long> applicationIds);

Long queryApplicationCountByIds(List<Long> applicationIds);

List<ApplicationDetailVO> queryApplicationDetailsByIds(List<Long> applicationIds);

Optional<Application> queryApplicationById(Long applicationId);

Optional<Application> queryApplicationByIdAndApplicationStatus(Long applicationId, ApplicationStatus applicationStatus);

Optional<Application> queryApplicationByCompanyIdAndStudentId(Long applicationId, Long studentId);

boolean existsApplicationByStudentIdAndApplicationStatusIn(Long studentId, List<ApplicationStatus> applicationStatuses);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import lombok.RequiredArgsConstructor;
import team.retum.jobis.common.annotation.UseCase;
import team.retum.jobis.domain.application.exception.ApplicationNotFoundException;
import team.retum.jobis.domain.application.model.Application;
import team.retum.jobis.domain.application.model.ApplicationStatus;
import team.retum.jobis.domain.application.spi.CommandApplicationPort;
import team.retum.jobis.domain.application.spi.QueryApplicationPort;
Expand All @@ -18,8 +17,9 @@ public class ChangeApplicationsStatusUseCase {
private final CommandApplicationPort commandApplicationPort;

public void execute(List<Long> applicationIds, ApplicationStatus status) {
List<Application> applications = queryApplicationPort.queryApplicationsByIds(applicationIds);
if (applicationIds.size() != applications.size()) {
Long applicationCount = queryApplicationPort.queryApplicationCountByIds(applicationIds);

if (applicationIds.size() != applicationCount.intValue()) {
throw ApplicationNotFoundException.EXCEPTION;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@
import lombok.RequiredArgsConstructor;
import team.retum.jobis.common.annotation.UseCase;
import team.retum.jobis.domain.application.dto.request.ChangeFieldTrainDateRequest;
import team.retum.jobis.domain.application.exception.InvalidDateException;
import team.retum.jobis.domain.application.model.Application;
import team.retum.jobis.domain.application.model.ApplicationStatus;
import team.retum.jobis.domain.application.spi.CommandApplicationPort;
import team.retum.jobis.domain.application.spi.QueryApplicationPort;

import java.time.LocalDate;
import java.util.List;

@RequiredArgsConstructor
Expand All @@ -20,11 +18,6 @@ public class ChangeFieldTrainDateUseCase {
private final CommandApplicationPort commandApplicationPort;

public void execute(ChangeFieldTrainDateRequest request) {

if (request.getStartDate().isBefore(LocalDate.now())) {
throw InvalidDateException.EXCEPTION;
}

List<Application> applications = queryApplicationPort.queryApplicationsByIds(request.getApplicationIds());

applications
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ public void execute(Long applicationId) {

Application application = queryApplicationPort.queryApplicationById(applicationId)
.orElseThrow(() -> ApplicationNotFoundException.EXCEPTION);

application.checkIsDeletable(student);

commandApplicationPort.deleteApplication(application);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,9 @@ public class QueryRejectionReasonUseCase {
private final QueryApplicationPort queryApplicationPort;

public QueryRejectionReasonResponse execute(Long applicationId) {
Application application = queryApplicationPort.queryApplicationById(applicationId)
Application application = queryApplicationPort.queryApplicationByIdAndApplicationStatus(applicationId, ApplicationStatus.REJECTED)
.orElseThrow(() -> ApplicationNotFoundException.EXCEPTION);

if (application.getApplicationStatus() != ApplicationStatus.REJECTED) {
throw ApplicationNotFoundException.EXCEPTION;
}

return new QueryRejectionReasonResponse(application.getRejectionReason());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import team.retum.jobis.domain.application.exception.InvalidGradeException;
import team.retum.jobis.domain.recruitment.exception.CompanyMismatchException;
import team.retum.jobis.domain.recruitment.exception.InvalidRecruitmentStatusException;
import team.retum.jobis.domain.recruitment.exception.RecruitmentCannotDeleteException;

import java.time.LocalDate;
import java.time.LocalTime;
Expand Down Expand Up @@ -96,4 +97,10 @@ public void checkIsApplicable(Integer studentGrade) {
throw InvalidGradeException.EXCEPTION;
}
}

public void checkRecruitmentStatus() {
if (this.status.equals(RecruitStatus.RECRUITING)) {
throw RecruitmentCannotDeleteException.EXCEPTION;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
import team.retum.jobis.common.annotation.UseCase;
import team.retum.jobis.common.spi.SecurityPort;
import team.retum.jobis.domain.auth.model.Authority;
import team.retum.jobis.domain.recruitment.exception.RecruitmentCannotDeleteException;
import team.retum.jobis.domain.recruitment.exception.RecruitmentNotFoundException;
import team.retum.jobis.domain.recruitment.model.RecruitStatus;
import team.retum.jobis.domain.recruitment.model.Recruitment;
import team.retum.jobis.domain.recruitment.spi.CommandRecruitmentPort;
import team.retum.jobis.domain.recruitment.spi.QueryRecruitmentPort;
Expand All @@ -29,10 +27,7 @@ public void execute(Long recruitmentId) {
recruitment.checkCompany(currentUserId);
}

if (recruitment.getStatus() == RecruitStatus.RECRUITING) {
throw RecruitmentCannotDeleteException.EXCEPTION;
}

recruitment.checkRecruitmentStatus();
commandRecruitmentPort.deleteRecruitment(recruitment);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package team.retum.jobis.domain.acceptance.presentation.dto.request;

import jakarta.validation.constraints.Future;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -17,6 +18,7 @@ public class ChangeContractDateWebRequest {
private List<Long> acceptanceIds;

@NotNull
@Future
private LocalDate contractDate;

public ChangeContractDateRequest toDomainRequest() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,15 @@ public List<Application> queryApplicationsByIds(List<Long> applicationIds) {
.toList();
}

@Override
public Long queryApplicationCountByIds(List<Long> applicationIds) {
return queryFactory
.select(applicationEntity.count())
.from(applicationEntity)
.where(applicationEntity.id.in(applicationIds))
.fetchOne();
}

@Override
public List<ApplicationDetailVO> queryApplicationDetailsByIds(List<Long> applicationIds) {
return queryFactory
Expand Down Expand Up @@ -211,6 +220,19 @@ public Optional<Application> queryApplicationById(Long applicationId) {
.map(applicationMapper::toDomain);
}

@Override
public Optional<Application> queryApplicationByIdAndApplicationStatus(Long applicationId, ApplicationStatus applicationStatus) {
return Optional.ofNullable(
queryFactory
.selectFrom(applicationEntity)
.where(
applicationEntity.id.eq(applicationId),
applicationEntity.applicationStatus.eq(applicationStatus)
)
.fetchOne()
).map(applicationMapper::toDomain);
}

@Override
public Optional<Application> queryApplicationByCompanyIdAndStudentId(Long companyId, Long studentId) {
return Optional.ofNullable(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package team.retum.jobis.domain.application.presentation.dto.request;

import jakarta.validation.constraints.Future;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -17,6 +18,7 @@ public class ChangeFieldTrainDateWebRequest {
private List<Long> applicationIds;

@NotNull
@Future
private LocalDate startDate;

@NotNull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public void addCorsMappings(CorsRegistry registry) {
"https://develop.jobis-student.pages.dev",
"https://jobis-student-dev.team-return.com",
"http://localhost:3000",
"http://lcoalhost:3001",
"http://localhost:3001",
"http://localhost:4000"
)
.allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE", "HEAD")
Expand Down

0 comments on commit 6a76bc3

Please sign in to comment.