본문 바로가기
TIL

항해99_TIL220611 (미니프로젝트 2일차)

by Hyeongjun_Ham 2022. 6. 11.
public List<String> rankingList() {
    List<User> allUser = userRepository.findAll();
    List<UserRankResponseDto> userRankResponseDtos = new ArrayList<>();

    for (User user : allUser) {
        int happypoint = user.getHappypoint();
        int countPosts = user.getPosts().size();
        Long createdUser = user.getId();
        String nickname = user.getNickname();

        int avePoint = happypoint / countPosts;

        UserRankResponseDto userRankResponseDto = new UserRankResponseDto(avePoint, nickname, countPosts, createdUser);
        userRankResponseDtos.add(userRankResponseDto);
    }

    userRankResponseDtos.sort(Comparator.comparingInt(UserRankResponseDto::getAvePoint).reversed()
            .thenComparingInt(UserRankResponseDto::getCountPosts).reversed()
            .thenComparingLong(UserRankResponseDto::getCreatedUser)
    );

    List<String> result = new ArrayList<>();
    for (int i = 0; i < 5; i++) {

        result.add(userRankResponseDtos.get(i).getNickName());
    }
    return result;
}

랭킹을 구현해봤다.

그런데 user에 posts가 잘못된거 같다.

작동을 안한다 ㅠㅠ

내일 다시 해봐야지