From 45b4ce7b1888d25164d5891915ef3f2fa097349b Mon Sep 17 00:00:00 2001 From: xiaoyang <1179705413@qq.com> Date: Thu, 1 Apr 2021 21:51:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=8E=A5=E5=8F=A3=E7=9A=84=E6=9F=A5=E8=AF=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/java2nb/novel/book/api/BookApi.java | 3 +- .../book/api/fallback/BookApiFallback.java | 5 +-- .../novel/book/controller/BookController.java | 2 +- .../novel/book/controller/api/BookApi.java | 3 +- .../novel/book/service/BookService.java | 7 ++-- .../book/service/impl/BookServiceImpl.java | 19 ++++++----- .../java2nb/novel/common/bean/PageBean.java | 24 ++++++++++---- .../novel/home/controller/HomeController.java | 6 ++-- .../service/impl/SearchServiceImpl.java | 6 +--- .../novel/user/controller/UserController.java | 8 ++--- .../novel/user/service/UserService.java | 11 ++++--- .../user/service/impl/UserServiceImpl.java | 33 ++++++++++--------- 12 files changed, 73 insertions(+), 54 deletions(-) diff --git a/novel-book/book-api/src/main/java/com/java2nb/novel/book/api/BookApi.java b/novel-book/book-api/src/main/java/com/java2nb/novel/book/api/BookApi.java index a5f60ea..e2216aa 100644 --- a/novel-book/book-api/src/main/java/com/java2nb/novel/book/api/BookApi.java +++ b/novel-book/book-api/src/main/java/com/java2nb/novel/book/api/BookApi.java @@ -3,6 +3,7 @@ package com.java2nb.novel.book.api; import com.java2nb.novel.book.entity.Book; import com.java2nb.novel.book.entity.BookComment; import com.java2nb.novel.book.vo.BookCommentVO; +import com.java2nb.novel.common.bean.PageBean; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -70,7 +71,7 @@ public interface BookApi { * @return 评论数据 * */ @GetMapping("api/book/listUserCommentByPage") - List listUserCommentByPage(@RequestParam("userId") Long userId,@RequestParam("page") int page, @RequestParam("pageSize") int pageSize); + PageBean listUserCommentByPage(@RequestParam("userId") Long userId, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize); /** * 查询网络图片的小说 diff --git a/novel-book/book-api/src/main/java/com/java2nb/novel/book/api/fallback/BookApiFallback.java b/novel-book/book-api/src/main/java/com/java2nb/novel/book/api/fallback/BookApiFallback.java index 57d2145..c599013 100644 --- a/novel-book/book-api/src/main/java/com/java2nb/novel/book/api/fallback/BookApiFallback.java +++ b/novel-book/book-api/src/main/java/com/java2nb/novel/book/api/fallback/BookApiFallback.java @@ -3,6 +3,7 @@ package com.java2nb.novel.book.api.fallback; import com.java2nb.novel.book.api.BookApi; import com.java2nb.novel.book.entity.Book; import com.java2nb.novel.book.entity.BookComment; +import com.java2nb.novel.common.bean.PageBean; import java.util.ArrayList; import java.util.Date; @@ -43,8 +44,8 @@ public class BookApiFallback implements BookApi { } @Override - public List listUserCommentByPage(Long userId, int page, int pageSize) { - return new ArrayList<>(); + public PageBean listUserCommentByPage(Long userId, int page, int pageSize) { + return new PageBean<>(new ArrayList<>()); } @Override diff --git a/novel-book/book-service/src/main/java/com/java2nb/novel/book/controller/BookController.java b/novel-book/book-service/src/main/java/com/java2nb/novel/book/controller/BookController.java index b2bc38d..6bcf51b 100644 --- a/novel-book/book-service/src/main/java/com/java2nb/novel/book/controller/BookController.java +++ b/novel-book/book-service/src/main/java/com/java2nb/novel/book/controller/BookController.java @@ -107,7 +107,7 @@ public class BookController { @ApiOperation("书籍评论列表分页查询接口") @GetMapping("listCommentByPage") public ResultBean> listCommentByPage(@ApiParam("小说ID") @RequestParam("bookId") Long bookId, @ApiParam("当前页码") @RequestParam(value = "curr", defaultValue = "1") int page, @ApiParam("分页大小") @RequestParam(value = "limit", defaultValue = "5") int pageSize) { - return ResultBean.ok(new PageBean<>(bookService.listBookCommentByPage(bookId,page,pageSize))); + return ResultBean.ok(bookService.listBookCommentByPage(bookId,page,pageSize)); } /** diff --git a/novel-book/book-service/src/main/java/com/java2nb/novel/book/controller/api/BookApi.java b/novel-book/book-service/src/main/java/com/java2nb/novel/book/controller/api/BookApi.java index a298235..c408dca 100644 --- a/novel-book/book-service/src/main/java/com/java2nb/novel/book/controller/api/BookApi.java +++ b/novel-book/book-service/src/main/java/com/java2nb/novel/book/controller/api/BookApi.java @@ -4,6 +4,7 @@ import com.java2nb.novel.book.entity.Book; import com.java2nb.novel.book.entity.BookComment; import com.java2nb.novel.book.service.BookService; import com.java2nb.novel.book.vo.BookCommentVO; +import com.java2nb.novel.common.bean.PageBean; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; @@ -89,7 +90,7 @@ public class BookApi { * @return 评论数据 * */ @GetMapping("listUserCommentByPage") - List listUserCommentByPage(@RequestParam("userId") Long userId,@RequestParam("page") int page, @RequestParam("pageSize") int pageSize){ + PageBean listUserCommentByPage(@RequestParam("userId") Long userId, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize){ return bookService.listUserCommentByPage(userId,page,pageSize); } diff --git a/novel-book/book-service/src/main/java/com/java2nb/novel/book/service/BookService.java b/novel-book/book-service/src/main/java/com/java2nb/novel/book/service/BookService.java index 6381b92..db878f0 100644 --- a/novel-book/book-service/src/main/java/com/java2nb/novel/book/service/BookService.java +++ b/novel-book/book-service/src/main/java/com/java2nb/novel/book/service/BookService.java @@ -2,6 +2,7 @@ package com.java2nb.novel.book.service; import com.java2nb.novel.book.entity.*; import com.java2nb.novel.book.vo.BookCommentVO; +import com.java2nb.novel.common.bean.PageBean; import java.util.Date; import java.util.List; @@ -84,9 +85,9 @@ public interface BookService { * @param bookId 书籍ID * @param page 页码 * @param pageSize 分页大小 - * @return 评论集合 + * @return 评论集合分页数据 * */ - List listBookCommentByPage( Long bookId, int page, int pageSize); + PageBean listBookCommentByPage(Long bookId, int page, int pageSize); /** * 查询目录列表 @@ -135,7 +136,7 @@ public interface BookService { * @param pageSize 分页大小 * @return 评论数据 * */ - List listUserCommentByPage(Long userId, int page, int pageSize); + PageBean listUserCommentByPage(Long userId, int page, int pageSize); /** * 查询网络图片的小说 diff --git a/novel-book/book-service/src/main/java/com/java2nb/novel/book/service/impl/BookServiceImpl.java b/novel-book/book-service/src/main/java/com/java2nb/novel/book/service/impl/BookServiceImpl.java index 2585c0e..6590eff 100644 --- a/novel-book/book-service/src/main/java/com/java2nb/novel/book/service/impl/BookServiceImpl.java +++ b/novel-book/book-service/src/main/java/com/java2nb/novel/book/service/impl/BookServiceImpl.java @@ -6,6 +6,7 @@ import com.java2nb.novel.book.feign.UserFeignClient; import com.java2nb.novel.book.mapper.*; import com.java2nb.novel.book.service.BookService; import com.java2nb.novel.book.vo.BookCommentVO; +import com.java2nb.novel.common.bean.PageBean; import com.java2nb.novel.common.enums.ResponseStatus; import com.java2nb.novel.common.exception.BusinessException; import com.java2nb.novel.common.utils.BeanUtil; @@ -170,7 +171,7 @@ public class BookServiceImpl implements BookService { } @Override - public List listBookCommentByPage(Long bookId, int page, int pageSize) { + public PageBean listBookCommentByPage(Long bookId, int page, int pageSize) { //分页查询小说评论数据 PageHelper.startPage(page, pageSize); List bookCommentList = bookCommentMapper.selectMany( @@ -189,9 +190,9 @@ public class BookServiceImpl implements BookService { Map userMap = users.stream().collect(Collectors.toMap(User::getId, Function.identity(), (key1, key2) -> key2)); - //将评论数据和评论人数据关联起来 + //将评论数据和评论人数据关联起来 TODO 评论表增加用户相关的冗余字段,用户信息更新后用户服务通过mq发送message,其他服务消费message更新所有的冗余字段 List resultList = new ArrayList<>(bookCommentList.size()); - for (BookComment bookComment : bookCommentList) { + bookCommentList.forEach(bookComment->{ BookCommentVO bookCommentVO = new BookCommentVO(); BeanUtils.copyProperties(bookComment, bookCommentVO); User user = userMap.get(bookComment.getCreateUserId()); @@ -200,9 +201,11 @@ public class BookServiceImpl implements BookService { bookCommentVO.setCreateUserPhoto(user.getUserPhoto()); } resultList.add(bookCommentVO); - } + }); + PageBean pageBean = new PageBean<>(bookCommentList); + pageBean.setList(resultList); - return resultList; + return pageBean; } @Override @@ -308,9 +311,9 @@ public class BookServiceImpl implements BookService { } @Override - public List listUserCommentByPage(Long userId, int page, int pageSize) { + public PageBean listUserCommentByPage(Long userId, int page, int pageSize) { PageHelper.startPage(page, pageSize); - return bookCommentMapper.selectMany( + return new PageBean<>(bookCommentMapper.selectMany( select(BookCommentDynamicSqlSupport.id, BookCommentDynamicSqlSupport.bookId, BookCommentDynamicSqlSupport.createUserId, BookCommentDynamicSqlSupport.commentContent, BookCommentDynamicSqlSupport.replyCount, @@ -319,7 +322,7 @@ public class BookServiceImpl implements BookService { .where(BookCommentDynamicSqlSupport.createUserId, isEqualTo(userId)) .orderBy(BookCommentDynamicSqlSupport.createTime.descending()) .build() - .render(RenderingStrategies.MYBATIS3)); + .render(RenderingStrategies.MYBATIS3))); } @Override diff --git a/novel-common/src/main/java/com/java2nb/novel/common/bean/PageBean.java b/novel-common/src/main/java/com/java2nb/novel/common/bean/PageBean.java index 1a791b3..3ca9bba 100644 --- a/novel-common/src/main/java/com/java2nb/novel/common/bean/PageBean.java +++ b/novel-common/src/main/java/com/java2nb/novel/common/bean/PageBean.java @@ -9,8 +9,8 @@ import java.util.List; /** * 分装通用分页数据,接收PageHelper、SpringData等框架的分页数据,转换成通用的PageBean对象 * @author xiongxiaoyang - * @version 1.0 - * @since 2020/5/23 + * @version 1.1 + * @since 2021/4/1 * @param 分页集合类型 */ @Data @@ -20,20 +20,18 @@ public class PageBean { private Integer pageNum; @ApiModelProperty(value = "每页大小") private Integer pageSize; - @ApiModelProperty(value = "总页数") - private Integer totalPage; @ApiModelProperty(value = "总记录数") private Long total; @ApiModelProperty(value = "分页数据集合") - private List list; + private List list; /** + * 该构造函数用于PageHelper工具进行分页查询的场景 * 接收PageHelper分页后的list */ public PageBean(List list){ PageInfo pageInfo = new PageInfo<>(list); - this.totalPage = pageInfo.getPages(); this.pageNum = pageInfo.getPageNum(); this.pageSize = pageInfo.getPageSize(); this.total = pageInfo.getTotal(); @@ -41,4 +39,18 @@ public class PageBean { } + /** + * 该构造函数用于通用分页查询的场景 + * 接收普通分页数据和普通集合 + */ + public PageBean(Integer pageNum, Integer pageSize, Long total, List list) { + this.pageNum = pageNum; + this.pageSize = pageSize; + this.total = total; + this.list = list; + } + + + //TODO 使用其他的分页工具或框架进行分页查询的场景 + } diff --git a/novel-home/src/main/java/com/java2nb/novel/home/controller/HomeController.java b/novel-home/src/main/java/com/java2nb/novel/home/controller/HomeController.java index 822261c..5a89aff 100644 --- a/novel-home/src/main/java/com/java2nb/novel/home/controller/HomeController.java +++ b/novel-home/src/main/java/com/java2nb/novel/home/controller/HomeController.java @@ -2,7 +2,6 @@ package com.java2nb.novel.home.controller; import com.java2nb.novel.book.entity.Book; import com.java2nb.novel.book.vo.BookVO; -import com.java2nb.novel.common.bean.PageBean; import com.java2nb.novel.common.bean.ResultBean; import com.java2nb.novel.home.entity.HomeFriendLink; import com.java2nb.novel.home.service.HomeService; @@ -10,10 +9,11 @@ import com.java2nb.novel.home.vo.HomeBookVO; import com.java2nb.novel.news.entity.News; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.List; diff --git a/novel-search/src/main/java/com/java2nb/novel/search/service/impl/SearchServiceImpl.java b/novel-search/src/main/java/com/java2nb/novel/search/service/impl/SearchServiceImpl.java index 35b6782..db13074 100644 --- a/novel-search/src/main/java/com/java2nb/novel/search/service/impl/SearchServiceImpl.java +++ b/novel-search/src/main/java/com/java2nb/novel/search/service/impl/SearchServiceImpl.java @@ -210,11 +210,7 @@ public class SearchServiceImpl implements SearchService { } } - PageBean pageBean = new PageBean<>(bookList); - pageBean.setTotal(total.longValue()); - pageBean.setPageNum(page); - pageBean.setPageSize(pageSize); - return pageBean; + return new PageBean<>(page,pageSize,total.longValue(), bookList); } throw new BusinessException(ResponseStatus.ES_SEARCH_FAIL); } diff --git a/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/UserController.java b/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/UserController.java index e5204db..56983c6 100644 --- a/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/UserController.java +++ b/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/UserController.java @@ -161,7 +161,7 @@ public class UserController extends BaseController { if (userDetails == null) { return ResultBean.fail(ResponseStatus.NO_LOGIN); } - return ResultBean.ok(new PageBean<>(userService.listBookShelfByPage(userDetails.getId(),page,pageSize))); + return ResultBean.ok(userService.listBookShelfByPage(userDetails.getId(),page,pageSize)); } /** @@ -174,7 +174,7 @@ public class UserController extends BaseController { if (userDetails == null) { return ResultBean.fail(ResponseStatus.NO_LOGIN); } - return ResultBean.ok(new PageBean<>(userService.listReadHistoryByPage(userDetails.getId(),page,pageSize))); + return ResultBean.ok(userService.listReadHistoryByPage(userDetails.getId(),page,pageSize)); } /** @@ -215,7 +215,7 @@ public class UserController extends BaseController { if (userDetails == null) { return ResultBean.fail(ResponseStatus.NO_LOGIN); } - return ResultBean.ok(new PageBean<>(userService.listUserFeedBackByPage(userDetails.getId(),page,pageSize))); + return ResultBean.ok(userService.listUserFeedBackByPage(userDetails.getId(),page,pageSize)); } @@ -294,7 +294,7 @@ public class UserController extends BaseController { if (userDetails == null) { return ResultBean.fail(ResponseStatus.NO_LOGIN); } - return ResultBean.ok(new PageBean<>(bookFeignClient.listUserCommentByPage(userDetails.getId(),page,pageSize))); + return ResultBean.ok(bookFeignClient.listUserCommentByPage(userDetails.getId(),page,pageSize)); } diff --git a/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/UserService.java b/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/UserService.java index 4aba3a0..ddac56f 100644 --- a/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/UserService.java +++ b/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/UserService.java @@ -1,9 +1,12 @@ package com.java2nb.novel.user.service; +import com.java2nb.novel.common.bean.PageBean; import com.java2nb.novel.common.bean.UserDetails; import com.java2nb.novel.user.entity.User; +import com.java2nb.novel.user.entity.UserBookshelf; import com.java2nb.novel.user.entity.UserFeedback; +import com.java2nb.novel.user.entity.UserReadHistory; import com.java2nb.novel.user.vo.BookReadHistoryVO; import com.java2nb.novel.user.vo.BookShelfVO; @@ -82,9 +85,9 @@ public interface UserService { * @param userId 用户ID * @param page * @param pageSize - * @return 书架集合 + * @return 书架分页集合 */ - List listBookShelfByPage(Long userId, int page, int pageSize); + PageBean listBookShelfByPage(Long userId, int page, int pageSize); /** * 分页查询阅读记录 @@ -94,7 +97,7 @@ public interface UserService { * @param pageSize 分页大小 * @return */ - List listReadHistoryByPage(Long userId, int page, int pageSize); + PageBean listReadHistoryByPage(Long userId, int page, int pageSize); /** * 添加阅读记录 @@ -121,7 +124,7 @@ public interface UserService { * @param pageSize 分页大小 * @return 反馈集合 * */ - List listUserFeedBackByPage(Long userId, int page, int pageSize); + PageBean listUserFeedBackByPage(Long userId, int page, int pageSize); /** * 查询个人信息 diff --git a/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/impl/UserServiceImpl.java b/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/impl/UserServiceImpl.java index 23fccf1..18294d9 100644 --- a/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/impl/UserServiceImpl.java +++ b/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/impl/UserServiceImpl.java @@ -2,6 +2,7 @@ package com.java2nb.novel.user.service.impl; import com.github.pagehelper.PageHelper; import com.java2nb.novel.book.entity.Book; +import com.java2nb.novel.common.bean.PageBean; import com.java2nb.novel.common.bean.UserDetails; import com.java2nb.novel.common.enums.ResponseStatus; import com.java2nb.novel.common.exception.BusinessException; @@ -168,7 +169,7 @@ public class UserServiceImpl implements UserService { } @Override - public List listBookShelfByPage(Long userId, int page, int pageSize) { + public PageBean listBookShelfByPage(Long userId, int page, int pageSize) { PageHelper.startPage(page, pageSize); List userBookshelves = userBookshelfMapper.selectMany( select(UserBookshelfDynamicSqlSupport.bookId, UserBookshelfDynamicSqlSupport.preContentId) @@ -181,8 +182,9 @@ public class UserServiceImpl implements UserService { List books = bookFeignClient.queryBookByIds(userBookshelves.stream().map(UserBookshelf::getBookId).collect(Collectors.toList())); Map booksById = books.stream().collect(Collectors.toMap(Book::getId, Function.identity(), (key1, key2) -> key2)); + //TODO 书架表增加书籍相关的冗余字段,书籍信息更新后小说服务通过mq发送message,其他服务消费message更新所有的冗余字段 List resultList = new ArrayList<>(booksById.size()); - for (UserBookshelf bookshelf : userBookshelves) { + userBookshelves.forEach(bookshelf->{ BookShelfVO bookShelfVO = new BookShelfVO(); BeanUtils.copyProperties(bookshelf, bookShelfVO); Book book = booksById.get(bookshelf.getBookId()); @@ -190,15 +192,15 @@ public class UserServiceImpl implements UserService { BeanUtils.copyProperties(book, bookShelfVO); resultList.add(bookShelfVO); } + }); + PageBean pageBean = new PageBean<>(userBookshelves); + pageBean.setList(resultList); - } - - - return resultList; + return pageBean; } @Override - public List listReadHistoryByPage(Long userId, int page, int pageSize) { + public PageBean listReadHistoryByPage(Long userId, int page, int pageSize) { PageHelper.startPage(page, pageSize); List userReadHistories = userReadHistoryMapper.selectMany( select(UserReadHistoryDynamicSqlSupport.bookId, UserReadHistoryDynamicSqlSupport.preContentId) @@ -213,7 +215,7 @@ public class UserServiceImpl implements UserService { Map booksById = books.stream().collect(Collectors.toMap(Book::getId, Function.identity(), (key1, key2) -> key2)); List resultList = new ArrayList<>(booksById.size()); - for (UserReadHistory readHistory : userReadHistories) { + userReadHistories.forEach(readHistory->{ BookReadHistoryVO readHistoryVO = new BookReadHistoryVO(); BeanUtils.copyProperties(readHistory, readHistoryVO); Book book = booksById.get(readHistory.getBookId()); @@ -221,11 +223,10 @@ public class UserServiceImpl implements UserService { BeanUtils.copyProperties(book, readHistoryVO); resultList.add(readHistoryVO); } - - } - - - return resultList; + }); + PageBean pageBean = new PageBean(userReadHistories); + pageBean.setList(resultList); + return pageBean; } @Transactional(rollbackFor = Exception.class) @@ -278,14 +279,14 @@ public class UserServiceImpl implements UserService { @Override - public List listUserFeedBackByPage(Long userId, int page, int pageSize) { + public PageBean listUserFeedBackByPage(Long userId, int page, int pageSize) { PageHelper.startPage(page, pageSize); - return userFeedbackMapper.selectMany(select(UserFeedbackDynamicSqlSupport.content, UserFeedbackDynamicSqlSupport.createTime) + return new PageBean<>(userFeedbackMapper.selectMany(select(UserFeedbackDynamicSqlSupport.content, UserFeedbackDynamicSqlSupport.createTime) .from(UserFeedbackDynamicSqlSupport.userFeedback) .where(UserFeedbackDynamicSqlSupport.userId, isEqualTo(userId)) .orderBy(UserFeedbackDynamicSqlSupport.id.descending()) .build() - .render(RenderingStrategies.MYBATIS3)); + .render(RenderingStrategies.MYBATIS3))); } @Override