Skip to content

Commit

Permalink
Refactor: 기수 추가 시 날짜 타입 LocalDate로 변경 (#39)
Browse files Browse the repository at this point in the history
Co-authored-by: Youth <[email protected]>
  • Loading branch information
gikhoon and Youthhing authored Feb 11, 2024
1 parent b3b3c5f commit 2203299
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 30 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
package cotato.csquiz.domain.dto.generation;

import java.time.LocalDate;
import lombok.Getter;

@Getter
public class AddGenerationRequest {
private int generationNumber;
private LocalDate startDate;
private LocalDate endDate;
private int sessionCount;
private int startYear;
private int startMonth;
private int startDay;
private int endYear;
private int endMonth;
private int endDay;
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
package cotato.csquiz.domain.dto.generation;

import java.time.LocalDate;
import lombok.Getter;

@Getter
public class ChangePeriodRequest {

private Long generationId;

private int startYear;
private int startMonth;
private int startDay;

private int endYear;
private int endMonth;
private int endDay;
private LocalDate startDate;
private LocalDate endDate;
}
22 changes: 6 additions & 16 deletions src/main/java/cotato/csquiz/service/GenerationService.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,52 +26,42 @@ public class GenerationService {
private final GenerationRepository generationRepository;
private final SessionRepository sessionRepository;

//기수 추가
public AddGenerationResponse addGeneration(AddGenerationRequest request) {
LocalDate startDate = LocalDate.of(request.getStartYear(), request.getStartMonth(), request.getStartDay());
LocalDate endDate = LocalDate.of(request.getEndYear(), request.getEndMonth(), request.getEndDay());
checkPeriodValid(startDate, endDate);
checkPeriodValid(request.getStartDate(), request.getEndDate());
checkNumberValid(request.getGenerationNumber());
Generation generation = Generation.builder()
.number(request.getGenerationNumber())
.startDate(request.getStartDate())
.endDate(request.getEndDate())
.sessionCount(request.getSessionCount())
.startDate(startDate)
.endDate(endDate)
.build();
Generation savedGeneration = generationRepository.save(generation);
return AddGenerationResponse.builder()
.generationId(savedGeneration.getId())
.build();
}

//모집 변경
public void changeRecruiting(ChangeRecruitingRequest request) {
//해당 멤버가 운영진인지 확인 TODO
Generation generation = generationRepository.findById(request.getGenerationId()).orElseThrow(
() -> new AppException(ErrorCode.DATA_NOTFOUND));
generation.changeRecruit(request.isStatement());
log.info("changeRecruiting success");
}

public void changePeriod(ChangePeriodRequest request) {
LocalDate startDate = LocalDate.of(request.getStartYear(), request.getStartMonth(), request.getStartDay());
LocalDate endDate = LocalDate.of(request.getEndYear(), request.getEndMonth(), request.getEndDay());
checkPeriodValid(startDate, endDate);
checkPeriodValid(request.getStartDate(), request.getEndDate());
Generation generation = generationRepository.findById(request.getGenerationId()).orElseThrow(
() -> new AppException(ErrorCode.DATA_NOTFOUND));
generation.changePeriod(startDate, endDate);
log.info("change date " + startDate + " " + endDate);
generation.changePeriod(request.getStartDate(), request.getEndDate());
log.info("change date " + request.getStartDate() + " " + request.getEndDate());
}

//기수 목록 알려주기
public List<GenerationInfoResponse> getGenerations() {
List<Generation> generations = generationRepository.findAll();
return generations.stream()
.map(GenerationInfoResponse::from)
.toList();
}

//시작 날짜가 끝나는 날짜보다 뒤면 오류 처리
private void checkPeriodValid(LocalDate startDate, LocalDate endDate) {
if (endDate.isBefore(startDate)) {
log.info("날짜 오류");
Expand Down

0 comments on commit 2203299

Please sign in to comment.