diff --git a/backend/src/main/java/com/dragonguard/backend/domain/member/repository/MemberQueryRepositoryImpl.java b/backend/src/main/java/com/dragonguard/backend/domain/member/repository/MemberQueryRepositoryImpl.java index 78eb07c6..0cd05aa7 100644 --- a/backend/src/main/java/com/dragonguard/backend/domain/member/repository/MemberQueryRepositoryImpl.java +++ b/backend/src/main/java/com/dragonguard/backend/domain/member/repository/MemberQueryRepositoryImpl.java @@ -7,13 +7,16 @@ import com.dragonguard.backend.domain.member.entity.Member; import com.querydsl.jpa.JPAExpressions; import com.querydsl.jpa.impl.JPAQueryFactory; -import java.util.List; -import java.util.Optional; -import java.util.UUID; + import lombok.RequiredArgsConstructor; + import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Repository; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + /** * @author 김승진 * @description 멤버 DB 조회 접근에 대한 구현체 @@ -31,7 +34,6 @@ public List findRanking(final Pageable pageable) { return jpaQueryFactory .select(qDtoFactory.qMemberRankResponse()) .from(member) - .where(member.walletAddress.isNotNull()) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .orderBy(memberOrderConverter.convert(pageable.getSort())) @@ -43,13 +45,20 @@ public Integer findRankingById(final UUID id) { return jpaQueryFactory .selectFrom(member) .where( - member.walletAddress - .isNotNull() - .and( - member.sumOfTokens.gt( - JPAExpressions.select(member.sumOfTokens) - .from(member) - .where(member.id.eq(id))))) + member.sumOfCommits + .add(member.sumOfCodeReviews) + .add(member.sumOfIssues) + .add(member.sumOfPullRequests) + .gt( + JPAExpressions.select( + member.sumOfCommits + .add( + member.sumOfCodeReviews) + .add(member.sumOfIssues) + .add( + member.sumOfPullRequests)) + .from(member) + .where(member.id.eq(id)))) .fetch() .size() + 1; @@ -62,9 +71,9 @@ public List findRankingByOrganization( .select(qDtoFactory.qMemberRankResponse()) .from(member) .where( - member.walletAddress - .isNotNull() - .and(member.organization.id.eq(organizationId)) + member.organization + .id + .eq(organizationId) .and(member.authStep.eq(AuthStep.ALL))) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) diff --git a/backend/src/main/java/com/dragonguard/backend/domain/member/service/MemberService.java b/backend/src/main/java/com/dragonguard/backend/domain/member/service/MemberService.java index f8799226..cb29fc2e 100644 --- a/backend/src/main/java/com/dragonguard/backend/domain/member/service/MemberService.java +++ b/backend/src/main/java/com/dragonguard/backend/domain/member/service/MemberService.java @@ -109,9 +109,7 @@ private MemberResponse getMemberResponse(final Member member) { @Transactional(readOnly = true) public List findMemberRanking(final Pageable pageable) { - final int pageSize = pageable.getPageSize(); - final int offset = pageable.getPageNumber() * pageSize; - return redisRankingUtils.getTopUsers(offset, offset + pageSize); + return memberRepository.findRanking(pageable); } public void updateWalletAddress(final WalletRequest walletRequest) { diff --git a/backend/src/main/java/com/dragonguard/backend/global/template/service/ContributionService.java b/backend/src/main/java/com/dragonguard/backend/global/template/service/ContributionService.java index 344c406d..d918fec6 100644 --- a/backend/src/main/java/com/dragonguard/backend/global/template/service/ContributionService.java +++ b/backend/src/main/java/com/dragonguard/backend/global/template/service/ContributionService.java @@ -39,11 +39,9 @@ public void saveContribution( if (existsByMemberAndYear(member, year)) { updateAndSendTransaction(member, contributionNum, year, blockchain, contributeType); - redisRankingUtils.addUserScore(member); return; } contributionRepository.save(commitMapper.toEntity(member, contributionNum, year)); - redisRankingUtils.addUserScore(member); sendTransaction(member, contributionNum.longValue(), blockchain, contributeType); }