diff --git a/src/main/java/com/sb/web/board/dto/ReportedItem.java b/src/main/java/com/sb/web/board/dto/ReportedItem.java index 209be58..f2a5adb 100644 --- a/src/main/java/com/sb/web/board/dto/ReportedItem.java +++ b/src/main/java/com/sb/web/board/dto/ReportedItem.java @@ -19,6 +19,7 @@ public class ReportedItem { private Long authorId; // 작성자 id private String authorName; // 작성자 표시명 private Boolean blocked; // 이미 블라인드 되었는지 + private String blockReason; // 블라인드 사유 (글만 존재; 스팸 감지 / 신고 누적 등) private Integer reportCount; // 누적 신고 수 private LocalDateTime lastReportedAt; // 마지막 신고 시각 } diff --git a/src/main/java/com/sb/web/board/service/BoardService.java b/src/main/java/com/sb/web/board/service/BoardService.java index 4814c3b..5e36a0f 100644 --- a/src/main/java/com/sb/web/board/service/BoardService.java +++ b/src/main/java/com/sb/web/board/service/BoardService.java @@ -191,7 +191,11 @@ public class BoardService { .build(); postMapper.insert(post); applyTags(post.getId(), req.getTagIds()); - pointService.awardBoardWrite(author.getId(), req.getContent()); + if (pointService.isSpam(req.getContent())) { + postMapper.updateBlocked(post.getId(), true, "스팸 키워드 감지"); + } else { + pointService.awardBoardWrite(author.getId(), req.getContent()); + } return assemble(mustFindPost(post.getId()), author); } @@ -245,7 +249,11 @@ public class BoardService { .content(req.getContent()) .build(); commentMapper.insert(comment); - pointService.awardBoardWrite(author.getId(), req.getContent()); + if (pointService.isSpam(req.getContent())) { + commentMapper.updateBlocked(comment.getId(), true); + } else { + pointService.awardBoardWrite(author.getId(), req.getContent()); + } return CommentResponse.from(commentMapper.findById(comment.getId())); } diff --git a/src/main/resources/mapper/ReportMapper.xml b/src/main/resources/mapper/ReportMapper.xml index ad352aa..4083e6e 100644 --- a/src/main/resources/mapper/ReportMapper.xml +++ b/src/main/resources/mapper/ReportMapper.xml @@ -12,25 +12,29 @@ SELECT COUNT(*) FROM report WHERE target_type = #{targetType} AND target_id = #{targetId} - +