Skip to content

Commit

Permalink
[feat] 여행후기 쇼츠 리스트 API 응답 데이터 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
junmo95 committed Jan 28, 2024
1 parent a6c79f7 commit bf77604
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 31 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.haejwo.tripcometrue.domain.triprecord.dto.response.member;

import lombok.Builder;

public record TripRecordVideoMemberResponseDto(
Long memberId,
String nickname,
String profileImage
) {

@Builder
public TripRecordVideoMemberResponseDto(Long memberId, String nickname, String profileImage) {
this.memberId = memberId;
this.nickname = nickname;
this.profileImage = profileImage;
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.haejwo.tripcometrue.domain.triprecord.dto.response.triprecord_schedule_media;

import com.haejwo.tripcometrue.domain.triprecord.dto.response.member.TripRecordMemberResponseDto;
import com.haejwo.tripcometrue.domain.triprecord.dto.response.member.TripRecordVideoMemberResponseDto;
import lombok.Builder;

public record TripRecordHotShortsListResponseDto(
Expand All @@ -10,19 +10,21 @@ public record TripRecordHotShortsListResponseDto(
Integer tripRecordStoreCount,
Long videoId,
String thumbnailUrl,
TripRecordMemberResponseDto member
String videoUrl,
TripRecordVideoMemberResponseDto member

) {

@Builder
public TripRecordHotShortsListResponseDto(Long tripRecordId, String tripRecordTitle,
Integer tripRecordStoreCount, Long videoId, String thumbnailUrl,
TripRecordMemberResponseDto member) {
Integer tripRecordStoreCount, Long videoId, String thumbnailUrl, String videoUrl,
TripRecordVideoMemberResponseDto member) {
this.tripRecordId = tripRecordId;
this.tripRecordTitle = tripRecordTitle;
this.tripRecordStoreCount = tripRecordStoreCount;
this.videoId = videoId;
this.thumbnailUrl = thumbnailUrl;
this.videoUrl = videoUrl;
this.member = member;
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
package com.haejwo.tripcometrue.domain.triprecord.repository.triprecord;

import static com.haejwo.tripcometrue.domain.city.entity.QCity.city;
import static com.haejwo.tripcometrue.domain.member.entity.QMember.member;
import static com.haejwo.tripcometrue.domain.place.entity.QPlace.place;
import static com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecord.tripRecord;
import static com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecordSchedule.tripRecordSchedule;
import static com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecordTag.tripRecordTag;

import com.haejwo.tripcometrue.domain.member.entity.QMember;
import com.haejwo.tripcometrue.domain.triprecord.dto.request.ModelAttribute.TripRecordListRequestAttribute;
import com.haejwo.tripcometrue.domain.triprecord.dto.request.ModelAttribute.TripRecordSearchParamAttribute;
import com.haejwo.tripcometrue.domain.triprecord.dto.response.member.TripRecordMemberResponseDto;
import com.haejwo.tripcometrue.domain.triprecord.dto.response.member.TripRecordVideoMemberResponseDto;
import com.haejwo.tripcometrue.domain.triprecord.dto.response.triprecord.TripRecordListResponseDto;
import com.haejwo.tripcometrue.domain.triprecord.dto.response.triprecord_schedule_media.TripRecordHotShortsListResponseDto;
import com.haejwo.tripcometrue.domain.triprecord.entity.*;
import com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecord;
import com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecordImage;
import com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecordSchedule;
import com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecordScheduleVideo;
import com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecordTag;
import com.haejwo.tripcometrue.domain.triprecord.entity.TripRecord;
import com.haejwo.tripcometrue.domain.triprecord.entity.type.ExpenseRangeType;
import com.haejwo.tripcometrue.global.enums.Country;
import com.querydsl.core.BooleanBuilder;
Expand All @@ -19,24 +32,16 @@
import com.querydsl.core.types.dsl.Expressions;
import com.querydsl.jpa.JPAExpressions;
import com.querydsl.jpa.impl.JPAQueryFactory;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Slice;
import org.springframework.data.domain.SliceImpl;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport;
import org.springframework.util.StringUtils;

import java.util.LinkedList;
import java.util.List;
import java.util.Objects;

import static com.haejwo.tripcometrue.domain.city.entity.QCity.city;
import static com.haejwo.tripcometrue.domain.member.entity.QMember.member;
import static com.haejwo.tripcometrue.domain.place.entity.QPlace.place;
import static com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecord.tripRecord;
import static com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecordSchedule.tripRecordSchedule;
import static com.haejwo.tripcometrue.domain.triprecord.entity.QTripRecordTag.tripRecordTag;

public class TripRecordRepositoryImpl extends QuerydslRepositorySupport implements TripRecordRepositoryCustom {

private final JPAQueryFactory queryFactory;
Expand Down Expand Up @@ -267,27 +272,23 @@ public List<TripRecordHotShortsListResponseDto> findTripRecordHotShortsList(Page
qTripRecord.id,
qTripRecord.title,
qTripRecord.storeCount,
JPAExpressions
.select(qTripRecordScheduleVideo.id.min())
.from(qTripRecordScheduleVideo)
.where(qTripRecordScheduleVideo.tripRecordSchedule.id.eq(
JPAExpressions
.select(qTripRecordSchedule.id.min())
.from(qTripRecordSchedule)
.where(qTripRecordSchedule.tripRecord.id.eq(qTripRecord.id)))),
JPAExpressions
.select(qTripRecordScheduleVideo.thumbnailUrl.min())
.from(qTripRecordScheduleVideo)
.where(qTripRecordScheduleVideo.tripRecordSchedule.tripRecord.id.eq(qTripRecord.id)),
Projections.constructor(TripRecordMemberResponseDto.class,
qTripRecordScheduleVideo.id,
qTripRecordScheduleVideo.thumbnailUrl,
qTripRecordScheduleVideo.videoUrl,
Projections.constructor(TripRecordVideoMemberResponseDto.class,
qMember.id,
qMember.memberBase.nickname,
qMember.profileImage)))
.from(qTripRecord)
.leftJoin(qTripRecord.tripRecordSchedules, qTripRecordSchedule)
.leftJoin(qTripRecordSchedule.tripRecordScheduleVideos, qTripRecordScheduleVideo)
.leftJoin(qTripRecord.member, qMember)
.where(qTripRecordScheduleVideo.thumbnailUrl.isNotNull())
.groupBy(qTripRecord.id)
.where(qTripRecordScheduleVideo.thumbnailUrl.isNotNull(),
qTripRecordScheduleVideo.id.eq(
JPAExpressions
.select(qTripRecordScheduleVideo.id.min())
.from(qTripRecordScheduleVideo)
.where(qTripRecordScheduleVideo.tripRecordSchedule.tripRecord.id.eq(qTripRecord.id))))
.orderBy(qTripRecord.storeCount.desc())
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
Expand Down

0 comments on commit bf77604

Please sign in to comment.