From eaf015fe487bf4587bda729d132e0b0037c6e44f Mon Sep 17 00:00:00 2001 From: ziin Date: Mon, 23 Mar 2026 11:25:20 +0800 Subject: [PATCH] =?UTF-8?q?feat(service):=20=E5=A2=9E=E5=8A=A0=E8=AF=84?= =?UTF-8?q?=E8=AE=BA=E5=B1=8F=E8=94=BD=E7=94=A8=E6=88=B7=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/KeyboardCommentBlockRelationService.java | 2 ++ .../impl/KeyboardAiCompanionCommentServiceImpl.java | 7 +++++++ .../impl/KeyboardCommentBlockRelationServiceImpl.java | 11 +++++++++++ 3 files changed, 20 insertions(+) diff --git a/src/main/java/com/yolo/keyborad/service/KeyboardCommentBlockRelationService.java b/src/main/java/com/yolo/keyborad/service/KeyboardCommentBlockRelationService.java index 1210394..1766a4a 100644 --- a/src/main/java/com/yolo/keyborad/service/KeyboardCommentBlockRelationService.java +++ b/src/main/java/com/yolo/keyborad/service/KeyboardCommentBlockRelationService.java @@ -18,4 +18,6 @@ public interface KeyboardCommentBlockRelationService extends IService listBlockedUsers(Long blockerUserId); + + List listBlockedUserIds(Long blockerUserId); } diff --git a/src/main/java/com/yolo/keyborad/service/impl/KeyboardAiCompanionCommentServiceImpl.java b/src/main/java/com/yolo/keyborad/service/impl/KeyboardAiCompanionCommentServiceImpl.java index 39c4ab8..24d7651 100644 --- a/src/main/java/com/yolo/keyborad/service/impl/KeyboardAiCompanionCommentServiceImpl.java +++ b/src/main/java/com/yolo/keyborad/service/impl/KeyboardAiCompanionCommentServiceImpl.java @@ -13,6 +13,7 @@ import com.yolo.keyborad.model.entity.KeyboardUser; import com.yolo.keyborad.model.vo.CommentVO; import com.yolo.keyborad.service.KeyboardAiCompanionCommentService; import com.yolo.keyborad.service.KeyboardAiCompanionCommentLikeService; +import com.yolo.keyborad.service.KeyboardCommentBlockRelationService; import com.yolo.keyborad.service.UserService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -45,6 +46,9 @@ public class KeyboardAiCompanionCommentServiceImpl extends ServiceImpl pageCommentsWithLikeStatus(Long userId, Long companionId, Integer pageNum, Integer pageSize) { + List blockedUserIds = commentBlockRelationService.listBlockedUserIds(userId); Page page = new Page<>(pageNum, pageSize); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(KeyboardAiCompanionComment::getCompanionId, companionId) .eq(KeyboardAiCompanionComment::getStatus, ACTIVE_STATUS) .isNull(KeyboardAiCompanionComment::getParentId) + .notIn(!blockedUserIds.isEmpty(), KeyboardAiCompanionComment::getUserId, blockedUserIds) .orderByDesc(KeyboardAiCompanionComment::getCreatedAt); IPage entityPage = this.page(page, queryWrapper); @@ -124,6 +130,7 @@ public class KeyboardAiCompanionCommentServiceImpl extends ServiceImpl replyWrapper = new LambdaQueryWrapper<>(); replyWrapper.in(KeyboardAiCompanionComment::getRootId, topCommentIds) .eq(KeyboardAiCompanionComment::getStatus, ACTIVE_STATUS) + .notIn(!blockedUserIds.isEmpty(), KeyboardAiCompanionComment::getUserId, blockedUserIds) .orderByAsc(KeyboardAiCompanionComment::getCreatedAt); allReplies = this.list(replyWrapper); diff --git a/src/main/java/com/yolo/keyborad/service/impl/KeyboardCommentBlockRelationServiceImpl.java b/src/main/java/com/yolo/keyborad/service/impl/KeyboardCommentBlockRelationServiceImpl.java index bfc7f38..907c5ae 100644 --- a/src/main/java/com/yolo/keyborad/service/impl/KeyboardCommentBlockRelationServiceImpl.java +++ b/src/main/java/com/yolo/keyborad/service/impl/KeyboardCommentBlockRelationServiceImpl.java @@ -84,6 +84,17 @@ public class KeyboardCommentBlockRelationServiceImpl extends ServiceImpl listBlockedUserIds(Long blockerUserId) { + if (blockerUserId == null) { + throw new BusinessException(ErrorCode.PARAMS_ERROR); + } + return listActiveRelations(blockerUserId).stream() + .map(KeyboardCommentBlockRelation::getBlockedUserId) + .distinct() + .collect(Collectors.toList()); + } + private void validateUserIds(Long blockerUserId, Long blockedUserId) { if (blockerUserId == null || blockedUserId == null) { throw new BusinessException(ErrorCode.PARAMS_ERROR);