From 2115f75db30d16bbf254acd5810a1a88be986b6e Mon Sep 17 00:00:00 2001 From: wken5577 Date: Tue, 9 Jan 2024 17:43:03 +0900 Subject: [PATCH 1/2] rank pagig bug fix (#489) --- .../com/gg/server/domain/rank/service/RankService.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gg/server/domain/rank/service/RankService.java b/src/main/java/com/gg/server/domain/rank/service/RankService.java index 7b53ff264..5e2e57f46 100644 --- a/src/main/java/com/gg/server/domain/rank/service/RankService.java +++ b/src/main/java/com/gg/server/domain/rank/service/RankService.java @@ -86,11 +86,13 @@ public ExpRankPageResponseDto getExpRankPage(PageRequest pageRequest, UserDto cu users.getTotalPages(), expRankDtos); } + @Cacheable(value = "expRanking", cacheManager = "gameCacheManager", key = "#pageRequest.pageNumber + #pageRequest.pageSize") public List getExpRankList(PageRequest pageRequest) { Season curSeason = seasonFindService.findCurrentSeason(LocalDateTime.now()); - List expRankV2Dtos = userRepository.findExpRank(pageRequest.getPageNumber(), pageRequest.getPageSize(), curSeason.getId()); + int pageOffset = pageRequest.getPageNumber() * pageRequest.getPageSize(); + List expRankV2Dtos = userRepository.findExpRank(pageOffset, pageRequest.getPageSize(), curSeason.getId()); return expRankV2Dtos.stream().map(ExpRankDto::from).collect(Collectors.toList()); } @@ -119,7 +121,8 @@ public RankPageResponseDto getRankPageV2(PageRequest pageRequest, UserDto curUse int myRank = rankRepository.findRankByUserIdAndSeasonId(curUser.getId(), season.getId()) .orElse(-1); - List rankList = rankRepository.findPppRankBySeasonId(pageRequest.getPageNumber(), pageRequest.getPageSize(), season.getId()) + int pageOffset = pageRequest.getPageNumber() * pageRequest.getPageSize(); + List rankList = rankRepository.findPppRankBySeasonId(pageOffset, pageRequest.getPageSize(), season.getId()) .stream().map(RankDto::from).collect(Collectors.toList()); return new RankPageResponseDto(myRank, pageRequest.getPageNumber() + 1, totalPage, rankList); } From c0dc457f2a997ecd46775ac8b7e6160b18e82399 Mon Sep 17 00:00:00 2001 From: wken5577 Date: Tue, 9 Jan 2024 17:49:56 +0900 Subject: [PATCH 2/2] =?UTF-8?q?repository=20interface=20arg=EB=AA=85=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20(#489)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gg/server/domain/rank/data/RankRepository.java | 4 ++-- .../java/com/gg/server/domain/user/data/UserRepository.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gg/server/domain/rank/data/RankRepository.java b/src/main/java/com/gg/server/domain/rank/data/RankRepository.java index 1ef5d5f78..a453cd817 100644 --- a/src/main/java/com/gg/server/domain/rank/data/RankRepository.java +++ b/src/main/java/com/gg/server/domain/rank/data/RankRepository.java @@ -45,8 +45,8 @@ public interface RankRepository extends JpaRepository { + " GROUP BY p.user_id) pg " + "ON pg.user_id = u.id " + "WHERE r.season_id = :seasonId AND (r.losses > 0 OR r.wins > 0) " - + "LIMIT :pageSize OFFSET :pageNum ", nativeQuery = true) - List findPppRankBySeasonId(@Param("pageNum")int pageNum, @Param("pageSize")int pageSize, @Param("seasonId") Long seasonId); + + "LIMIT :limit OFFSET :offset ", nativeQuery = true) + List findPppRankBySeasonId(@Param("offset")int offset, @Param("limit")int limit, @Param("seasonId") Long seasonId); @Query(value = "SELECT count(*) " + "FROM Ranks r " diff --git a/src/main/java/com/gg/server/domain/user/data/UserRepository.java b/src/main/java/com/gg/server/domain/user/data/UserRepository.java index 2f0a1f310..f6750bb6a 100644 --- a/src/main/java/com/gg/server/domain/user/data/UserRepository.java +++ b/src/main/java/com/gg/server/domain/user/data/UserRepository.java @@ -45,7 +45,7 @@ public interface UserRepository extends JpaRepository { + "FROM User u LEFT JOIN Ranks r " + "ON u.id = r.user_id " + "WHERE r.season_id = :seasonId AND u.total_exp > 0 " - + "LIMIT :pageSize OFFSET :pageNum", nativeQuery = true) - List findExpRank(@Param("pageNum")int pageNum, @Param("pageSize")int pageSize, @Param("seasonId")Long seasonId); + + "LIMIT :limit OFFSET :offset", nativeQuery = true) + List findExpRank(@Param("offset")int offset, @Param("limit")int limit, @Param("seasonId")Long seasonId); }