diff --git a/backend/src/main/java/com/example/Piroin/project/domain/question/dto/QuestionResDTO.java b/backend/src/main/java/com/example/Piroin/project/domain/question/dto/QuestionResDTO.java index d215530..be6196a 100644 --- a/backend/src/main/java/com/example/Piroin/project/domain/question/dto/QuestionResDTO.java +++ b/backend/src/main/java/com/example/Piroin/project/domain/question/dto/QuestionResDTO.java @@ -70,6 +70,7 @@ public record QuestionDetailResponse( Boolean isPopular, Integer likeCount, Boolean isLiked, + Boolean isMine, LocalDateTime createdAt, List comments ) { @@ -144,6 +145,7 @@ public record QuestionSummaryResponse( Boolean isResolved, Boolean isPopular, Boolean isLiked, + Boolean isMine, Integer likeCount, Integer commentCount, // 댓글이 없으면 빈 배열로 내려가며, 프론트는 빈 배열일 때 미리보기 영역을 숨긴다. diff --git a/backend/src/main/java/com/example/Piroin/project/domain/question/service/QuestionService.java b/backend/src/main/java/com/example/Piroin/project/domain/question/service/QuestionService.java index 4955b19..5703f3b 100644 --- a/backend/src/main/java/com/example/Piroin/project/domain/question/service/QuestionService.java +++ b/backend/src/main/java/com/example/Piroin/project/domain/question/service/QuestionService.java @@ -77,6 +77,7 @@ public QuestionResDTO.QuestionDetailResponse getQuestionDetail(Long questionId, private QuestionResDTO.QuestionDetailResponse toDetailResponse(Question question, User loginUser) { boolean isLiked = questionLikeRepository.existsByQuestionAndUser(question, loginUser); + boolean isMine = question.getUser().getId().equals(loginUser.getId()); boolean isPopular = !question.getIsResolved() && question.getLikeCount() >= POPULAR_LIKE_THRESHOLD; List topComments = @@ -89,6 +90,7 @@ private QuestionResDTO.QuestionDetailResponse toDetailResponse(Question question return new QuestionResDTO.QuestionDetailResponse( question.getId(), "작성자", question.getContent(), question.getImageUrl(), question.getIsResolved(), isPopular, question.getLikeCount(), isLiked, + isMine, question.getCreatedAt(), commentResponses ); } @@ -495,11 +497,13 @@ private QuestionResDTO.QuestionSummaryResponse toQuestionSummaryResponse ( ) { Long questionId = question.getId(); boolean isLiked = questionLikeRepository.existsByQuestionAndUser(question, loginUser); + boolean isMine = question.getUser().getId().equals(loginUser.getId()); return new QuestionResDTO.QuestionSummaryResponse( questionId, question.getContent(), question.getImageUrl(), question.getIsResolved(), !question.getIsResolved() && question.getLikeCount() >= POPULAR_LIKE_THRESHOLD, isLiked, + isMine, question.getLikeCount(), summaryContext.commentCounts().getOrDefault(questionId, 0), // 목록 화면은 최상위 댓글 중 먼저 달린 3개만 미리보기로 보여준다.