diff --git a/src/main/java/com/inglo/giggle/career/application/dto/response/ReadGuestsCareersOverviewsResponseDto.java b/src/main/java/com/inglo/giggle/career/application/dto/response/ReadGuestsCareersOverviewsResponseDto.java index df24f51..8d73346 100644 --- a/src/main/java/com/inglo/giggle/career/application/dto/response/ReadGuestsCareersOverviewsResponseDto.java +++ b/src/main/java/com/inglo/giggle/career/application/dto/response/ReadGuestsCareersOverviewsResponseDto.java @@ -58,7 +58,7 @@ public static class CareerOverviewDto { @NotNull @JsonProperty("left_days") - private final String leftDays; + private final int leftDays; @NotNull @JsonProperty("status") @@ -84,7 +84,7 @@ public CareerOverviewDto( List visa, String hostName, String organizerName, - String leftDays, + int leftDays, ERecruitmentStatus status, String recruitmentStartDate, String recruitmentEndDate, diff --git a/src/main/java/com/inglo/giggle/career/application/dto/response/ReadUsersCareersOverviewsResponseDto.java b/src/main/java/com/inglo/giggle/career/application/dto/response/ReadUsersCareersOverviewsResponseDto.java index 47e046a..f1b5428 100644 --- a/src/main/java/com/inglo/giggle/career/application/dto/response/ReadUsersCareersOverviewsResponseDto.java +++ b/src/main/java/com/inglo/giggle/career/application/dto/response/ReadUsersCareersOverviewsResponseDto.java @@ -61,7 +61,7 @@ public static class CareerOverviewDto { @NotNull @JsonProperty("left_days") - private final String leftDays; + private final int leftDays; @NotNull @JsonProperty("status") @@ -88,7 +88,7 @@ public CareerOverviewDto( List visa, String hostName, String organizerName, - String leftDays, + int leftDays, ERecruitmentStatus status, String recruitmentStartDate, String recruitmentEndDate, diff --git a/src/main/java/com/inglo/giggle/career/application/service/ReadGuestCareersOverviewsService.java b/src/main/java/com/inglo/giggle/career/application/service/ReadGuestCareersOverviewsService.java index bcfbd0e..f8f1d5c 100644 --- a/src/main/java/com/inglo/giggle/career/application/service/ReadGuestCareersOverviewsService.java +++ b/src/main/java/com/inglo/giggle/career/application/service/ReadGuestCareersOverviewsService.java @@ -29,8 +29,6 @@ public class ReadGuestCareersOverviewsService implements ReadGuestCareersOvervie // 최신순 private static final String RECENT = "RECENT"; - private static final String END = "end"; - private final CareerRepository careerRepository; @Override @@ -87,19 +85,19 @@ private ReadGuestsCareersOverviewsResponseDto.CareerOverviewDto toDto(Career car .build(); } - private String calculateLeftDays(LocalDate startDate, LocalDate endDate) { + private int calculateLeftDays(LocalDate startDate, LocalDate endDate) { LocalDate today = LocalDate.now(); - Long days; + if (today.isBefore(startDate)) { - days = ChronoUnit.DAYS.between(LocalDate.now(), startDate); - } - else if (today.isEqual(startDate) || today.isAfter(startDate)) { - days = ChronoUnit.DAYS.between(LocalDate.now(), endDate); - } - else { - days = null; + // 아직 시작 전 → 시작일까지 남은 날짜 + return (int) ChronoUnit.DAYS.between(today, startDate); + } else if (!today.isAfter(endDate)) { + // 시작일 이상이고 종료일 이하 → 종료일까지 남은 날짜 + return (int) ChronoUnit.DAYS.between(today, endDate); + } else { + // 종료일 이후 → 이미 지난 기간 (음수로 반환) + return (int) ChronoUnit.DAYS.between(endDate, today) * -1; } - return days != null ? days + " days left" : END; } private ERecruitmentStatus calculateRecruitmentStatus(LocalDate start, LocalDate end) { diff --git a/src/main/java/com/inglo/giggle/career/application/service/ReadUserCareersOverviewsService.java b/src/main/java/com/inglo/giggle/career/application/service/ReadUserCareersOverviewsService.java index b1eb3e6..eeff3c3 100644 --- a/src/main/java/com/inglo/giggle/career/application/service/ReadUserCareersOverviewsService.java +++ b/src/main/java/com/inglo/giggle/career/application/service/ReadUserCareersOverviewsService.java @@ -31,8 +31,6 @@ public class ReadUserCareersOverviewsService implements ReadUsersCareersOverview // 최신순 private static final String RECENT = "RECENT"; - private static final String END = "end"; - private final CareerRepository careerRepository; private final BookMarkCareerRepository bookMarkCareerRepository; @@ -128,17 +126,19 @@ private ReadUsersCareersOverviewsResponseDto.CareerOverviewDto toDto(Career care .build(); } - private String calculateLeftDays(LocalDate startDate, LocalDate endDate) { + private int calculateLeftDays(LocalDate startDate, LocalDate endDate) { LocalDate today = LocalDate.now(); - Long days; + if (today.isBefore(startDate)) { - days = ChronoUnit.DAYS.between(LocalDate.now(), startDate); - } else if (today.isEqual(startDate) || today.isAfter(startDate)) { - days = ChronoUnit.DAYS.between(LocalDate.now(), endDate); + // 아직 시작 전 → 시작일까지 남은 날짜 + return (int) ChronoUnit.DAYS.between(today, startDate); + } else if (!today.isAfter(endDate)) { + // 시작일 이상이고 종료일 이하 → 종료일까지 남은 날짜 + return (int) ChronoUnit.DAYS.between(today, endDate); } else { - days = null; + // 종료일 이후 → 이미 지난 기간 (음수로 반환) + return (int) ChronoUnit.DAYS.between(endDate, today) * -1; } - return days != null ? days + " days left" : END; } private ERecruitmentStatus calculateRecruitmentStatus(LocalDate start, LocalDate end) {