mirror of
https://gitee.com/novel_dev_team/novel
synced 2026-07-20 17:52:45 +08:00
fix(book):增强评论获取代码健壮性
- 添加对书籍信息为空时的空值检查 - 优化书评列表查询逻辑,避免直接返回空列表导致的数据处理问题 - 统一返回结果的构建方式,提升代码可读性
This commit is contained in:
@@ -443,23 +443,28 @@ public class BookServiceImpl implements BookService {
|
|||||||
.orderByDesc(DatabaseConsts.CommonColumnEnum.UPDATE_TIME.getName());
|
.orderByDesc(DatabaseConsts.CommonColumnEnum.UPDATE_TIME.getName());
|
||||||
IPage<BookComment> bookCommentPage = bookCommentMapper.selectPage(page, queryWrapper);
|
IPage<BookComment> bookCommentPage = bookCommentMapper.selectPage(page, queryWrapper);
|
||||||
List<BookComment> comments = bookCommentPage.getRecords();
|
List<BookComment> comments = bookCommentPage.getRecords();
|
||||||
|
|
||||||
|
List<UserCommentRespDto> commentRespDtoList = Collections.emptyList();
|
||||||
if (!CollectionUtils.isEmpty(comments)) {
|
if (!CollectionUtils.isEmpty(comments)) {
|
||||||
List<Long> bookIds = comments.stream().map(BookComment::getBookId).toList();
|
List<Long> bookIds = comments.stream().map(BookComment::getBookId).toList();
|
||||||
QueryWrapper<BookInfo> bookInfoQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<BookInfo> bookInfoQueryWrapper = new QueryWrapper<>();
|
||||||
bookInfoQueryWrapper.in(DatabaseConsts.CommonColumnEnum.ID.getName(), bookIds);
|
bookInfoQueryWrapper.in(DatabaseConsts.CommonColumnEnum.ID.getName(), bookIds);
|
||||||
Map<Long, BookInfo> bookInfoMap = bookInfoMapper.selectList(bookInfoQueryWrapper).stream()
|
Map<Long, BookInfo> bookInfoMap = bookInfoMapper.selectList(bookInfoQueryWrapper).stream()
|
||||||
.collect(Collectors.toMap(BookInfo::getId, Function.identity()));
|
.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())
|
.commentContent(v.getCommentContent())
|
||||||
.commentBook(bookInfoMap.get(v.getBookId()).getBookName())
|
.commentBook(bookInfo != null ? bookInfo.getBookName() : null)
|
||||||
.commentBookPic(bookInfoMap.get(v.getBookId()).getPicUrl())
|
.commentBookPic(bookInfo != null ? bookInfo.getPicUrl() : null)
|
||||||
.commentTime(v.getCreateTime())
|
.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)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
|||||||
Reference in New Issue
Block a user