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); }