From 8adaa731f520b44a9db5e898b42a5d9ae43d8dc8 Mon Sep 17 00:00:00 2001 From: drinkgalaxy Date: Mon, 27 Jan 2025 10:40:56 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=20(#153)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/like/LikeServiceImpl.java | 14 ++++++++++++++ .../application/service/post/PostServiceImpl.java | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/post/src/main/java/com/berry/post/application/service/like/LikeServiceImpl.java b/post/src/main/java/com/berry/post/application/service/like/LikeServiceImpl.java index 3453b94..0bfcf18 100644 --- a/post/src/main/java/com/berry/post/application/service/like/LikeServiceImpl.java +++ b/post/src/main/java/com/berry/post/application/service/like/LikeServiceImpl.java @@ -3,6 +3,7 @@ import com.berry.common.exceptionhandler.CustomApiException; import com.berry.common.response.ResErrorCode; import com.berry.post.domain.model.Like; +import com.berry.post.domain.model.Post; import com.berry.post.domain.repository.LikeRepository; import com.berry.post.domain.repository.PostRepository; import com.berry.post.presentation.request.like.CreatePostLikeRequest; @@ -28,11 +29,18 @@ public class LikeServiceImpl implements LikeService { @CacheEvict(cacheNames = "posts", allEntries = true) public void createPostLike(CreatePostLikeRequest request, Long userId) { getPostById(request.postId()); + Like like = Like.builder() .userId(userId) .postId(request.postId()) .createdAt(LocalDateTime.now()) .build(); + + Post post = postRepository.findByIdAndDeletedYNFalse(request.postId()).orElseThrow( + () -> new CustomApiException(ResErrorCode.NOT_FOUND, "해당 게시글을 찾을 수 없습니다.") + ); + post.plusLikeCount(); + likeRepository.save(like); } @@ -46,6 +54,12 @@ public void deletePostLike(Long headerUserId, Long postId) { if (!Objects.equals(like.getUserId(), headerUserId)) { throw new CustomApiException(ResErrorCode.FORBIDDEN, "접근 권한이 없습니다."); } + + Post post = postRepository.findByIdAndDeletedYNFalse(postId).orElseThrow( + () -> new CustomApiException(ResErrorCode.NOT_FOUND, "해당 게시글을 찾을 수 없습니다.") + ); + post.minusLikeCount(); + likeRepository.delete(like); } diff --git a/post/src/main/java/com/berry/post/application/service/post/PostServiceImpl.java b/post/src/main/java/com/berry/post/application/service/post/PostServiceImpl.java index fa82ed2..ea9e191 100644 --- a/post/src/main/java/com/berry/post/application/service/post/PostServiceImpl.java +++ b/post/src/main/java/com/berry/post/application/service/post/PostServiceImpl.java @@ -91,7 +91,7 @@ public void createPost(PostCreateRequest postCreateRequest, @Override @Transactional - @Cacheable(cacheNames = "posts", key = "#keyword + '-' + #type + '-' + #postCategoryId + '-' + #writerId + '-' + #sort + '-' + #userId") + @Cacheable(cacheNames = "posts", key = "#keyword + '-' + #type + '-' + #postCategoryId + '-' + #writerId + '-' + #sort + '-' + #pageable + '-' + #userId") public Page getPosts(String keyword, String type, Long postCategoryId, Long writerId, String sort, Pageable pageable, Long userId) {