Skip to content

Commit

Permalink
Fix: 운동기록 상세조회시 내가 좋아요한 여부 함께 반환
Browse files Browse the repository at this point in the history
  • Loading branch information
ChaeRin-Im committed Jun 10, 2024
1 parent a93c8e9 commit 46ab25f
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -134,19 +134,31 @@ private BooleanExpression isLiked() {
}

private BooleanExpression dietIdEq(Long dietId) {
return diet.dietId.eq(dietId);
if (!ObjectUtils.isEmpty(dietId)){
return diet.dietId.eq(dietId);
}
return null;
}

private BooleanExpression dietTrainerIdEq(Member trainer) {
return diet.trainer.id.eq(trainer.getId());
if (!ObjectUtils.isEmpty(trainer)){
return diet.trainer.id.eq(trainer.getId());
}
return null;
}

private BooleanExpression dietDeYnEq(boolean bool) {
return diet.delYn.eq(bool);
if (!ObjectUtils.isEmpty(bool)){
return diet.delYn.eq(bool);
}
return null;
}

private BooleanExpression dietFileDeYnEq(boolean bool) {
return dietFiles.delYn.eq(bool);
if (!ObjectUtils.isEmpty(bool)){
return dietFiles.delYn.eq(bool);
}
return null;
}

private BooleanExpression convertEatDate_YYYY_MM(String searchDate) {
Expand Down Expand Up @@ -175,11 +187,17 @@ private BooleanExpression convertEatDate_YYYY_MM_DD(String searchDate) {
}

private BooleanExpression delYnEq(boolean bool) {
return diet.delYn.eq(bool);
if (!ObjectUtils.isEmpty(bool)){
return diet.delYn.eq(bool);
}
return null;
}

private BooleanExpression memberIdEq(Long memberId) {
return diet.member.id.eq(memberId);
if (!ObjectUtils.isEmpty(memberId)){
return diet.member.id.eq(memberId);
}
return null;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -84,14 +84,9 @@ public CustomPaging getWorkoutHistory(Member loginMember, Long memberId, Pageabl
return customPaging;
}

public WorkoutHistoryDto getWorkoutHistoryDetail(Long workoutHistoryId) {
WorkoutHistory history = workoutHistoryRepository.findByWorkoutHistoryIdAndDelYnFalse(workoutHistoryId)
.orElseThrow(() -> new CustomException(WORKOUT_HISTORY_NOT_FOUND));
public WorkoutHistoryDto getWorkoutHistoryDetail(Member loginMember, Long workoutHistoryId) {
WorkoutHistoryDto historyDto = workoutHistoryRepository.findByWorkoutHistoryId(loginMember.getId(), workoutHistoryId);
List<Long> ids = List.of(workoutHistoryId);

Member member = memberRepository.findByIdAndDelYnFalse(history.getMember().getId())
.orElseThrow(() -> new CustomException(MEMBER_NOT_FOUND));
WorkoutHistoryDto historyDto = WorkoutHistoryDto.create(history, member.getMemberProfile());
setHistoryFile(historyDto, ids);
setHistoryExercise(historyDto, ids);
return historyDto;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,10 @@ public ResponseHandler<WorkoutHistoryDto> addWorkoutHistory(@AuthenticationPrinc
@ApiResponse(responseCode = "200", description = "운동기록 상세정보를 반환한다.")
})
@GetMapping("/{workoutHistoryId}")
public ResponseHandler<WorkoutHistoryDto> getWorkoutHistoryDetail(@Parameter(description = "운동기록 ID") @PathVariable("workoutHistoryId") Long workoutHistoryId) {
public ResponseHandler<WorkoutHistoryDto> getWorkoutHistoryDetail(@AuthenticationPrincipal CustomMemberDetails customMemberDetails,
@Parameter(description = "운동기록 ID") @PathVariable("workoutHistoryId") Long workoutHistoryId) {
return ResponseHandler.<WorkoutHistoryDto>builder()
.data(workoutService.getWorkoutHistoryDetail(workoutHistoryId))
.data(workoutService.getWorkoutHistoryDetail(customMemberDetails.getMember(), workoutHistoryId))
.message("운동기록이 조회되었습니다.")
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.Optional;

public interface WorkoutHistoryRepositoryCustom {
Page<WorkoutHistoryDto> getWorkoutHistoryOfMonth(Long loginMemberId, Long memberId, Pageable pageable, String searchDate);
Page<WorkoutHistoryDto> getWorkoutHistoryByGym(Long loginMemberId, Long gymId, Pageable pageable, String searchDate);
List<WorkoutHistoryFiles> getWorkoutHistoryFile(@Param("ids") List<Long> ids);
WorkoutHistoryDto findByWorkoutHistoryId(Long loginMemberId, Long workoutHistoryId);

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.querydsl.core.types.dsl.Expressions;
import com.querydsl.core.types.dsl.StringTemplate;
import com.querydsl.jpa.impl.JPAQueryFactory;
import com.tobe.healthy.diet.domain.dto.QDietDto;
import com.tobe.healthy.member.domain.entity.QMemberProfile;
import com.tobe.healthy.workout.domain.dto.out.QWorkoutHistoryDto;
import com.tobe.healthy.workout.domain.dto.out.WorkoutHistoryDto;
Expand All @@ -18,7 +19,10 @@
import org.springframework.util.ObjectUtils;

import java.util.List;
import java.util.Optional;

import static com.tobe.healthy.diet.domain.entity.QDiet.diet;
import static com.tobe.healthy.diet.domain.entity.QDietLike.dietLike;
import static com.tobe.healthy.member.domain.entity.QMember.member;
import static com.tobe.healthy.workout.domain.entity.workoutHistory.QWorkoutHistory.workoutHistory;
import static com.tobe.healthy.workout.domain.entity.workoutHistory.QWorkoutHistoryFiles.workoutHistoryFiles;
Expand Down Expand Up @@ -56,10 +60,6 @@ public Page<WorkoutHistoryDto> getWorkoutHistoryOfMonth(Long loginMemberId, Long
return PageableExecutionUtils.getPage(workoutHistories, pageable, ()-> totalCnt );
}

private BooleanExpression memberIdEq(Long memberId) {
return workoutHistory.member.id.eq(memberId);
}

@Override
public Page<WorkoutHistoryDto> getWorkoutHistoryByGym(Long loginMemberId, Long gymId, Pageable pageable, String searchDate) {
QMemberProfile profileId = new QMemberProfile("profileId");
Expand Down Expand Up @@ -92,10 +92,6 @@ public Page<WorkoutHistoryDto> getWorkoutHistoryByGym(Long loginMemberId, Long g
return PageableExecutionUtils.getPage(workoutHistories, pageable, ()-> totalCnt );
}

private BooleanExpression gymIdEq(Long gymId) {
return workoutHistory.gym.id.eq(gymId);
}

@Override
public List<WorkoutHistoryFiles> getWorkoutHistoryFile(List<Long> ids) {
return queryFactory.select(workoutHistoryFiles)
Expand All @@ -105,8 +101,48 @@ public List<WorkoutHistoryFiles> getWorkoutHistoryFile(List<Long> ids) {
.fetch();
}

@Override
public WorkoutHistoryDto findByWorkoutHistoryId(Long loginMemberId, Long workoutHistoryId) {
QMemberProfile profileId = new QMemberProfile("profileId");
return queryFactory.select(new QWorkoutHistoryDto(workoutHistory.workoutHistoryId, workoutHistory.content, workoutHistory.member
, isLiked()
, workoutHistory.likeCnt, workoutHistory.commentCnt, workoutHistory.viewMySelf, workoutHistory.createdAt, member.memberProfile))
.from(workoutHistory)
.leftJoin(workoutHistory.member, member)
.leftJoin(member.memberProfile, profileId)
.leftJoin(workoutHistoryLike)
.on(workoutHistory.workoutHistoryId.eq(workoutHistoryLike.workoutHistoryLikePK.workoutHistory.workoutHistoryId)
, workoutHistoryLike.workoutHistoryLikePK.member.id.eq(loginMemberId))
.where(workoutHistoryIdEq(workoutHistoryId), historyDeYnEq(false))
.fetchOne();
}

private BooleanExpression gymIdEq(Long gymId) {
if (!ObjectUtils.isEmpty(gymId)){
return workoutHistory.gym.id.eq(gymId);
}
return null;
}

private BooleanExpression memberIdEq(Long memberId) {
if (!ObjectUtils.isEmpty(memberId)){
return workoutHistory.member.id.eq(memberId);
}
return null;
}

private static BooleanExpression workoutHistoryIdEq(Long workoutHistoryId) {
if (!ObjectUtils.isEmpty(workoutHistoryId)){
return workoutHistory.workoutHistoryId.eq(workoutHistoryId);
}
return null;
}

private BooleanExpression historyIdIn(List<Long> ids) {
return workoutHistoryFiles.workoutHistory.workoutHistoryId.in(ids);
if (!ObjectUtils.isEmpty(ids)){
return workoutHistoryFiles.workoutHistory.workoutHistoryId.in(ids);
}
return null;
}

private BooleanExpression isLiked() {
Expand All @@ -117,15 +153,24 @@ private BooleanExpression isLiked() {
}

private BooleanExpression historyDeYnEq(boolean bool) {
return workoutHistory.delYn.eq(bool);
if(!ObjectUtils.isEmpty(bool)){
return workoutHistory.delYn.eq(bool);
}
return null;
}

private BooleanExpression viewMySelfEq(boolean bool) {
return workoutHistory.viewMySelf.eq(bool);
if(!ObjectUtils.isEmpty(bool)){
return workoutHistory.viewMySelf.eq(bool);
}
return null;
}

private BooleanExpression historyFileDeYnEq(boolean bool) {
return workoutHistoryFiles.delYn.eq(bool);
if(!ObjectUtils.isEmpty(bool)){
return workoutHistoryFiles.delYn.eq(bool);
}
return null;
}

private BooleanExpression convertDateFormat(String searchDate) {
Expand Down

0 comments on commit 46ab25f

Please sign in to comment.