사용자 좋아요 싫어요 상태 내려주는 로직 추가.
This commit is contained in:
parent
fe7afd1d7f
commit
7b2cab5b95
@ -130,6 +130,10 @@ public interface localbordMapper {
|
|||||||
|
|
||||||
void deleteGoodOrBadByCommentId(MapDto map);
|
void deleteGoodOrBadByCommentId(MapDto map);
|
||||||
|
|
||||||
|
MapDto selectMyBoardReaction(MapDto boardDetail);
|
||||||
|
|
||||||
|
MapDto selectMyBoardReactions(MapDto param);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -227,7 +227,8 @@ public class localbordService {
|
|||||||
PageHelper.startPage(page, size);
|
PageHelper.startPage(page, size);
|
||||||
|
|
||||||
List<MapDto> result = boardMapper.selectComments(map);
|
List<MapDto> result = boardMapper.selectComments(map);
|
||||||
enrichCommentsWithAdditionalData(result); // 댓글 데이터 보강
|
enrichCommentsWithAdditionalData(map, result); // 댓글 데이터 보강
|
||||||
|
|
||||||
return PageUtil.redefineNavigation(new PageInfo<>(result, size));
|
return PageUtil.redefineNavigation(new PageInfo<>(result, size));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -397,12 +398,18 @@ public class localbordService {
|
|||||||
private void enrichBoardDetail(MapDto boardDetail) {
|
private void enrichBoardDetail(MapDto boardDetail) {
|
||||||
if(boardDetail == null) return;
|
if(boardDetail == null) return;
|
||||||
|
|
||||||
|
long userId = AuthUtil.getUser().getId();
|
||||||
long boardId = ((Number) boardDetail.get("id")).longValue();
|
long boardId = ((Number) boardDetail.get("id")).longValue();
|
||||||
|
boardDetail.put("userId", userId);
|
||||||
boardDetail.put("hasAttachment", selectIsAttachments(boardId));
|
boardDetail.put("hasAttachment", selectIsAttachments(boardId));
|
||||||
boardDetail.put("commentCount", selectCountComments(boardId));
|
boardDetail.put("commentCount", selectCountComments(boardId));
|
||||||
|
|
||||||
MapDto reactions = selectCountBoardReactions(boardId);
|
MapDto reactions = selectCountBoardReactions(boardId);
|
||||||
|
long myReaction = this.selectMyBoardReaction(boardDetail);
|
||||||
|
|
||||||
boardDetail.put("likeCount", reactions.getOrDefault("likeCount", 0));
|
boardDetail.put("likeCount", reactions.getOrDefault("likeCount", 0));
|
||||||
boardDetail.put("dislikeCount", reactions.getOrDefault("dislikeCount", 0));
|
boardDetail.put("dislikeCount", reactions.getOrDefault("dislikeCount", 0));
|
||||||
|
boardDetail.put("myReaction", myReaction);
|
||||||
|
|
||||||
// Blob 데이터를 문자열로 변환
|
// Blob 데이터를 문자열로 변환
|
||||||
Object content = boardDetail.get("content");
|
Object content = boardDetail.get("content");
|
||||||
@ -412,7 +419,44 @@ public class localbordService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enrichPostsWithAdditionalData(List<MapDto> posts) {
|
// 사용자 게시글 좋아요/싫어요 조회
|
||||||
|
private long selectMyBoardReaction(MapDto boardDetail) {
|
||||||
|
MapDto map = boardMapper.selectMyBoardReaction(boardDetail);
|
||||||
|
long result = 3;
|
||||||
|
|
||||||
|
if(map == null) {
|
||||||
|
result = 3;
|
||||||
|
} else if("T".equals(map.getString("LOCGOBGOD")) && "F".equals(map.getString("LOCGOBBAD"))) {
|
||||||
|
result = 1;
|
||||||
|
} else if("F".equals(map.getString("LOCGOBGOD")) && "T".equals(map.getString("LOCGOBBAD"))) {
|
||||||
|
result = 2;
|
||||||
|
} else {
|
||||||
|
result = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 사용자 댓글 좋아요/싫어요 조회
|
||||||
|
private long selectMyBoardReactions(MapDto param) {
|
||||||
|
MapDto map = boardMapper.selectMyBoardReactions(param);
|
||||||
|
long result = 3;
|
||||||
|
|
||||||
|
if(map == null) {
|
||||||
|
result = 3;
|
||||||
|
} else if("T".equals(map.getString("LOCGOBGOD")) && "F".equals(map.getString("LOCGOBBAD"))) {
|
||||||
|
result = 1;
|
||||||
|
} else if("F".equals(map.getString("LOCGOBGOD")) && "T".equals(map.getString("LOCGOBBAD"))) {
|
||||||
|
result = 2;
|
||||||
|
} else {
|
||||||
|
result = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void enrichPostsWithAdditionalData(List<MapDto> posts) {
|
||||||
for (MapDto post : posts) {
|
for (MapDto post : posts) {
|
||||||
Object idObject = post.get("id");
|
Object idObject = post.get("id");
|
||||||
if (idObject instanceof Number) {
|
if (idObject instanceof Number) {
|
||||||
@ -434,7 +478,7 @@ public class localbordService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enrichCommentsWithAdditionalData(List<MapDto> comments) {
|
private void enrichCommentsWithAdditionalData(MapDto map, List<MapDto> comments) {
|
||||||
for (MapDto comment : comments) {
|
for (MapDto comment : comments) {
|
||||||
Object idObject = comment.get("LOCCMTSEQ");
|
Object idObject = comment.get("LOCCMTSEQ");
|
||||||
String userId = "";
|
String userId = "";
|
||||||
@ -449,10 +493,16 @@ public class localbordService {
|
|||||||
|
|
||||||
if (idObject instanceof Number) {
|
if (idObject instanceof Number) {
|
||||||
long commentId = ((Number) idObject).longValue();
|
long commentId = ((Number) idObject).longValue();
|
||||||
|
long id = AuthUtil.getUser().getId(); //사용자 아이디
|
||||||
|
|
||||||
MapDto reactions = boardMapper.selectCountCommentReactions(commentId);
|
MapDto reactions = boardMapper.selectCountCommentReactions(commentId);
|
||||||
comment.put("likeCount", reactions != null ? reactions.getOrDefault("likeCount", 0) : 0);
|
comment.put("likeCount", reactions != null ? reactions.getOrDefault("likeCount", 0) : 0);
|
||||||
comment.put("dislikeCount", reactions != null ? reactions.getOrDefault("dislikeCount", 0) : 0);
|
comment.put("dislikeCount", reactions != null ? reactions.getOrDefault("dislikeCount", 0) : 0);
|
||||||
|
|
||||||
|
map.put("userId", id);
|
||||||
|
map.put("boardId", map.get("LOCBRDSEQ"));
|
||||||
|
map.put("commentId", commentId);
|
||||||
|
comment.put("myReaction", this.selectMyBoardReactions(map));
|
||||||
|
|
||||||
Object content = comment.get("content");
|
Object content = comment.get("content");
|
||||||
comment.put("content", content);
|
comment.put("content", content);
|
||||||
@ -460,7 +510,10 @@ public class localbordService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
* 게시판 수정
|
* 게시판 수정
|
||||||
*
|
*
|
||||||
* @param map
|
* @param map
|
||||||
|
|||||||
@ -378,7 +378,32 @@
|
|||||||
COALESCE(SUM(CASE WHEN LOCGOBBAD = 'T' THEN 1 ELSE 0 END), 0) AS dislikeCount
|
COALESCE(SUM(CASE WHEN LOCGOBBAD = 'T' THEN 1 ELSE 0 END), 0) AS dislikeCount
|
||||||
FROM localgorb
|
FROM localgorb
|
||||||
WHERE LOCBRDSEQ = #{boardId} AND LOCCMTSEQ IS NULL;
|
WHERE LOCBRDSEQ = #{boardId} AND LOCCMTSEQ IS NULL;
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 사용자 게시물 좋아요/싫어요 상태 조회 -->
|
||||||
|
<select id="selectMyBoardReaction">
|
||||||
|
SELECT
|
||||||
|
LOCGOBGOD,
|
||||||
|
LOCGOBBAD
|
||||||
|
FROM
|
||||||
|
localgorb
|
||||||
|
WHERE
|
||||||
|
LOCBRDSEQ = #{id}
|
||||||
|
AND LOCCMTSEQ IS NULL
|
||||||
|
AND MEMBERSEQ = #{userId};
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 사용자 댓글 게시물 좋아요/싫어요 상태 조회 -->
|
||||||
|
<select id="selectMyBoardReactions">
|
||||||
|
SELECT
|
||||||
|
LOCGOBGOD,
|
||||||
|
LOCGOBBAD
|
||||||
|
FROM
|
||||||
|
localgorb
|
||||||
|
WHERE
|
||||||
|
LOCBRDSEQ = #{boardId}
|
||||||
|
AND LOCCMTSEQ = #{commentId}
|
||||||
|
AND MEMBERSEQ = #{userId};
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 댓글별 좋아요/싫어요 개수 조회 -->
|
<!-- 댓글별 좋아요/싫어요 개수 조회 -->
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user