From 9e3f710ac7ff1f7448c0f4005dc6328e68768b41 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 00:10:56 +0900 Subject: [PATCH 01/11] =?UTF-8?q?git=20=EC=BB=A4=EB=B0=8B=20=EC=8B=A4?= =?UTF-8?q?=EC=88=98=EB=A1=9C=20=EC=9E=AC=EC=BB=A4=EB=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/scheduler/EventScheduler.java | 7 ++++ .../service/ChangePendingToNowService.java | 5 +++ .../impl/ChangePendingToNowServiceImpl.java | 36 +++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/event/service/ChangePendingToNowService.java create mode 100644 src/main/java/com/mindway/server/v2/domain/event/service/impl/ChangePendingToNowServiceImpl.java diff --git a/src/main/java/com/mindway/server/v2/domain/event/scheduler/EventScheduler.java b/src/main/java/com/mindway/server/v2/domain/event/scheduler/EventScheduler.java index a7e0bac..6b6d704 100644 --- a/src/main/java/com/mindway/server/v2/domain/event/scheduler/EventScheduler.java +++ b/src/main/java/com/mindway/server/v2/domain/event/scheduler/EventScheduler.java @@ -1,6 +1,7 @@ package com.mindway.server.v2.domain.event.scheduler; import com.mindway.server.v2.domain.event.service.ChangeNowToPastService; +import com.mindway.server.v2.domain.event.service.ChangePendingToNowService; import lombok.RequiredArgsConstructor; import org.springframework.scheduling.annotation.Scheduled; @@ -8,10 +9,16 @@ public class EventScheduler { private final ChangeNowToPastService changeNowToPastService; + private final ChangePendingToNowService changePendingToNowService; @Scheduled(cron = "0 0 0 * *", zone = "Asia/Seoul") public void changeNowToPast() { changeNowToPastService.execute(); } + @Scheduled(cron = "0 0 0 * *", zone = "Asia/Seoul") + public void changePendingToNow() { + changePendingToNowService.execute(); + } + } diff --git a/src/main/java/com/mindway/server/v2/domain/event/service/ChangePendingToNowService.java b/src/main/java/com/mindway/server/v2/domain/event/service/ChangePendingToNowService.java new file mode 100644 index 0000000..001a64e --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/event/service/ChangePendingToNowService.java @@ -0,0 +1,5 @@ +package com.mindway.server.v2.domain.event.service; + +public interface ChangePendingToNowService { + void execute(); +} diff --git a/src/main/java/com/mindway/server/v2/domain/event/service/impl/ChangePendingToNowServiceImpl.java b/src/main/java/com/mindway/server/v2/domain/event/service/impl/ChangePendingToNowServiceImpl.java new file mode 100644 index 0000000..eb9d48f --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/event/service/impl/ChangePendingToNowServiceImpl.java @@ -0,0 +1,36 @@ +package com.mindway.server.v2.domain.event.service.impl; + +import com.mindway.server.v2.domain.event.entity.Event; +import com.mindway.server.v2.domain.event.entity.Status; +import com.mindway.server.v2.domain.event.repository.EventRepository; +import com.mindway.server.v2.domain.event.service.ChangePendingToNowService; +import com.mindway.server.v2.global.annotation.ServiceWithTransaction; +import lombok.RequiredArgsConstructor; + +import java.time.LocalDate; +import java.util.List; +import java.util.Objects; + + +@ServiceWithTransaction +@RequiredArgsConstructor +public class ChangePendingToNowServiceImpl implements ChangePendingToNowService { + + private final EventRepository eventRepository; + + public void execute() { + List pendingEvents = eventRepository.findByStatus(Status.PENDING); + + for (Event event: pendingEvents) { + if (Objects.equals(event.getStarted_at(), LocalDate.now())) { + saveChangeNow(event); + } + } + } + + private void saveChangeNow(Event event) { + event.changeStatus(Status.NOW); + + eventRepository.save(event); + } +} From 39eba6a2def3d392d5570491a1a12f4bf15abc86 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 00:11:57 +0900 Subject: [PATCH 02/11] add :: Ranks --- .../server/v2/domain/rank/entity/Ranks.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/rank/entity/Ranks.java 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 new file mode 100644 index 0000000..2ed7cf3 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rank/entity/Ranks.java @@ -0,0 +1,32 @@ +package com.mindway.server.v2.domain.rank.entity; + +import com.mindway.server.v2.domain.user.entity.User; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@NoArgsConstructor +@AllArgsConstructor +@Getter +public class Ranks { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private Integer accrue = 0; + + @ManyToOne + @JoinColumn(name = "user_id") + private User user; + + public void accrue() { + accrue++; + } + + public Ranks(User user) { + this.user = user; + } +} From c64a339707e3cc36b65fee1546751b532d47d27c Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 00:12:18 +0900 Subject: [PATCH 03/11] add :: RankScheduler --- .../v2/domain/rank/scheduler/RankScheduler.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/rank/scheduler/RankScheduler.java diff --git a/src/main/java/com/mindway/server/v2/domain/rank/scheduler/RankScheduler.java b/src/main/java/com/mindway/server/v2/domain/rank/scheduler/RankScheduler.java new file mode 100644 index 0000000..5910ec6 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rank/scheduler/RankScheduler.java @@ -0,0 +1,16 @@ +package com.mindway.server.v2.domain.rank.scheduler; + +import com.mindway.server.v2.domain.rank.service.DeleteRankService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Scheduled; + +@RequiredArgsConstructor +public class RankScheduler { + + private final DeleteRankService deleteRankService; + + @Scheduled(cron = "0 0 0 1 * *", zone = "Asia/Seoul") + public void run() { + deleteRankService.execute(); + } +} From 316f04bfc9a210e477970a9fc64e03ef391699a0 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 00:12:41 +0900 Subject: [PATCH 04/11] =?UTF-8?q?add=20::=20RankConverter=20=EC=B6=94?= =?UTF-8?q?=EC=83=81=ED=99=94=20=EB=B0=8F=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2/domain/rank/util/RankConverter.java | 8 ++++++++ .../rank/util/impl/RankConverterImpl.java | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/rank/util/RankConverter.java create mode 100644 src/main/java/com/mindway/server/v2/domain/rank/util/impl/RankConverterImpl.java diff --git a/src/main/java/com/mindway/server/v2/domain/rank/util/RankConverter.java b/src/main/java/com/mindway/server/v2/domain/rank/util/RankConverter.java new file mode 100644 index 0000000..8215291 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rank/util/RankConverter.java @@ -0,0 +1,8 @@ +package com.mindway.server.v2.domain.rank.util; + +import com.mindway.server.v2.domain.rank.entity.Ranks; +import com.mindway.server.v2.domain.rank.presentation.dto.response.RankResponse; + +public interface RankConverter { + RankResponse toDto (Ranks rank); +} diff --git a/src/main/java/com/mindway/server/v2/domain/rank/util/impl/RankConverterImpl.java b/src/main/java/com/mindway/server/v2/domain/rank/util/impl/RankConverterImpl.java new file mode 100644 index 0000000..2dbe3e1 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rank/util/impl/RankConverterImpl.java @@ -0,0 +1,17 @@ +package com.mindway.server.v2.domain.rank.util.impl; + +import com.mindway.server.v2.domain.rank.entity.Ranks; +import com.mindway.server.v2.domain.rank.presentation.dto.response.RankResponse; +import com.mindway.server.v2.domain.rank.util.RankConverter; +import org.springframework.stereotype.Component; + +@Component +public class RankConverterImpl implements RankConverter { + + public RankResponse toDto(Ranks rank) { + return RankResponse.builder() + .name(rank.getUser().getName()) + .accrue(rank.getAccrue()) + .build(); + } +} From 36e229ecfbb4f37f39cd614b4abb10829a740b45 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 00:13:09 +0900 Subject: [PATCH 05/11] =?UTF-8?q?add=20::=20endpoint=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rank/presentation/RankController.java | 24 +++++++++++++++++++ .../security/config/SecurityConfig.java | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/rank/presentation/RankController.java diff --git a/src/main/java/com/mindway/server/v2/domain/rank/presentation/RankController.java b/src/main/java/com/mindway/server/v2/domain/rank/presentation/RankController.java new file mode 100644 index 0000000..a184910 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rank/presentation/RankController.java @@ -0,0 +1,24 @@ +package com.mindway.server.v2.domain.rank.presentation; + +import com.mindway.server.v2.domain.rank.presentation.dto.response.RankResponse; +import com.mindway.server.v2.domain.rank.service.GetRankService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/v2/rank") +public class RankController { + private final GetRankService getRankService; + + @GetMapping + public ResponseEntity> getRank() { + List rank = getRankService.execute(); + return ResponseEntity.ok(rank); + } +} diff --git a/src/main/java/com/mindway/server/v2/global/security/config/SecurityConfig.java b/src/main/java/com/mindway/server/v2/global/security/config/SecurityConfig.java index f953269..31013c6 100644 --- a/src/main/java/com/mindway/server/v2/global/security/config/SecurityConfig.java +++ b/src/main/java/com/mindway/server/v2/global/security/config/SecurityConfig.java @@ -78,6 +78,8 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { // event .requestMatchers(HttpMethod.POST, "/api/v2/event").hasAnyAuthority(Authority.ROLE_TEACHER.name(), Authority.ROLE_HELPER.name()) + // rank + .requestMatchers(HttpMethod.GET, "/api/v2/rank").authenticated() .anyRequest().authenticated() ) From 2f6720257e64109e18501b6cf9a614a5273d206c Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 00:13:27 +0900 Subject: [PATCH 06/11] =?UTF-8?q?add=20::=20DeleteRankService=20=EC=B6=94?= =?UTF-8?q?=EC=83=81=ED=99=94=20=EB=B0=8F=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2/domain/rank/service/DeleteRankService.java | 5 +++++ .../rank/service/impl/DeleteRankServiceImpl.java | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/rank/service/DeleteRankService.java create mode 100644 src/main/java/com/mindway/server/v2/domain/rank/service/impl/DeleteRankServiceImpl.java diff --git a/src/main/java/com/mindway/server/v2/domain/rank/service/DeleteRankService.java b/src/main/java/com/mindway/server/v2/domain/rank/service/DeleteRankService.java new file mode 100644 index 0000000..1831402 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rank/service/DeleteRankService.java @@ -0,0 +1,5 @@ +package com.mindway.server.v2.domain.rank.service; + +public interface DeleteRankService { + void execute(); +} diff --git a/src/main/java/com/mindway/server/v2/domain/rank/service/impl/DeleteRankServiceImpl.java b/src/main/java/com/mindway/server/v2/domain/rank/service/impl/DeleteRankServiceImpl.java new file mode 100644 index 0000000..fe3e9ac --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rank/service/impl/DeleteRankServiceImpl.java @@ -0,0 +1,15 @@ +package com.mindway.server.v2.domain.rank.service.impl; + +import com.mindway.server.v2.domain.rank.repository.RankRepository; +import com.mindway.server.v2.domain.rank.service.DeleteRankService; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +public class DeleteRankServiceImpl implements DeleteRankService { + + private final RankRepository rankRepository; + + public void execute() { + rankRepository.deleteAll(); + } +} From 4ff8fcfc87fd9cc473e274a7e0c8a17050a2e0c7 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 00:13:52 +0900 Subject: [PATCH 07/11] =?UTF-8?q?add=20::=20=EB=9E=AD=ED=81=AC=20=EB=B0=98?= =?UTF-8?q?=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/rank/service/GetRankService.java | 9 ++++++ .../rank/service/impl/GetRankServiceImpl.java | 28 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/rank/service/GetRankService.java create mode 100644 src/main/java/com/mindway/server/v2/domain/rank/service/impl/GetRankServiceImpl.java diff --git a/src/main/java/com/mindway/server/v2/domain/rank/service/GetRankService.java b/src/main/java/com/mindway/server/v2/domain/rank/service/GetRankService.java new file mode 100644 index 0000000..103696f --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rank/service/GetRankService.java @@ -0,0 +1,9 @@ +package com.mindway.server.v2.domain.rank.service; + +import com.mindway.server.v2.domain.rank.presentation.dto.response.RankResponse; + +import java.util.List; + +public interface GetRankService { + List execute(); +} diff --git a/src/main/java/com/mindway/server/v2/domain/rank/service/impl/GetRankServiceImpl.java b/src/main/java/com/mindway/server/v2/domain/rank/service/impl/GetRankServiceImpl.java new file mode 100644 index 0000000..a38aa74 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rank/service/impl/GetRankServiceImpl.java @@ -0,0 +1,28 @@ +package com.mindway.server.v2.domain.rank.service.impl; + +import com.mindway.server.v2.domain.rank.entity.Ranks; +import com.mindway.server.v2.domain.rank.presentation.dto.response.RankResponse; +import com.mindway.server.v2.domain.rank.repository.RankRepository; +import com.mindway.server.v2.domain.rank.service.GetRankService; +import com.mindway.server.v2.domain.rank.util.RankConverter; +import com.mindway.server.v2.global.annotation.ServiceWithReadOnlyTransaction; +import lombok.RequiredArgsConstructor; + +import java.util.List; +import java.util.stream.Collectors; + +@ServiceWithReadOnlyTransaction +@RequiredArgsConstructor +public class GetRankServiceImpl implements GetRankService { + + private final RankRepository rankRepository; + private final RankConverter rankConverter; + + public List execute() { + List ranks = rankRepository.findTop3ByOrderByAccrueDesc(); + + return ranks.stream() + .map(rankConverter::toDto) + .collect(Collectors.toList()); + } +} From cb11a4148828133982d4473a1eea3e4f01babd2a Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 00:14:06 +0900 Subject: [PATCH 08/11] add :: RankResponse --- .../rank/presentation/dto/response/RankResponse.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/rank/presentation/dto/response/RankResponse.java diff --git a/src/main/java/com/mindway/server/v2/domain/rank/presentation/dto/response/RankResponse.java b/src/main/java/com/mindway/server/v2/domain/rank/presentation/dto/response/RankResponse.java new file mode 100644 index 0000000..079baff --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rank/presentation/dto/response/RankResponse.java @@ -0,0 +1,11 @@ +package com.mindway.server.v2.domain.rank.presentation.dto.response; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class RankResponse { + private String name; + private Integer accrue; +} From c484eb4f0346d35c61c48bc2959836303a1eaa20 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 00:14:19 +0900 Subject: [PATCH 09/11] add :: RankRepository --- .../v2/domain/rank/repository/RankRepository.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/com/mindway/server/v2/domain/rank/repository/RankRepository.java 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 new file mode 100644 index 0000000..b4d8c39 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rank/repository/RankRepository.java @@ -0,0 +1,13 @@ +package com.mindway.server.v2.domain.rank.repository; + +import com.mindway.server.v2.domain.rank.entity.Ranks; +import com.mindway.server.v2.domain.user.entity.User; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface RankRepository extends JpaRepository { + List findTop3ByOrderByAccrueDesc(); + + Ranks findByUser(User user); +} From ecd270d0a38863acf69371283c72723e6f306334 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 00:14:31 +0900 Subject: [PATCH 10/11] update :: BookWriteServiceImpl --- .../book/service/impl/BookWriteServiceImpl.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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 db8ae11..c66da65 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 @@ -5,6 +5,8 @@ import com.mindway.server.v2.domain.book.repository.BookRepository; import com.mindway.server.v2.domain.book.service.BookWriteService; import com.mindway.server.v2.domain.book.util.BookConverter; +import com.mindway.server.v2.domain.rank.entity.Ranks; +import com.mindway.server.v2.domain.rank.repository.RankRepository; import com.mindway.server.v2.domain.user.entity.User; import com.mindway.server.v2.domain.user.util.UserUtil; import com.mindway.server.v2.global.annotation.ServiceWithTransaction; @@ -17,11 +19,22 @@ public class BookWriteServiceImpl implements BookWriteService { private final BookRepository bookRepository; private final BookConverter bookConverter; private final UserUtil userUtil; + private final RankRepository rankRepository; public void execute(BookWriteRequest bookWriteRequest) { User user = userUtil.getCurrentUser(); Book book = bookConverter.toEntity(bookWriteRequest, user); + accrue(user); bookRepository.save(book); } + + private void accrue(User user) { + Ranks rank = rankRepository.findByUser(user); + if (rank == null) { + rank = new Ranks(user); + } + rank.accrue(); + rankRepository.save(rank); + } } From e622d31811f53ff46461e88a8fca80b26b68c831 Mon Sep 17 00:00:00 2001 From: taeyeon Date: Mon, 22 Apr 2024 15:31:22 +0900 Subject: [PATCH 11/11] =?UTF-8?q?refactor=20::=20=EB=8F=85=ED=9B=84?= =?UTF-8?q?=EA=B0=90=20=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); }