Skip to content

Commit

Permalink
feat: 승인 가능 멤버 조회 repository 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
Sangwook02 committed Feb 13, 2024
1 parent fb4659d commit b3f1627
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ public interface MemberCustomRepository {
Optional<Member> findNormalByOauthId(String oauthId);

Optional<Member> findVerifiedById(Long id);

Page<Member> findAllGrantable(Pageable pageable);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import static com.gdschongik.gdsc.domain.member.domain.QMember.*;

import com.gdschongik.gdsc.domain.member.domain.Member;
import com.gdschongik.gdsc.domain.member.domain.MemberRole;
import com.gdschongik.gdsc.domain.member.domain.MemberStatus;
import com.gdschongik.gdsc.domain.member.domain.RequirementStatus;
import com.gdschongik.gdsc.domain.member.dto.request.MemberQueryRequest;
Expand Down Expand Up @@ -53,6 +54,27 @@ public Optional<Member> findVerifiedById(Long id) {
.fetchOne());
}

@Override
public Page<Member> findAllGrantable(Pageable pageable) {
List<Member> fetch = queryFactory
.selectFrom(member)
.where(eqStatus(MemberStatus.NORMAL), eqRole(MemberRole.GUEST), requirementVerified())
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
.fetch();

JPAQuery<Long> countQuery = queryFactory
.select(member.count())
.from(member)
.where(eqStatus(MemberStatus.NORMAL), eqRole(MemberRole.GUEST), requirementVerified());

return PageableExecutionUtils.getPage(fetch, pageable, countQuery::fetchOne);
}

private BooleanExpression eqRole(MemberRole role) {
return member.role.eq(role);
}

private BooleanBuilder requirementVerified() {
return new BooleanBuilder().and(discordVerified()).and(univVerified()).and(paymentVerified());
}
Expand Down

0 comments on commit b3f1627

Please sign in to comment.