From e622d31811f53ff46461e88a8fca80b26b68c831 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 15:31:22 +0900 Subject: [PATCH] =?UTF-8?q?refactor=20::=20=EB=8F=85=ED=9B=84=EA=B0=90=20?= =?UTF-8?q?=EA=B6=8C=EC=88=98=20=EB=88=84=EC=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/service/impl/BookWriteServiceImpl.java | 14 ++++++++++---- .../server/v2/domain/rank/entity/Ranks.java | 7 +++---- .../v2/domain/rank/repository/RankRepository.java | 3 ++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/mindway/server/v2/domain/book/service/impl/BookWriteServiceImpl.java b/src/main/java/com/mindway/server/v2/domain/book/service/impl/BookWriteServiceImpl.java index c66da65..b323d60 100644 --- a/src/main/java/com/mindway/server/v2/domain/book/service/impl/BookWriteServiceImpl.java +++ b/src/main/java/com/mindway/server/v2/domain/book/service/impl/BookWriteServiceImpl.java @@ -30,11 +30,17 @@ public void execute(BookWriteRequest bookWriteRequest) { } private void accrue(User user) { - Ranks rank = rankRepository.findByUser(user); - if (rank == null) { - rank = new Ranks(user); - } + Ranks rank = rankRepository.findByUser(user) + .orElseGet(() -> saveUserRank(user)); + rank.accrue(); rankRepository.save(rank); } + + private Ranks saveUserRank (User user) { + return Ranks.builder() + .user(user) + .accrue(0) + .build(); + } } diff --git a/src/main/java/com/mindway/server/v2/domain/rank/entity/Ranks.java b/src/main/java/com/mindway/server/v2/domain/rank/entity/Ranks.java index 2ed7cf3..2c5704e 100644 --- a/src/main/java/com/mindway/server/v2/domain/rank/entity/Ranks.java +++ b/src/main/java/com/mindway/server/v2/domain/rank/entity/Ranks.java @@ -3,12 +3,14 @@ import com.mindway.server.v2.domain.user.entity.User; import jakarta.persistence.*; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; @Entity @NoArgsConstructor @AllArgsConstructor +@Builder @Getter public class Ranks { @@ -16,7 +18,7 @@ public class Ranks { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - private Integer accrue = 0; + private Integer accrue; @ManyToOne @JoinColumn(name = "user_id") @@ -26,7 +28,4 @@ public void accrue() { accrue++; } - public Ranks(User user) { - this.user = user; - } } diff --git a/src/main/java/com/mindway/server/v2/domain/rank/repository/RankRepository.java b/src/main/java/com/mindway/server/v2/domain/rank/repository/RankRepository.java index b4d8c39..30c3507 100644 --- a/src/main/java/com/mindway/server/v2/domain/rank/repository/RankRepository.java +++ b/src/main/java/com/mindway/server/v2/domain/rank/repository/RankRepository.java @@ -5,9 +5,10 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; +import java.util.Optional; public interface RankRepository extends JpaRepository { List findTop3ByOrderByAccrueDesc(); - Ranks findByUser(User user); + Optional findByUser(User user); }