From 861e966a880bf0f102ac31710837040208ed27eb Mon Sep 17 00:00:00 2001 From: xiongxiaoyang Date: Thu, 28 May 2020 22:16:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E8=AF=B4=E5=BE=AE=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E5=AE=8C=E6=88=90=EF=BC=8C=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=BE=AE=E6=9C=8D=E5=8A=A1=E5=BC=80=E5=8F=91=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 + assert/QQ20200528-221348.png | Bin 0 -> 144869 bytes novel-book/book-api/pom.xml | 1 + .../novel/book/entity/BookComment.java | 3 +- .../java2nb/novel/book/vo/BookCommentVO.java | 28 +++ novel-book/book-service/pom.xml | 6 + .../novel/book/controller/BookController.java | 153 ++++++++++++- .../novel/book/feign/UserFeignClient.java | 15 ++ .../novel/book/mapper/BookCommentMapper.java | 2 + .../java2nb/novel/book/mapper/BookMapper.java | 4 + .../novel/book/service/BookService.java | 97 ++++++++- .../book/service/impl/BookServiceImpl.java | 202 +++++++++++++++++- .../resources/mybatis/mapping/BookMapper.xml | 38 ++++ .../com/java2nb/novel/user/api/UserApi.java | 13 +- .../com/java2nb/novel/user/entity/User.java | 3 +- .../novel/user/controller/api/UserApi.java | 16 +- .../novel/user/service/UserService.java | 8 + .../user/service/impl/UserServiceImpl.java | 11 + 18 files changed, 583 insertions(+), 19 deletions(-) create mode 100644 assert/QQ20200528-221348.png create mode 100644 novel-book/book-api/src/main/java/com/java2nb/novel/book/vo/BookCommentVO.java create mode 100644 novel-book/book-service/src/main/java/com/java2nb/novel/book/feign/UserFeignClient.java create mode 100644 novel-book/book-service/src/main/resources/mybatis/mapping/BookMapper.xml diff --git a/README.md b/README.md index 3978175..7292355 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,8 @@ novel-cloud ![QQ20200520-215756](./assert/QQ20200528-200023.png) + ![QQ20200520-215756](./assert/QQ20200528-221348.png) + 5. 门户网站 ![QQ20200520-215756](./assert/pc_index.png) diff --git a/assert/QQ20200528-221348.png b/assert/QQ20200528-221348.png new file mode 100644 index 0000000000000000000000000000000000000000..2a7c2231218886f1f2826486ab0ccf94c8fd637c GIT binary patch literal 144869 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

y6AWXk2;Bwx`JV>jz8L_&WU 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̽FkDRU@ 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.java2nb.novel novel-common + diff --git a/novel-book/book-api/src/main/java/com/java2nb/novel/book/entity/BookComment.java b/novel-book/book-api/src/main/java/com/java2nb/novel/book/entity/BookComment.java index c8e5593..62f91c9 100644 --- a/novel-book/book-api/src/main/java/com/java2nb/novel/book/entity/BookComment.java +++ b/novel-book/book-api/src/main/java/com/java2nb/novel/book/entity/BookComment.java @@ -3,9 +3,10 @@ package com.java2nb.novel.book.entity; import io.swagger.annotations.ApiModelProperty; import javax.annotation.Generated; +import java.io.Serializable; import java.util.Date; -public class BookComment { +public class BookComment implements Serializable { @ApiModelProperty(value = "主键") @Generated("org.mybatis.generator.api.MyBatisGenerator") private Long id; diff --git a/novel-book/book-api/src/main/java/com/java2nb/novel/book/vo/BookCommentVO.java b/novel-book/book-api/src/main/java/com/java2nb/novel/book/vo/BookCommentVO.java new file mode 100644 index 0000000..a16e3d5 --- /dev/null +++ b/novel-book/book-api/src/main/java/com/java2nb/novel/book/vo/BookCommentVO.java @@ -0,0 +1,28 @@ +package com.java2nb.novel.book.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.java2nb.novel.book.entity.BookComment; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author 11797 + */ +@Data +public class BookCommentVO extends BookComment { + + private String createUserName; + + private String createUserPhoto; + + @ApiModelProperty(value = "评价时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @Override + public String toString() { + return super.toString(); + } +} diff --git a/novel-book/book-service/pom.xml b/novel-book/book-service/pom.xml index 135fb0a..b0e42f1 100644 --- a/novel-book/book-service/pom.xml +++ b/novel-book/book-service/pom.xml @@ -17,6 +17,10 @@ com.java2nb.novel book-api + + com.java2nb.novel + user-api + org.springframework.cloud @@ -38,6 +42,8 @@ + + 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 ccf00d0..ee28586 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 @@ -1,10 +1,24 @@ package com.java2nb.novel.book.controller; +import com.github.pagehelper.PageInfo; +import com.java2nb.novel.book.entity.Book; +import com.java2nb.novel.book.entity.BookCategory; +import com.java2nb.novel.book.entity.BookContent; +import com.java2nb.novel.book.entity.BookIndex; +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.bean.ResultBean; 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.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @author 11797 @@ -16,5 +30,140 @@ import org.springframework.web.bind.annotation.RestController; @Api(tags = "小说相关接口") public class BookController { + private final BookService bookService; + + /** + * 小说分类列表查询接口 + */ + @ApiOperation("小说分类列表查询接口") + @GetMapping("listBookCategory") + public ResultBean> listBookCategory() { + return ResultBean.ok(bookService.listBookCategory()); + } + + /** + * 小说详情信息查询接口 + */ + @ApiOperation("小说详情信息查询接口") + @GetMapping("{id}") + public ResultBean queryBookDetail(@ApiParam("小说ID") @PathVariable("id") Long id) { + return ResultBean.ok(bookService.queryBookDetail(id)); + } + + /** + * 小说排行信息查询接口 + */ + @ApiOperation("小说排行信息查询接口") + @GetMapping("listRank") + public ResultBean> listRank(@ApiParam(value = "排行类型,0:点击排行,1:更新排行,2:新书排行,3评论排行", defaultValue = "0") @RequestParam(value = "type", defaultValue = "0") Byte type) { + return ResultBean.ok(bookService.listRank(type, 30)); + } + + /** + * 点击量新增接口 + */ + @ApiOperation("点击量新增接口") + @PostMapping("addVisitCount") + public ResultBean addVisitCount(@ApiParam("小说ID") @RequestParam("bookId") Long bookId) { + bookService.addVisitCount(bookId, 1); + return ResultBean.ok(); + } + + /** + * 章节相关信息查询接口 + * */ + @ApiOperation("章节相关信息查询接口") + @GetMapping("queryBookIndexAbout") + public ResultBean> queryBookIndexAbout(@ApiParam("小说ID") @RequestParam("bookId") Long bookId,@ApiParam("最新章节目录ID") @RequestParam("lastBookIndexId") Long lastBookIndexId) { + Map data = new HashMap<>(2); + //查询章节总数 + data.put("bookIndexCount",bookService.queryIndexCount(bookId)); + //查询最新章节内容 + String lastBookContent = bookService.queryBookContent(lastBookIndexId).getContent(); + if(lastBookContent.length()>42){ + lastBookContent=lastBookContent.substring(0,42); + } + data.put("lastBookContent",lastBookContent); + return ResultBean.ok(data); + } + + /** + * 同类推荐书籍查询接口 + * */ + @ApiOperation("同类推荐书籍查询接口") + @GetMapping("listRecBookByCatId") + public ResultBean> listRecBookByCatId(@ApiParam("小说分类ID") @RequestParam("catId") Integer catId) { + return ResultBean.ok(bookService.listRecBookByCatId(catId)); + } + + /** + *书籍评论列表分页查询接口 + * */ + @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.listCommentByPage(null,bookId,page,pageSize))); + } + + /** + * 小说目录列表查询接口 + * */ + @ApiOperation("小说目录列表查询接口") + @GetMapping("listNewIndex") + public ResultBean> listNewIndex(@ApiParam("小说ID") @RequestParam("bookId") Long bookId,@ApiParam(value = "排序字符串,为空则按目录号排序") @RequestParam("orderBy") String orderBy,@ApiParam(value = "查询数量,为空则全部查询") @RequestParam("limit") Integer limit){ + return ResultBean.ok(bookService.listNewIndex(bookId,orderBy,limit)); + } + + /** + * 首章目录ID查询接口 + * */ + @ApiOperation("首章目录ID查询接口") + @GetMapping("queryFirstBookIndexId") + public ResultBean queryFirstBookIndexId(@ApiParam("小说ID") @RequestParam("bookId") Long bookId){ + return ResultBean.ok(bookService.queryFirstBookIndexId(bookId)); + } + + /** + * 目录查询接口 + * */ + @ApiOperation("目录查询接口") + @GetMapping("queryBookIndex") + public ResultBean queryBookIndex(@ApiParam("目录ID") @RequestParam("bookIndexId") Long bookIndexId){ + return ResultBean.ok(bookService.queryBookIndex(bookIndexId)); + } + + /** + * 上一章节和下一章节目录ID查询接口 + * */ + @ApiOperation("上一章节和下一章节目录ID查询接口") + @GetMapping("queryPreAndNextBookIndexId") + public ResultBean> queryPreAndNextBookIndexId(@ApiParam("小说ID") @RequestParam("bookId") Long bookId,@ApiParam("目录号") @RequestParam("indexNum") Integer indexNum){ + return ResultBean.ok(bookService.queryPreAndNextBookIndexId(bookId,indexNum)); + } + + /** + * 内容查询接口 + * */ + @ApiOperation("内容查询接口") + @GetMapping("queryBookContent") + public ResultBean queryBookContent(@ApiParam("目录ID") @RequestParam("bookIndexId") Long bookIndexId){ + return ResultBean.ok(bookService.queryBookContent(bookIndexId)); + } + + + + + + + + + + + + + + + + } diff --git a/novel-book/book-service/src/main/java/com/java2nb/novel/book/feign/UserFeignClient.java b/novel-book/book-service/src/main/java/com/java2nb/novel/book/feign/UserFeignClient.java new file mode 100644 index 0000000..ed17ae1 --- /dev/null +++ b/novel-book/book-service/src/main/java/com/java2nb/novel/book/feign/UserFeignClient.java @@ -0,0 +1,15 @@ +package com.java2nb.novel.book.feign; + +import com.java2nb.novel.user.api.UserApi; +import org.springframework.cloud.openfeign.FeignClient; + +/** + * 用户服务Feign客户端 + * @author xiongxiaoyang + * @version 1.0 + * @since 2020/5/28 + */ +@FeignClient("user-service") +public interface UserFeignClient extends UserApi { + +} diff --git a/novel-book/book-service/src/main/java/com/java2nb/novel/book/mapper/BookCommentMapper.java b/novel-book/book-service/src/main/java/com/java2nb/novel/book/mapper/BookCommentMapper.java index 14ceba6..5c0321b 100644 --- a/novel-book/book-service/src/main/java/com/java2nb/novel/book/mapper/BookCommentMapper.java +++ b/novel-book/book-service/src/main/java/com/java2nb/novel/book/mapper/BookCommentMapper.java @@ -1,6 +1,7 @@ package com.java2nb.novel.book.mapper; import com.java2nb.novel.book.entity.BookComment; +import com.java2nb.novel.book.vo.BookCommentVO; import org.apache.ibatis.annotations.*; import org.apache.ibatis.type.JdbcType; import org.mybatis.dynamic.sql.SqlBuilder; @@ -181,4 +182,5 @@ public interface BookCommentMapper { .build() .execute(); } + } \ No newline at end of file diff --git a/novel-book/book-service/src/main/java/com/java2nb/novel/book/mapper/BookMapper.java b/novel-book/book-service/src/main/java/com/java2nb/novel/book/mapper/BookMapper.java index 965343c..a99ec86 100644 --- a/novel-book/book-service/src/main/java/com/java2nb/novel/book/mapper/BookMapper.java +++ b/novel-book/book-service/src/main/java/com/java2nb/novel/book/mapper/BookMapper.java @@ -307,4 +307,8 @@ public interface BookMapper { .build() .execute(); } + + void addVisitCount(@Param("bookId") Long bookId, @Param("visitCount") Integer visitCount); + + List listRecBookByCatId(@Param("catId") Integer catId); } \ No newline at end of file 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 c6f9a10..8cf92b7 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 @@ -1,9 +1,14 @@ package com.java2nb.novel.book.service; import com.java2nb.novel.book.entity.Book; +import com.java2nb.novel.book.entity.BookCategory; +import com.java2nb.novel.book.entity.BookContent; +import com.java2nb.novel.book.entity.BookIndex; +import com.java2nb.novel.book.vo.BookCommentVO; import java.util.Date; import java.util.List; +import java.util.Map; /** * 小说服务接口 @@ -17,22 +22,106 @@ public interface BookService { * 根据最小更新时间分页查询书籍列表 * @param minDate 最小时间,包括该时间 * @param limit 查询数量 - * @return 书籍列表 + * @return 书籍数据集合 * */ List queryBookByMinUpdateTime(Date minDate, int limit); /** * 根据小说ID集合查询书籍列表 * @param ids 小说ID集合 - * @return 书籍列表 + * @return 书籍数据集合 * */ List queryBookByIds(List ids); /** * 小说排行数据查询列表 - * @param type 排行类型,1:更新排行,2:新书排行,3评论排行 + * @param type 排行类型,0:点击排行,1:更新排行,2:新书排行,3评论排行 * @param limit 查询数量 - * @return 书籍列表 + * @return 书籍数据集合 * */ List listRank(Byte type, Integer limit); + + /** + * 小说分类列表查询 + * @return 分类数据集合 + * */ + List listBookCategory(); + + /** + * 小说详情信息查询 + * @param id 小说ID + * @return 小说数据对象 + * */ + Book queryBookDetail(Long id); + + /** + * 增加小说点击量 + * @param bookId 小说ID + * @param addCount 新增的数量 + * */ + void addVisitCount(Long bookId, int addCount); + + /** + * 查询章节数 + * @param bookId 书籍ID + * @return 章节数量 + * */ + long queryIndexCount(Long bookId); + + /** + * 查询章节内容 + * @param bookIndexId 目录ID + * @return 书籍内容 + * */ + BookContent queryBookContent(Long bookIndexId); + + /** + * 根据分类id查询同类推荐书籍 + * @param catId 分类id + * @return 书籍集合 + * */ + List listRecBookByCatId(Integer catId); + + /** + *分页查询书籍评论列表 + * @param userId 用户ID + * @param bookId 书籍ID + * @param page 页码 + * @param pageSize 分页大小 + * @return 评论集合 + * */ + List listCommentByPage(Long userId, Long bookId, int page, int pageSize); + + /** + * 查询目录列表 + * @param bookId 书籍ID + * @param orderBy 排序 + *@param limit 查询条数 + *@return 目录集合 + * */ + List listNewIndex(Long bookId, String orderBy, Integer limit); + + /** + * 查询首章目录ID + * @param bookId 书籍ID + * @return 首章目录ID + * */ + Long queryFirstBookIndexId(Long bookId); + + + /** + * 查询目录 + * @param bookIndexId 目录ID + * @return 目录信息 + * */ + BookIndex queryBookIndex(Long bookIndexId); + + + /** + * 上一章节和下一章节目录ID查询接口 + * @param bookId 书籍ID + * @param indexNum 目录号 + * @return 上一章节和下一章节目录ID数据 + * */ + Map queryPreAndNextBookIndexId(Long bookId, Integer indexNum); } 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 0138fea..d4428a3 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 @@ -1,21 +1,28 @@ package com.java2nb.novel.book.service.impl; -import com.java2nb.novel.book.entity.Book; -import com.java2nb.novel.book.mapper.BookDynamicSqlSupport; -import com.java2nb.novel.book.mapper.BookMapper; +import com.github.pagehelper.PageHelper; +import com.java2nb.novel.book.entity.*; +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.utils.BeanUtil; +import com.java2nb.novel.user.entity.User; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.mybatis.dynamic.sql.SortSpecification; import org.mybatis.dynamic.sql.render.RenderingStrategies; import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import tk.mybatis.orderbyhelper.OrderByHelper; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; import static com.java2nb.novel.book.mapper.BookDynamicSqlSupport.book; -import static org.mybatis.dynamic.sql.SqlBuilder.isGreaterThan; -import static org.mybatis.dynamic.sql.SqlBuilder.isIn; +import static org.mybatis.dynamic.sql.SqlBuilder.*; import static org.mybatis.dynamic.sql.select.SelectDSL.select; /** @@ -30,6 +37,16 @@ public class BookServiceImpl implements BookService { private final BookMapper bookMapper; + private final BookCategoryMapper bookCategoryMapper; + + private final BookIndexMapper bookIndexMapper; + + private final BookContentMapper bookContentMapper; + + private final BookCommentMapper bookCommentMapper; + + private final UserFeignClient userFeignClient; + @Override public List queryBookByMinUpdateTime(Date minDate, int limit) { return bookMapper.selectMany(select(book.allColumns()) @@ -90,4 +107,175 @@ public class BookServiceImpl implements BookService { .render(RenderingStrategies.MYBATIS3); return bookMapper.selectMany(selectStatement); } + + @Override + public List listBookCategory() { + SelectStatementProvider selectStatementProvider = select(BookCategoryDynamicSqlSupport.id, BookCategoryDynamicSqlSupport.name, BookCategoryDynamicSqlSupport.workDirection) + .from(BookCategoryDynamicSqlSupport.bookCategory) + .orderBy(BookCategoryDynamicSqlSupport.sort) + .build() + .render(RenderingStrategies.MYBATIS3); + return bookCategoryMapper.selectMany(selectStatementProvider); + } + + @Override + public Book queryBookDetail(Long id) { + SelectStatementProvider selectStatement = select(BookDynamicSqlSupport.book.allColumns()) + .from(BookDynamicSqlSupport.book) + .where(BookDynamicSqlSupport.id, isEqualTo(id)) + .limit(1) + .build() + .render(RenderingStrategies.MYBATIS3); + List books = bookMapper.selectMany(selectStatement); + return books.size() >0 ? books.get(0) : null; + } + + @Override + public void addVisitCount(Long bookId, int addCount) { + bookMapper.addVisitCount(bookId,addCount); + + } + + @Override + public long queryIndexCount(Long bookId) { + SelectStatementProvider selectStatement = select(count(BookIndexDynamicSqlSupport.id)) + .from(BookIndexDynamicSqlSupport.bookIndex) + .where(BookIndexDynamicSqlSupport.bookId, isEqualTo(bookId)) + .build() + .render(RenderingStrategies.MYBATIS3); + + return bookIndexMapper.count(selectStatement); + } + + @Override + public BookContent queryBookContent(Long bookIndexId) { + SelectStatementProvider selectStatement = select(BookContentDynamicSqlSupport.id, BookContentDynamicSqlSupport.content) + .from(BookContentDynamicSqlSupport.bookContent) + .where(BookContentDynamicSqlSupport.indexId, isEqualTo(bookIndexId)) + .limit(1) + .build() + .render(RenderingStrategies.MYBATIS3); + return bookContentMapper.selectMany(selectStatement).get(0); + } + + @Override + public List listRecBookByCatId(Integer catId) { + return bookMapper.listRecBookByCatId(catId); + } + + @Override + public List listCommentByPage(Long userId, Long bookId, int page, int pageSize) { + //分页查询小说评论数据 + PageHelper.startPage(page, pageSize); + List bookCommentList = bookCommentMapper.selectMany( + select(BookCommentDynamicSqlSupport.id,BookCommentDynamicSqlSupport.bookId, + BookCommentDynamicSqlSupport.createUserId, + BookCommentDynamicSqlSupport.commentContent,BookCommentDynamicSqlSupport.replyCount, + BookCommentDynamicSqlSupport.createTime) + .from(BookCommentDynamicSqlSupport.bookComment) + .where(BookCommentDynamicSqlSupport.bookId,isEqualTo(bookId)) + .orderBy(BookCommentDynamicSqlSupport.createTime.descending()) + .build() + .render(RenderingStrategies.MYBATIS3)); + + //根据评论人ID集合查询出评论人集合数据 + List users = userFeignClient.queryById(bookCommentList.stream().map(BookComment::getCreateUserId).collect(Collectors.toList())); + + Map userMap = users.stream().collect(Collectors.toMap(User::getId, Function.identity(), (key1, key2) -> key2)); + + //将评论数据和评论人数据关联起来 + List resultList = new ArrayList<>(bookCommentList.size()); + for(BookComment bookComment : bookCommentList){ + BookCommentVO bookCommentVO = new BookCommentVO(); + BeanUtils.copyProperties(bookComment,bookCommentVO); + User user = userMap.get(bookComment.getCreateUserId()); + if(user != null){ + bookCommentVO.setCreateUserName(user.getUsername()); + bookCommentVO.setCreateUserPhoto(user.getUserPhoto()); + } + resultList.add(bookCommentVO); + } + + return resultList; + } + + @Override + public List listNewIndex(Long bookId, String orderBy, Integer limit) { + if (StringUtils.isNotBlank(orderBy)) { + OrderByHelper.orderBy(orderBy); + } + if (limit != null) { + PageHelper.startPage(1, limit); + } + + SelectStatementProvider selectStatement = select(BookIndexDynamicSqlSupport.id, BookIndexDynamicSqlSupport.bookId, + BookIndexDynamicSqlSupport.indexNum, BookIndexDynamicSqlSupport.indexName, + BookIndexDynamicSqlSupport.updateTime, BookIndexDynamicSqlSupport.isVip) + .from(BookIndexDynamicSqlSupport.bookIndex) + .where(BookIndexDynamicSqlSupport.bookId, isEqualTo(bookId)) + .build() + .render(RenderingStrategies.MYBATIS3); + + return bookIndexMapper.selectMany(selectStatement); + } + + @Override + public Long queryFirstBookIndexId(Long bookId) { + SelectStatementProvider selectStatement = select(BookIndexDynamicSqlSupport.id) + .from(BookIndexDynamicSqlSupport.bookIndex) + .where(BookIndexDynamicSqlSupport.bookId, isEqualTo(bookId)) + .orderBy(BookIndexDynamicSqlSupport.indexNum) + .limit(1) + .build() + .render(RenderingStrategies.MYBATIS3); + return bookIndexMapper.selectMany(selectStatement).get(0).getId(); + } + + @Override + public BookIndex queryBookIndex(Long bookIndexId) { + SelectStatementProvider selectStatement = select(BookIndexDynamicSqlSupport.id, BookIndexDynamicSqlSupport.bookId, BookIndexDynamicSqlSupport.indexNum, BookIndexDynamicSqlSupport.indexName, BookIndexDynamicSqlSupport.wordCount, BookIndexDynamicSqlSupport.updateTime, BookIndexDynamicSqlSupport.isVip) + .from(BookIndexDynamicSqlSupport.bookIndex) + .where(BookIndexDynamicSqlSupport.id, isEqualTo(bookIndexId)) + .limit(1) + .build() + .render(RenderingStrategies.MYBATIS3); + return bookIndexMapper.selectMany(selectStatement).get(0); + } + + @Override + public Map queryPreAndNextBookIndexId(Long bookId, Integer indexNum) { + Map result = new HashMap<>(2); + SelectStatementProvider selectStatement = select(BookIndexDynamicSqlSupport.id) + .from(BookIndexDynamicSqlSupport.bookIndex) + .where(BookIndexDynamicSqlSupport.bookId, isEqualTo(bookId)) + .and(BookIndexDynamicSqlSupport.indexNum, isLessThan(indexNum)) + .orderBy(BookIndexDynamicSqlSupport.indexNum.descending()) + .limit(1) + .build() + .render(RenderingStrategies.MYBATIS3); + List list = bookIndexMapper.selectMany(selectStatement); + if (list.size() == 0) { + result.put("preBookIndexId",0L); + } else { + result.put("preBookIndexId",list.get(0).getId()); + } + + selectStatement = select(BookIndexDynamicSqlSupport.id) + .from(BookIndexDynamicSqlSupport.bookIndex) + .where(BookIndexDynamicSqlSupport.bookId, isEqualTo(bookId)) + .and(BookIndexDynamicSqlSupport.indexNum, isGreaterThan(indexNum)) + .orderBy(BookIndexDynamicSqlSupport.indexNum) + .limit(1) + .build() + .render(RenderingStrategies.MYBATIS3); + list = bookIndexMapper.selectMany(selectStatement); + if (list.size() == 0) { + result.put("nextBookIndexId",0L); + } else { + result.put("nextBookIndexId",list.get(0).getId()); + } + + + return result; + } } diff --git a/novel-book/book-service/src/main/resources/mybatis/mapping/BookMapper.xml b/novel-book/book-service/src/main/resources/mybatis/mapping/BookMapper.xml new file mode 100644 index 0000000..0cccec5 --- /dev/null +++ b/novel-book/book-service/src/main/resources/mybatis/mapping/BookMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + update book set visit_count = visit_count + ${visitCount} + where id = #{bookId} + + + + + + + update book set comment_count = comment_count+1 + where id = #{bookId} + + + + + + + \ No newline at end of file diff --git a/novel-user/user-api/src/main/java/com/java2nb/novel/user/api/UserApi.java b/novel-user/user-api/src/main/java/com/java2nb/novel/user/api/UserApi.java index 33be2b3..16c5dc2 100644 --- a/novel-user/user-api/src/main/java/com/java2nb/novel/user/api/UserApi.java +++ b/novel-user/user-api/src/main/java/com/java2nb/novel/user/api/UserApi.java @@ -3,8 +3,11 @@ package com.java2nb.novel.user.api; import com.java2nb.novel.user.entity.User; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import java.util.List; + /** * 用户微服务API接口定义(内部) * @author xiongxiaoyang @@ -19,8 +22,16 @@ public interface UserApi { * @param password 密码 * @return 用户对象,不存在返回null * */ - @GetMapping("api/queryByUsernameAndPassword") + @GetMapping("api/user/queryByUsernameAndPassword") User queryByUsernameAndPassword(@RequestParam("username") String username, @RequestParam("password") String password); + /** + * 根据用户名ID集合查询用户集合信息 + * @param ids 用户ID集合 + * @return 用户集合对象 + * */ + @GetMapping("api/user/queryById") + List queryById(@RequestBody List ids); + } diff --git a/novel-user/user-api/src/main/java/com/java2nb/novel/user/entity/User.java b/novel-user/user-api/src/main/java/com/java2nb/novel/user/entity/User.java index 5bc1d6b..3298f42 100644 --- a/novel-user/user-api/src/main/java/com/java2nb/novel/user/entity/User.java +++ b/novel-user/user-api/src/main/java/com/java2nb/novel/user/entity/User.java @@ -3,9 +3,10 @@ package com.java2nb.novel.user.entity; import io.swagger.annotations.ApiModelProperty; import javax.annotation.Generated; +import java.io.Serializable; import java.util.Date; -public class User { +public class User implements Serializable { @ApiModelProperty(value = "主键") @Generated("org.mybatis.generator.api.MyBatisGenerator") private Long id; diff --git a/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/api/UserApi.java b/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/api/UserApi.java index a93f871..15a27ad 100644 --- a/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/api/UserApi.java +++ b/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/api/UserApi.java @@ -4,11 +4,11 @@ package com.java2nb.novel.user.controller.api; import com.java2nb.novel.user.entity.User; import com.java2nb.novel.user.service.UserService; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import java.util.List; + /** * 用户微服务API接口(内部调用) * @author xiongxiaoyang @@ -33,6 +33,16 @@ public class UserApi { } + /** + * 根据用户名ID集合查询用户集合信息 + * @param ids 用户ID集合 + * @return 用户集合对象 + * */ + @GetMapping("queryById") + List queryById(@RequestBody List ids){ + return userService.queryById(ids); + } + 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 523ac14..d9fa2c8 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 @@ -5,6 +5,8 @@ import com.java2nb.novel.common.bean.UserDetails; import com.java2nb.novel.user.entity.User; import com.java2nb.novel.user.form.UserForm; +import java.util.List; + /** * 用户服务接口 * @author xiongxiaoyang @@ -29,4 +31,10 @@ public interface UserService { UserDetails login(UserForm form); + /** + * 根据用户名ID集合查询用户集合信息 + * @param ids 用户ID集合 + * @return 用户集合对象 + * */ + List queryById(List ids); } 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 3fe11e9..1a5eb8c 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 @@ -18,6 +18,7 @@ import org.springframework.stereotype.Service; import java.util.List; import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo; +import static org.mybatis.dynamic.sql.SqlBuilder.isIn; import static org.mybatis.dynamic.sql.select.SelectDSL.select; /** @@ -62,4 +63,14 @@ public class UserServiceImpl implements UserService { userDetails.setUsername(form.getUsername()); return userDetails; } + + @Override + public List queryById(List ids) { + return userMapper.selectMany( + select(UserDynamicSqlSupport.id,UserDynamicSqlSupport.username, + UserDynamicSqlSupport.userPhoto) + .from(UserDynamicSqlSupport.user) + .where(UserDynamicSqlSupport.id,isIn(ids)).build() + .render(RenderingStrategies.MYBATIS3)); + } }