From 81a28d17742f781d92989ae9eef8c76716c061b0 Mon Sep 17 00:00:00 2001 From: Neko <68886053+li7355608@users.noreply.github.com> Date: Wed, 5 Nov 2025 11:16:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(book):=E5=A2=9E=E5=BC=BA=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=BB=A3=E7=A0=81=E5=81=A5=E5=A3=AE=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加对书籍信息为空时的空值检查 - 优化书评列表查询逻辑,避免直接返回空列表导致的数据处理问题 - 统一返回结果的构建方式,提升代码可读性 --- .../novel/service/impl/BookServiceImpl.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java b/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java index 1322892..c8d3332 100644 --- a/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java +++ b/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java @@ -443,23 +443,28 @@ public class BookServiceImpl implements BookService { .orderByDesc(DatabaseConsts.CommonColumnEnum.UPDATE_TIME.getName()); IPage bookCommentPage = bookCommentMapper.selectPage(page, queryWrapper); List comments = bookCommentPage.getRecords(); + + List commentRespDtoList = Collections.emptyList(); if (!CollectionUtils.isEmpty(comments)) { List bookIds = comments.stream().map(BookComment::getBookId).toList(); QueryWrapper bookInfoQueryWrapper = new QueryWrapper<>(); bookInfoQueryWrapper.in(DatabaseConsts.CommonColumnEnum.ID.getName(), bookIds); Map bookInfoMap = bookInfoMapper.selectList(bookInfoQueryWrapper).stream() .collect(Collectors.toMap(BookInfo::getId, Function.identity())); - return RestResp.ok(PageRespDto.of(pageReqDto.getPageNum(), pageReqDto.getPageSize(), page.getTotal(), - comments.stream().map(v -> UserCommentRespDto.builder() + + commentRespDtoList = comments.stream().map(v -> { + BookInfo bookInfo = bookInfoMap.get(v.getBookId()); + return UserCommentRespDto.builder() .commentContent(v.getCommentContent()) - .commentBook(bookInfoMap.get(v.getBookId()).getBookName()) - .commentBookPic(bookInfoMap.get(v.getBookId()).getPicUrl()) + .commentBook(bookInfo != null ? bookInfo.getBookName() : null) + .commentBookPic(bookInfo != null ? bookInfo.getPicUrl() : null) .commentTime(v.getCreateTime()) - .build()).toList())); - + .build(); + }).toList(); } - return RestResp.ok(PageRespDto.of(pageReqDto.getPageNum(), pageReqDto.getPageSize(), page.getTotal(), - Collections.emptyList())); + + return RestResp.ok(PageRespDto.of(pageReqDto.getPageNum(), pageReqDto.getPageSize(), + page.getTotal(), commentRespDtoList)); } @Transactional(rollbackFor = Exception.class)