Skip to content

Commit

Permalink
Merge pull request #109 from APPS-sookmyung/feature/#92-like-api
Browse files Browse the repository at this point in the history
[Feature/#92-like-api] LIKE API 쿼리 수정
  • Loading branch information
5jisoo authored Mar 5, 2024
2 parents f48e68d + 7d8dcca commit 994cc39
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.apps.pochak.like.domain.repository;

import com.apps.pochak.like.domain.LikeEntity;
import com.apps.pochak.like.dto.response.LikeElement;
import com.apps.pochak.member.domain.Member;
import com.apps.pochak.post.domain.Post;
import org.springframework.data.jpa.repository.JpaRepository;
Expand All @@ -25,8 +26,6 @@ Optional<LikeEntity> findByLikeMemberAndLikedPost(
final Post post
);

List<LikeEntity> findByLikedPost(final Post post);

@Modifying
@Query(value = "update LikeEntity like " +
"set like.status = 'DELETED' " +
Expand All @@ -35,4 +34,21 @@ Optional<LikeEntity> findByLikeMemberAndLikedPost(

@Query(value = "select l from LikeEntity l where l.lastModifiedDate > :nowMinusOneHour ")
List<LikeEntity> findModifiedLikeEntityWithinOneHour(@Param("nowMinusOneHour") final LocalDateTime nowMinusOneHour);

@Query("select " +
"new com.apps.pochak.like.dto.response.LikeElement(" +
"m.handle, " +
"m.profileImage, " +
"m.name, " +
"(case when m.id <> :loginMemberId then (f.sender is not null) else nullif(m.id, :loginMemberId) end) " +
") " +
"from LikeEntity l " +
"left join Member m on l.likeMember = m and m.status = 'ACTIVE' " +
"left join Follow f on (f.sender.id = :loginMemberId and f.receiver = l.likeMember) and f.status <> 'DELETED' " +
"where l.status = 'ACTIVE' and l.likedPost = :post " +
"order by f.lastModifiedDate desc ")
List<LikeElement> findFollowersAndIsFollow(
@Param("loginMemberId") final Long loginMemberId,
@Param("post") final Post post
);
}
16 changes: 6 additions & 10 deletions src/main/java/com/apps/pochak/like/service/LikeService.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import com.apps.pochak.alarm.domain.Alarm;
import com.apps.pochak.alarm.domain.repository.AlarmRepository;
import com.apps.pochak.follow.domain.repository.FollowRepository;
import com.apps.pochak.global.api_payload.exception.GeneralException;
import com.apps.pochak.like.domain.LikeEntity;
import com.apps.pochak.like.domain.repository.LikeRepository;
Expand Down Expand Up @@ -31,7 +30,6 @@
public class LikeService {
private final LikeRepository likeRepository;
private final PostRepository postRepository;
private final FollowRepository followRepository;
private final TagRepository tagRepository;
private final AlarmRepository alarmRepository;
private final JwtService jwtService;
Expand Down Expand Up @@ -60,8 +58,7 @@ private void toggleLikeStatus(LikeEntity like) {
if (like.getStatus().equals(ACTIVE)) {
like.setStatus(DELETED);
deleteAlarm(like);
}
else {
} else {
like.setStatus(ACTIVE);
sendLikeAlarm(like);
}
Expand Down Expand Up @@ -99,13 +96,12 @@ private void deleteAlarm(LikeEntity like) {
public LikeElements getMemberLikedPost(final Long postId) {
final Member loginMember = jwtService.getLoginMember();
final Post likedPost = postRepository.findPostById(postId);
List<LikeEntity> likes = likeRepository.findByLikedPost(likedPost);

final List<LikeElement> likeElements = likes.stream().map(
like -> new LikeElement(
like.getLikeMember(),
followRepository.existsBySenderAndReceiver(loginMember, like.getLikeMember())
)).toList();
final List<LikeElement> likeElements = likeRepository.findFollowersAndIsFollow(
loginMember.getId(),
likedPost
);

return new LikeElements(likeElements);
}
}

0 comments on commit 994cc39

Please sign in to comment.