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);