diff --git a/src/main/java/TtattaBackend/ttatta/converter/ChallengeConverter.java b/src/main/java/TtattaBackend/ttatta/converter/ChallengeConverter.java index 910e5830..911d5910 100644 --- a/src/main/java/TtattaBackend/ttatta/converter/ChallengeConverter.java +++ b/src/main/java/TtattaBackend/ttatta/converter/ChallengeConverter.java @@ -1,21 +1,12 @@ package TtattaBackend.ttatta.converter; import TtattaBackend.ttatta.domain.Challenges; -import TtattaBackend.ttatta.domain.Diaries; -import TtattaBackend.ttatta.domain.DiaryPhotos; import TtattaBackend.ttatta.web.dto.ChallengeRequestDTO; import TtattaBackend.ttatta.web.dto.ChallengeResponeseDTO; -import TtattaBackend.ttatta.web.dto.DiaryResponseDTO; -import org.springframework.data.domain.Page; import java.util.List; import java.util.stream.Collectors; -import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; -import java.util.List; -import java.util.stream.Collectors; - public class ChallengeConverter { public static Challenges toChallenge(ChallengeRequestDTO.CreateChallengeRequestDTO request) { @@ -48,6 +39,7 @@ public static ChallengeResponeseDTO.ChallengeResultDTO toChallengeResultDTO(Chal return ChallengeResponeseDTO.ChallengeResultDTO.builder() .challengeId(challenge.getId()) .title(challenge.getTitle()) + .content(challenge.getContent()) .isCompleted(challenge.getIsCompleted()) .build(); } @@ -61,21 +53,21 @@ public static ChallengeResponeseDTO.ChallengeListResultDTO toChallengeListResult .build(); } - public static ChallengeResponeseDTO.FailChallengeResultDTO toFailChallengeResultDTO(Challenges challenge, int term) { - return ChallengeResponeseDTO.FailChallengeResultDTO.builder() + public static ChallengeResponeseDTO.GetAllPastChallengeResultDTO toGetAllPastChallengeResultDTO(Challenges challenge) { + return ChallengeResponeseDTO.GetAllPastChallengeResultDTO.builder() .challengeId(challenge.getId()) .title(challenge.getTitle()) .content(challenge.getContent()) - .term(term) + .isCompleted(challenge.getIsCompleted()) .build(); } - public static ChallengeResponeseDTO.FailChallengeListResultDTO toFailChallengeListResultDTO(List challengeList) { - List challengeListDTO = challengeList.stream() - .map(challenge -> ChallengeConverter.toFailChallengeResultDTO(challenge, (int) ChronoUnit.DAYS.between(challenge.getCreatedAt(), LocalDateTime.now()))).collect(Collectors.toList()); + public static ChallengeResponeseDTO.GetAllPastChallengeListResultDTO toGetAllPastChallengeListResultDTO(List challengeList) { + List challengeListDTO = challengeList.stream() + .map(challenge -> ChallengeConverter.toGetAllPastChallengeResultDTO(challenge)).collect(Collectors.toList()); - return ChallengeResponeseDTO.FailChallengeListResultDTO.builder() - .failChallengeList(challengeListDTO) + return ChallengeResponeseDTO.GetAllPastChallengeListResultDTO.builder() + .getAllPastChallengeResultDTOList(challengeListDTO) .build(); } } diff --git a/src/main/java/TtattaBackend/ttatta/repository/ChallengeRepository.java b/src/main/java/TtattaBackend/ttatta/repository/ChallengeRepository.java index 88db57f6..bd80f714 100644 --- a/src/main/java/TtattaBackend/ttatta/repository/ChallengeRepository.java +++ b/src/main/java/TtattaBackend/ttatta/repository/ChallengeRepository.java @@ -9,7 +9,6 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; -import java.util.Map; public interface ChallengeRepository extends JpaRepository { @Query("SELECT COUNT(c) FROM Challenges c WHERE c.users = :user AND DATE(c.createdAt) = DATE(:targetDate)") @@ -17,13 +16,7 @@ public interface ChallengeRepository extends JpaRepository { Challenges findByIdAndUsers(Long challengeId, Users user); @Query("SELECT c FROM Challenges c WHERE c.users = :user AND DATE(c.createdAt) = :targetDate ORDER BY c.createdAt ASC") List findByUsersAndCreatedAtDateOrderByCreatedAtAsc(@Param("user") Users user, @Param("targetDate") LocalDate targetDate); - @Query("SELECT c FROM Challenges c " + - "WHERE c.users = :user " + - "AND c.isCompleted = false " + - "AND DATE(c.createdAt) <> CURRENT_DATE " + - "ORDER BY c.createdAt DESC " + - "LIMIT 5") - List findTop5ByUserAndIsCompletedFalseExcludeTodayOrderByCreatedAtDesc(@Param("user") Users user); Challenges findByUsers(Users getUser); boolean existsByUsersAndIsCompletedFalseAndCreatedAtBetween(Users users, LocalDateTime start, LocalDateTime end); + List findAllByUsersAndCreatedAtBefore(Users getUser, LocalDateTime startOfToday); } diff --git a/src/main/java/TtattaBackend/ttatta/service/ChallengeService/ChallengeQueryService.java b/src/main/java/TtattaBackend/ttatta/service/ChallengeService/ChallengeQueryService.java index c75f0a1a..851c6aea 100644 --- a/src/main/java/TtattaBackend/ttatta/service/ChallengeService/ChallengeQueryService.java +++ b/src/main/java/TtattaBackend/ttatta/service/ChallengeService/ChallengeQueryService.java @@ -6,5 +6,5 @@ public interface ChallengeQueryService { List getChallenges(); - List getFailChallenges(); + List getAllPastChallenges(); } diff --git a/src/main/java/TtattaBackend/ttatta/service/ChallengeService/ChallengeQueryServiceImpl.java b/src/main/java/TtattaBackend/ttatta/service/ChallengeService/ChallengeQueryServiceImpl.java index 79948dcb..af325462 100644 --- a/src/main/java/TtattaBackend/ttatta/service/ChallengeService/ChallengeQueryServiceImpl.java +++ b/src/main/java/TtattaBackend/ttatta/service/ChallengeService/ChallengeQueryServiceImpl.java @@ -8,10 +8,10 @@ import TtattaBackend.ttatta.repository.ChallengeRepository; import TtattaBackend.ttatta.repository.UserRepository; import lombok.RequiredArgsConstructor; -import org.springframework.data.domain.PageRequest; import org.springframework.stereotype.Service; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; @Service @@ -29,9 +29,12 @@ public List getChallenges() { } @Override - public List getFailChallenges() { + public List getAllPastChallenges() { Long userId = SecurityUtil.getCurrentUserId(); Users getUser = userRepository.findById(userId).orElseThrow(() -> new ExceptionHandler(ErrorStatus.USER_NOT_FOUND)); - return challengeRepository.findTop5ByUserAndIsCompletedFalseExcludeTodayOrderByCreatedAtDesc(getUser); + LocalDate today = LocalDate.now(); + // 오늘 00:00 + LocalDateTime startOfToday = today.atStartOfDay(); + return challengeRepository.findAllByUsersAndCreatedAtBefore(getUser, startOfToday); } } diff --git a/src/main/java/TtattaBackend/ttatta/web/controller/ChallengeController.java b/src/main/java/TtattaBackend/ttatta/web/controller/ChallengeController.java index d0692153..b5f1cd01 100644 --- a/src/main/java/TtattaBackend/ttatta/web/controller/ChallengeController.java +++ b/src/main/java/TtattaBackend/ttatta/web/controller/ChallengeController.java @@ -2,16 +2,11 @@ import TtattaBackend.ttatta.apiPayload.ApiResponse; import TtattaBackend.ttatta.converter.ChallengeConverter; -import TtattaBackend.ttatta.converter.ItemConverter; import TtattaBackend.ttatta.domain.Challenges; -import TtattaBackend.ttatta.domain.Items; import TtattaBackend.ttatta.service.ChallengeService.ChallengeCommandService; import TtattaBackend.ttatta.service.ChallengeService.ChallengeQueryService; -import TtattaBackend.ttatta.service.ItemService.ItemCommandService; import TtattaBackend.ttatta.web.dto.ChallengeRequestDTO; import TtattaBackend.ttatta.web.dto.ChallengeResponeseDTO; -import TtattaBackend.ttatta.web.dto.ItemRequestDTO; -import TtattaBackend.ttatta.web.dto.ItemResponseDTO; import io.swagger.v3.oas.annotations.Operation; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; @@ -62,13 +57,13 @@ public ApiResponse getChallenges() ); } - @Operation(summary = "가장 최근에 실패한 챌린지 5개 조회 api", - description = "가장 최근에 실패한 5개의 챌린지를 조회하는 api입니다.\n" + @Operation(summary = "지난 모든 챌린지 조회 api", + description = "지난 모든 챌린지를 조회하는 api입니다.\n" + "header에 access token을 넣어주세요.") - @GetMapping("/fail") - public ApiResponse getFailChallenges() { + @GetMapping("/all") + public ApiResponse getAllPastChallenges() { return ApiResponse.onSuccess( - ChallengeConverter.toFailChallengeListResultDTO(challengeQueryService.getFailChallenges()) + ChallengeConverter.toGetAllPastChallengeListResultDTO(challengeQueryService.getAllPastChallenges()) ); } } diff --git a/src/main/java/TtattaBackend/ttatta/web/dto/ChallengeResponeseDTO.java b/src/main/java/TtattaBackend/ttatta/web/dto/ChallengeResponeseDTO.java index f582cc5d..ca3caf56 100644 --- a/src/main/java/TtattaBackend/ttatta/web/dto/ChallengeResponeseDTO.java +++ b/src/main/java/TtattaBackend/ttatta/web/dto/ChallengeResponeseDTO.java @@ -38,6 +38,7 @@ public static class SuccessChallengeResultDTO { public static class ChallengeResultDTO { Long challengeId; String title; + String content; Boolean isCompleted; } @@ -53,18 +54,18 @@ public static class ChallengeListResultDTO { @Builder @NoArgsConstructor @AllArgsConstructor - public static class FailChallengeResultDTO { + public static class GetAllPastChallengeResultDTO { Long challengeId; String title; String content; - int term; + boolean isCompleted; } @Getter @Builder @NoArgsConstructor @AllArgsConstructor - public static class FailChallengeListResultDTO { - List failChallengeList; + public static class GetAllPastChallengeListResultDTO { + List getAllPastChallengeResultDTOList; } }