Skip to content

Commit

Permalink
[feat] 여행지 갤러리 Page 정보 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
junmo95 committed Jan 26, 2024
1 parent 3b3a3f1 commit 0f08345
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import com.haejwo.tripcometrue.domain.triprecord.dto.response.triprecord_schedule_media.TripRecordScheduleImageListResponseDto;
import com.haejwo.tripcometrue.domain.triprecord.service.TripRecordScheduleService;
import com.haejwo.tripcometrue.global.util.ResponseDTO;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
Expand All @@ -21,14 +21,14 @@ public class TripRecordScheduleController {
private final TripRecordScheduleService tripRecordScheduleService;

@GetMapping
public ResponseEntity<ResponseDTO<List<TripRecordScheduleImageListResponseDto>>> tripRecordScheduleImageList(
public ResponseEntity<ResponseDTO<Page<TripRecordScheduleImageListResponseDto>>> tripRecordScheduleImageList(
Pageable pageable,
@ModelAttribute TripRecordScheduleImageListRequestAttribute requestParam
) {

List<TripRecordScheduleImageListResponseDto> responseDtos = tripRecordScheduleService.findScheduleImages(pageable, requestParam);
Page<TripRecordScheduleImageListResponseDto> responseDtos = tripRecordScheduleService.findScheduleImages(pageable, requestParam);

ResponseDTO<List<TripRecordScheduleImageListResponseDto>> responseBody = ResponseDTO.okWithData(responseDtos);
ResponseDTO<Page<TripRecordScheduleImageListResponseDto>> responseBody = ResponseDTO.okWithData(responseDtos);

return ResponseEntity
.status(responseBody.getCode())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import com.haejwo.tripcometrue.domain.triprecord.dto.request.ModelAttribute.TripRecordScheduleImageListRequestAttribute;
import com.haejwo.tripcometrue.domain.triprecord.dto.response.triprecord_schedule_media.TripRecordScheduleImageListResponseDto;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface TripRecordScheduleCustomRepository {

List<TripRecordScheduleImageListResponseDto> findScheduleImagesWithFilter(Pageable pageable, TripRecordScheduleImageListRequestAttribute request);
Page<TripRecordScheduleImageListResponseDto> findScheduleImagesWithFilter(Pageable pageable, TripRecordScheduleImageListRequestAttribute request);

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,15 @@
import com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecordSchedule;
import com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecordScheduleImage;
import com.querydsl.core.BooleanBuilder;
import com.querydsl.core.QueryResults;
import com.querydsl.core.types.Order;
import com.querydsl.core.types.OrderSpecifier;
import com.querydsl.core.types.Projections;
import com.querydsl.jpa.impl.JPAQueryFactory;
import jakarta.persistence.EntityManager;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository;

Expand All @@ -27,7 +29,7 @@ public TripRecordScheduleCustomRepositoryImpl(EntityManager entityManager) {
}

@Override
public List<TripRecordScheduleImageListResponseDto> findScheduleImagesWithFilter(
public Page<TripRecordScheduleImageListResponseDto> findScheduleImagesWithFilter(
Pageable pageable,
TripRecordScheduleImageListRequestAttribute request
) {
Expand Down Expand Up @@ -55,7 +57,7 @@ public List<TripRecordScheduleImageListResponseDto> findScheduleImagesWithFilter
}
}

List<TripRecordScheduleImageListResponseDto> result = jpaQueryFactory
QueryResults<TripRecordScheduleImageListResponseDto> queryResults = jpaQueryFactory
.select(Projections.constructor(TripRecordScheduleImageListResponseDto.class,
qTripRecord.id,
qTripRecordScheduleImage.imageUrl.min(),
Expand All @@ -68,7 +70,9 @@ public List<TripRecordScheduleImageListResponseDto> findScheduleImagesWithFilter
.orderBy(orderSpecifier)
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
.fetch();
.fetchResults();

Page<TripRecordScheduleImageListResponseDto> result = new PageImpl<>(queryResults.getResults(), pageable, queryResults.getTotal());

return result;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import com.haejwo.tripcometrue.domain.triprecord.dto.request.ModelAttribute.TripRecordScheduleImageListRequestAttribute;
import com.haejwo.tripcometrue.domain.triprecord.dto.response.triprecord_schedule_media.TripRecordScheduleImageListResponseDto;
import com.haejwo.tripcometrue.domain.triprecord.repository.triprecord_schedule.TripRecordScheduleRepository;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

Expand All @@ -14,12 +14,12 @@ public class TripRecordScheduleService {

private final TripRecordScheduleRepository tripRecordScheduleRepository;

public List<TripRecordScheduleImageListResponseDto> findScheduleImages(
public Page<TripRecordScheduleImageListResponseDto> findScheduleImages(
Pageable pageable,
TripRecordScheduleImageListRequestAttribute requestParam
) {

List<TripRecordScheduleImageListResponseDto> responseDtos = tripRecordScheduleRepository.findScheduleImagesWithFilter(pageable, requestParam);
Page<TripRecordScheduleImageListResponseDto> responseDtos = tripRecordScheduleRepository.findScheduleImagesWithFilter(pageable, requestParam);

return responseDtos;

Expand Down

0 comments on commit 0f08345

Please sign in to comment.