From a90c4c8790297f6c2bd38569b07cf19b1ca2841b Mon Sep 17 00:00:00 2001 From: ChaeAg Date: Mon, 10 Jun 2024 17:06:49 +0900 Subject: [PATCH] =?UTF-8?q?[HOTFIX]=20NovelStatisticsService=EC=97=90?= =?UTF-8?q?=EC=84=9C=20NovelService=20=EC=B0=B8=EC=A1=B0=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/NovelStatisticsRepository.java | 7 +------ .../websoso/WSSServer/service/FeedService.java | 5 +++-- .../service/NovelStatisticsService.java | 17 ++++++----------- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/repository/NovelStatisticsRepository.java b/src/main/java/org/websoso/WSSServer/repository/NovelStatisticsRepository.java index 0e60edd8..c430e3ef 100644 --- a/src/main/java/org/websoso/WSSServer/repository/NovelStatisticsRepository.java +++ b/src/main/java/org/websoso/WSSServer/repository/NovelStatisticsRepository.java @@ -2,18 +2,13 @@ import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import org.websoso.WSSServer.domain.Novel; import org.websoso.WSSServer.domain.NovelStatistics; @Repository public interface NovelStatisticsRepository extends JpaRepository { - - @Query("SELECT ns FROM NovelStatistics ns WHERE ns.novel.novelId = :novelId") - Optional findByNovelId(@Param("novelId") Long novelId); - + Optional findByNovel(Novel novel); } diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index f3ffef7f..b896abe0 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -23,6 +23,7 @@ public class FeedService { private final FeedRepository feedRepository; private final CategoryService categoryService; private final NovelStatisticsService novelStatisticsService; + private final NovelService novelService; @Transactional public void createFeed(User user, FeedCreateRequest request) { @@ -34,7 +35,7 @@ public void createFeed(User user, FeedCreateRequest request) { .build(); if (request.novelId() != null) { - novelStatisticsService.increaseNovelFeedCount(request.novelId()); + novelStatisticsService.increaseNovelFeedCount(novelService.getNovelOrException(request.novelId())); } feedRepository.save(feed); @@ -58,7 +59,7 @@ public void deleteFeed(User user, Long feedId) { feed.validateUserAuthorization(user, DELETE); if (feed.getNovelId() != null) { - novelStatisticsService.decreaseNovelFeedCount(feed.getNovelId()); + novelStatisticsService.decreaseNovelFeedCount(novelService.getNovelOrException(feed.getNovelId())); } feedRepository.delete(feed); diff --git a/src/main/java/org/websoso/WSSServer/service/NovelStatisticsService.java b/src/main/java/org/websoso/WSSServer/service/NovelStatisticsService.java index 36e5d9d7..1334e221 100644 --- a/src/main/java/org/websoso/WSSServer/service/NovelStatisticsService.java +++ b/src/main/java/org/websoso/WSSServer/service/NovelStatisticsService.java @@ -15,20 +15,17 @@ public class NovelStatisticsService { private final NovelStatisticsRepository novelStatisticsRepository; - private final NovelService novelService; @Transactional - public void increaseNovelFeedCount(Long novelId) { - NovelStatistics novelStatistics = novelStatisticsRepository.findByNovelId(novelId) - .orElseGet(() -> createNovelStatistics(novelId)); + public void increaseNovelFeedCount(Novel novel) { + NovelStatistics novelStatistics = novelStatisticsRepository.findByNovel(novel) + .orElseGet(() -> createNovelStatistics(novel)); novelStatistics.increaseNovelFeedCount(); } @Transactional - public NovelStatistics createNovelStatistics(Long novelId) { - Novel novel = novelService.getNovelOrException(novelId); - + public NovelStatistics createNovelStatistics(Novel novel) { return novelStatisticsRepository.save( NovelStatistics.builder() .novel(novel) @@ -37,10 +34,8 @@ public NovelStatistics createNovelStatistics(Long novelId) { } @Transactional - public void decreaseNovelFeedCount(Long novelId) { - NovelStatistics novelStatistics = novelStatisticsRepository.findByNovelId(novelId) - .orElseThrow(() -> new InvalidNovelStatisticsException(NOVEL_STATISTICS_NOT_FOUND, - "novel statistics not found")); + public void decreaseNovelFeedCount(Novel novel) { + NovelStatistics novelStatistics = getNovelStatisticsOrException(novel); novelStatistics.decreaseNovelFeedCount(); }