JejuGudGo / Backend

0 stars 0 forks source link

Feat: 커뮤니티 기능 구현 #13

Closed sieunnnn closed 4 months ago

sieunnnn commented 5 months ago

TODO

게시글

걷기 게시글

칼럼 게시글

댓글

sieunnnn commented 5 months ago

걷기 게시글

걷기 게시글의 다른 부분은 완성했지만 @codesooo 님과 기능이 겹치는 부분이 있어, 제가 작성한 부분을 @codesooo 님이 알맞게 수정해주셔야 합니다. 따라서 대략적인 Controller 와 Service 틀 까지만 만들어두었습니다.

추가해야 할 기능

sieunnnn commented 5 months ago

24. 06. 19

페이지 처리 적용


sieunnnn commented 5 months ago

PaginationUtil 의 사용

@codesooo List 형태의 값을 반환해야 할 때 사용합니다.

...
    public Page<ColumnPostResponse> getColums(Pageable pageable) {
        QPosts qPosts = QPosts.posts;

        List<Posts> posts = queryFactory
                .selectFrom(qPosts)
                .where(qPosts.postType.eq(PostType.COLUMN)
                        .and(qPosts.isDeleted.isFalse()))
                .fetch();

        List<ColumnPostResponse> columnPostResponses = posts.stream()
                .map(post -> {
                    User user = findUserById(post.getUser().getId());
                    String profileImageUrl = "";

                    if (!user.getProfile().getProfileImageUrl().isEmpty()) {
                        profileImageUrl = user.getProfile().getProfileImageUrl();
                    }

                    return new ColumnPostResponse(
                            post.getId(),
                            user.getId(),
                            user.getNickname(),
                            profileImageUrl,
                            user.getNumberTag(),
                            post.getTitle(),
                            post.getContent()
                    );
                })
                .toList();

        return PaginationUtil.listToPage(columnPostResponses, pageable);
    }
...

컨트롤러에서는 따로 구현할 필요없이 아래와 같이 반환값만 맞춰주심 됩니다.

...
    @GetMapping("/columns")
    public Page<ColumnPostResponse> getColumns(Pageable pageable) {
        return columnPostQueryService.getColums(pageable);
    }
...

궁금한 점이 있다면 언제든 문의주세요.