diff --git a/src/main/java/com/ject/studytrip/trip/application/service/TripQueryService.java b/src/main/java/com/ject/studytrip/trip/application/service/TripQueryService.java index b96f0e1..caaaf83 100644 --- a/src/main/java/com/ject/studytrip/trip/application/service/TripQueryService.java +++ b/src/main/java/com/ject/studytrip/trip/application/service/TripQueryService.java @@ -38,7 +38,8 @@ public Trip getValidTrip(Long memberId, Long tripId) { } public Slice getTripsSliceByMemberId(Long memberId, int page, int size) { - return tripQueryRepository.findSliceByMemberId(memberId, PageRequest.of(page, size)); + return tripQueryRepository.findSliceByMemberIdAndCompletedFalseAndDeletedAtIsNull( + memberId, PageRequest.of(page, size)); } public TripCount getActiveTripCountsByMemberId(Long memberId) { diff --git a/src/main/java/com/ject/studytrip/trip/domain/repository/TripQueryRepository.java b/src/main/java/com/ject/studytrip/trip/domain/repository/TripQueryRepository.java index 23eb4eb..c3612c8 100644 --- a/src/main/java/com/ject/studytrip/trip/domain/repository/TripQueryRepository.java +++ b/src/main/java/com/ject/studytrip/trip/domain/repository/TripQueryRepository.java @@ -6,7 +6,8 @@ import org.springframework.data.domain.Slice; public interface TripQueryRepository { - Slice findSliceByMemberId(Long memberId, Pageable pageable); + Slice findSliceByMemberIdAndCompletedFalseAndDeletedAtIsNull( + Long memberId, Pageable pageable); long countActiveTripsByMemberIdAndCategory(Long memberId, TripCategory category); diff --git a/src/main/java/com/ject/studytrip/trip/infra/querydsl/TripQueryRepositoryAdapter.java b/src/main/java/com/ject/studytrip/trip/infra/querydsl/TripQueryRepositoryAdapter.java index 3c06f95..b1d3d2d 100644 --- a/src/main/java/com/ject/studytrip/trip/infra/querydsl/TripQueryRepositoryAdapter.java +++ b/src/main/java/com/ject/studytrip/trip/infra/querydsl/TripQueryRepositoryAdapter.java @@ -23,11 +23,15 @@ public class TripQueryRepositoryAdapter implements TripQueryRepository { private final QMember member = QMember.member; @Override - public Slice findSliceByMemberId(Long memberId, Pageable pageable) { + public Slice findSliceByMemberIdAndCompletedFalseAndDeletedAtIsNull( + Long memberId, Pageable pageable) { List content = queryFactory .selectFrom(trip) - .where(trip.member.id.eq(memberId).and(trip.deletedAt.isNull())) + .where( + trip.member.id.eq(memberId), + trip.completed.isFalse(), + trip.deletedAt.isNull()) .offset(pageable.getOffset()) .limit(pageable.getPageSize() + 1) .fetch(); diff --git a/src/main/java/com/ject/studytrip/trip/presentation/controller/TripController.java b/src/main/java/com/ject/studytrip/trip/presentation/controller/TripController.java index bf5037f..0489d6e 100644 --- a/src/main/java/com/ject/studytrip/trip/presentation/controller/TripController.java +++ b/src/main/java/com/ject/studytrip/trip/presentation/controller/TripController.java @@ -83,7 +83,8 @@ public ResponseEntity deleteTrip( @Operation( summary = "여행 목록 조회", - description = "여행 목록을 조회하는 API 입니다. 무한 스크롤을 위해 슬라이스를 적용하고, D-DAY 정보가 이른 순으로 정렬합니다.") + description = + "여행 목록을 조회하는 API 입니다. 무한 스크롤을 위해 슬라이스를 적용하고, D-DAY 정보가 이른 순으로 정렬합니다. 완료되지 않은 여행 목록만 조회합니다.") @GetMapping public ResponseEntity loadTrips( @AuthenticationPrincipal String memberId, diff --git a/src/test/java/com/ject/studytrip/trip/application/service/TripQueryServiceTest.java b/src/test/java/com/ject/studytrip/trip/application/service/TripQueryServiceTest.java index 6c16ed4..e80c3d7 100644 --- a/src/test/java/com/ject/studytrip/trip/application/service/TripQueryServiceTest.java +++ b/src/test/java/com/ject/studytrip/trip/application/service/TripQueryServiceTest.java @@ -133,14 +133,18 @@ void shouldGetTripByTripIdReturnValidTrip() { class GetTripsSliceByMemberId { @Test - @DisplayName("로그인된 사용자의 여행 목록을 DB에서 조회하고 슬라이스 처리해 반환한다") + @DisplayName("로그인된 사용자의 완료되지 않고 삭제되지 않은 여행 목록을 DB에서 조회하고 슬라이스 처리해 반환한다") void shouldGetTripsReturnSlicePaged() { // given Long memberId = member.getId(); List trips = List.of(trip); Pageable pageable = PageRequest.of(DEFAULT_PAGE, DEFAULT_SIZE); Slice results = new SliceImpl<>(trips, pageable, false); - given(tripQueryRepository.findSliceByMemberId(memberId, pageable)).willReturn(results); + given( + tripQueryRepository + .findSliceByMemberIdAndCompletedFalseAndDeletedAtIsNull( + memberId, pageable)) + .willReturn(results); // when Slice sliceTrips =