diff --git a/src/main/java/io/company/localhost/controller/api/BoardController.java b/src/main/java/io/company/localhost/controller/api/BoardController.java index 5b23b91..7b6bbf1 100644 --- a/src/main/java/io/company/localhost/controller/api/BoardController.java +++ b/src/main/java/io/company/localhost/controller/api/BoardController.java @@ -165,7 +165,7 @@ public class BoardController { } /** - * 댓글/대댓글 조회 + * 댓글 조회 * @ReqMap map 수정 데이터 (LOCBRDSEQ) * @return 댓글 */ diff --git a/src/main/java/io/company/localhost/mapper/localbordMapper.java b/src/main/java/io/company/localhost/mapper/localbordMapper.java index f0f2f3a..ecff3e1 100644 --- a/src/main/java/io/company/localhost/mapper/localbordMapper.java +++ b/src/main/java/io/company/localhost/mapper/localbordMapper.java @@ -5,6 +5,7 @@ import java.util.Map; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.ResultType; import io.company.localhost.common.dto.MapDto; @@ -89,7 +90,8 @@ public interface localbordMapper { MapDto selectCountBoardReactions(Long boardId); // 댓글 좋아요/싫어요 개수 - List selectCountCommentReactions(Long boardId); + @ResultType(MapDto.class) + MapDto selectCountCommentReactions(Long commentId); // 첨부파일 가져오기 List selectAttachments(Long boardId); @@ -97,5 +99,6 @@ public interface localbordMapper { //댓글id 확인 MapDto selectCommentById(int commentId); + } diff --git a/src/main/java/io/company/localhost/service/localbordService.java b/src/main/java/io/company/localhost/service/localbordService.java index c17a15a..2998478 100644 --- a/src/main/java/io/company/localhost/service/localbordService.java +++ b/src/main/java/io/company/localhost/service/localbordService.java @@ -111,12 +111,12 @@ public class localbordService { } public PageInfo selectComments(MapDto map) { - int page = map.getString("page") != null ? Integer.parseInt(map.getString("page")) : 1; + int page = map.getString("page") != null ? Integer.parseInt(map.getString("page")) : 1; int size = map.getString("size") != null ? Integer.parseInt(map.getString("size")) : 10; PageHelper.startPage(page, size); List result = boardMapper.selectComments(map); - + enrichCommentsWithAdditionalData(result); // 댓글 데이터 보강 return PageUtil.redefineNavigation(new PageInfo<>(result, size)); } @@ -177,7 +177,7 @@ public class localbordService { return boardMapper.selectCountBoardReactions(boardId); } - public List selectCountCommentReactions(Long boardId) { + public MapDto selectCountCommentReactions(Long boardId) { return boardMapper.selectCountCommentReactions(boardId); } @@ -306,4 +306,20 @@ public class localbordService { } } + private void enrichCommentsWithAdditionalData(List comments) { + for (MapDto comment : comments) { + Object idObject = comment.get("LOCCMTSEQ"); + if (idObject instanceof Number) { + long commentId = ((Number) idObject).longValue(); + + MapDto reactions = boardMapper.selectCountCommentReactions(commentId); + comment.put("likeCount", reactions != null ? reactions.getOrDefault("likeCount", 0) : 0); + comment.put("dislikeCount", reactions != null ? reactions.getOrDefault("dislikeCount", 0) : 0); + + Object content = comment.get("content"); + comment.put("content", content); + } + } + } + } \ No newline at end of file diff --git a/src/main/resources/mapper/localbordMapper.xml b/src/main/resources/mapper/localbordMapper.xml index b899e36..94c319c 100644 --- a/src/main/resources/mapper/localbordMapper.xml +++ b/src/main/resources/mapper/localbordMapper.xml @@ -252,14 +252,15 @@ - SELECT LOCCMTSEQ, COALESCE(SUM(CASE WHEN LOCGOBGOD = 'T' THEN 1 ELSE 0 END), 0) AS likeCount, COALESCE(SUM(CASE WHEN LOCGOBBAD = 'T' THEN 1 ELSE 0 END), 0) AS dislikeCount FROM localgorb - WHERE LOCBRDSEQ = #{boardId} - GROUP BY LOCCMTSEQ + WHERE LOCCMTSEQ = #{commentId} + LIMIT 1 + diff --git a/src/main/resources/mapper/localvacaMapper.xml b/src/main/resources/mapper/localvacaMapper.xml index be4183c..879936b 100644 --- a/src/main/resources/mapper/localvacaMapper.xml +++ b/src/main/resources/mapper/localvacaMapper.xml @@ -10,7 +10,7 @@