Skip to content

Commit c8f783d

Browse files
authored
Fix: 과릿 1.3.5 (#412)
* Fix: 과릿 1.3.5 * Fix: 과릿 1.3.5 * Fix: 과릿 1.3.5
1 parent 8c5ee84 commit c8f783d

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

src/main/java/com/selfrunner/gwalit/domain/board/dto/response/BoardReplyRes.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public BoardReplyRes(Board board, Member member, LocalDate lessonDate, Integer r
6464
this.category = board.getCategory();
6565
this.status = board.getStatus();
6666
this.fileList = fileList;
67-
this.replyCount = replyCount;
67+
this.replyCount = (replyCount != null) ? replyCount : 0;
6868
this.createdAt = board.getCreatedAt();
6969
this.modifiedAt = board.getModifiedAt();
7070
}

src/main/java/com/selfrunner/gwalit/domain/board/repository/BoardRepositoryImpl.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.time.LocalDateTime;
1919
import java.util.List;
2020
import java.util.Optional;
21+
import java.util.stream.Collectors;
2122

2223
import static com.querydsl.core.group.GroupBy.groupBy;
2324
import static com.selfrunner.gwalit.domain.board.entity.QBoard.board;
@@ -34,31 +35,40 @@ public class BoardRepositoryImpl implements BoardRepositoryCustom {
3435

3536
@Override
3637
public Slice<BoardMetaRes> findBoardPaginationByCategory(Member m, Long lectureId, BoardCategory category, Long cursor, LocalDateTime cursorCreatedAt, Pageable pageable) {
37-
List<BoardMetaRes> content;
38+
List<BoardMetaRes> boardMetaResList;
3839
if (m.getType().equals(MemberType.TEACHER)) {
39-
content = queryFactory.selectFrom(board)
40+
boardMetaResList = queryFactory.selectFrom(board)
4041
.leftJoin(lecture).on(board.lecture.lectureId.eq(lecture.lectureId))
4142
.leftJoin(member).on(board.member.memberId.eq(member.memberId))
4243
.leftJoin(reply).on(board.boardId.eq(reply.board.boardId))
43-
.where(board.lecture.lectureId.eq(lectureId), eqCursorAndCursorCreatedAt(cursor, cursorCreatedAt), checkCategory(category), board.deletedAt.isNull(), reply.isNull().or(reply.deletedAt.isNull().and(reply.isNotNull())))
44+
.where(board.lecture.lectureId.eq(lectureId), eqCursorAndCursorCreatedAt(cursor, cursorCreatedAt), checkCategory(category), board.deletedAt.isNull())
4445
.orderBy(board.createdAt.desc(), board.boardId.asc())
4546
.groupBy(board.boardId)
4647
.limit(pageable.getPageSize() + 1)
4748
.transform(groupBy(board.boardId).list(Projections.constructor(BoardMetaRes.class, board.boardId, lecture.lectureId, member.memberId, member.type, member.name, board.lessonId, board.title, board.body, board.category, board.status, reply.count(), board.createdAt, board.modifiedAt)));
4849

4950
}
5051
else {
51-
content = queryFactory.selectFrom(board)
52+
boardMetaResList = queryFactory.selectFrom(board)
5253
.leftJoin(lecture).on(board.lecture.lectureId.eq(lecture.lectureId))
5354
.leftJoin(member).on(board.member.memberId.eq(member.memberId))
5455
.leftJoin(reply).on(board.boardId.eq(reply.board.boardId))
55-
.where(board.lecture.lectureId.eq(lectureId), eqCursorAndCursorCreatedAt(cursor, cursorCreatedAt), board.isPublic.eq(Boolean.TRUE).or(checkWriter(m.getMemberId())), checkCategory(category), board.deletedAt.isNull(), reply.isNull().or(reply.deletedAt.isNull().and(reply.isNotNull())))
56+
.where(board.lecture.lectureId.eq(lectureId), eqCursorAndCursorCreatedAt(cursor, cursorCreatedAt), board.isPublic.eq(Boolean.TRUE).or(checkWriter(m.getMemberId())), checkCategory(category), board.deletedAt.isNull())
5657
.orderBy(board.createdAt.desc(), board.boardId.asc())
5758
.groupBy(board.boardId)
5859
.limit(pageable.getPageSize() + 1)
5960
.transform(groupBy(board.boardId).list(Projections.constructor(BoardMetaRes.class, board.boardId, lecture.lectureId, member.memberId, member.type, member.name, board.lessonId, board.title, board.body, board.category, board.status, reply.count(), board.createdAt, board.modifiedAt)));
6061
}
6162

63+
List<BoardMetaRes> content = boardMetaResList.stream()
64+
.map(boardMetaRes -> {
65+
Long replyCount = queryFactory.select(reply.count())
66+
.from(reply)
67+
.where(reply.board.boardId.eq(boardMetaRes.getBoardId()), reply.deletedAt.isNull())
68+
.fetchFirst();
69+
return new BoardMetaRes(boardMetaRes.getBoardId(), boardMetaRes.getLectureId(), boardMetaRes.getMemberId(), boardMetaRes.getMemberType(), boardMetaRes.getMemberName(), boardMetaRes.getLessonId(), boardMetaRes.getTitle(), boardMetaRes.getBody(), boardMetaRes.getCategory(), boardMetaRes.getStatus(), replyCount, boardMetaRes.getCreatedAt(), boardMetaRes.getModifiedAt());
70+
})
71+
.collect(Collectors.toList());
6272

6373
// 다음 페이지 존재 여부 계산
6474
boolean hasNext = false;

0 commit comments

Comments
 (0)