首页微服务开发完成,小说微服务开发中

This commit is contained in:
xiongxiaoyang 2020-05-28 20:03:05 +08:00
parent 7edd79a5f2
commit bcd1caf7a8
11 changed files with 183 additions and 6 deletions

View File

@ -83,9 +83,15 @@ novel-cloud
![QQ20200520-215756](./assert/QQ20200528-020543.png)
4. 门户网站
![QQ20200520-215756](./assert/pc_index.png)
4. 接口文档
![QQ20200520-215756](./assert/QQ20200528-200023.png)
5. 门户网站
![QQ20200520-215756](./assert/pc_index.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

View File

@ -33,5 +33,14 @@ public interface BookApi {
@GetMapping("api/book/queryBookByIds")
List<Book> queryBookByIds(@RequestBody List<Long> ids);
/**
* 小说排行数据查询列表
* @param type 排行类型1更新排行2新书排行3评论排行
* @param limit 查询数量
* @return 书籍列表
* */
@GetMapping("api/book/listRank")
List<Book> listRank(@RequestParam("type") Byte type, @RequestParam("limit") Integer limit);
}

View File

@ -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 Book {
public class Book implements Serializable {
@ApiModelProperty(value = "主键")
@Generated("org.mybatis.generator.api.MyBatisGenerator")
private Long id;

View File

@ -0,0 +1,22 @@
package com.java2nb.novel.book.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.java2nb.novel.book.entity.Book;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @author Administrator
*/
@Data
public class BookVO extends Book{
@ApiModelProperty(value = "最新目录更新时间")
@JsonFormat(timezone = "GMT+8", pattern = "MM/dd HH:mm")
private Date lastIndexUpdateTime;
}

View File

@ -48,5 +48,16 @@ public class BookApi {
return bookService.queryBookByIds(ids);
}
/**
* 小说排行数据查询列表
* @param type 排行类型1更新排行2新书排行3评论排行
* @param limit 查询数量
* @return 书籍列表
* */
@GetMapping("listRank")
List<Book> listRank(Byte type, Integer limit){
return bookService.listRank(type,limit);
}
}

View File

@ -1,7 +1,6 @@
package com.java2nb.novel.book.service;
import com.java2nb.novel.book.entity.Book;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.Date;
import java.util.List;
@ -28,4 +27,12 @@ public interface BookService {
* @return 书籍列表
* */
List<Book> queryBookByIds(List<Long> ids);
/**
* 小说排行数据查询列表
* @param type 排行类型1更新排行2新书排行3评论排行
* @param limit 查询数量
* @return 书籍列表
* */
List<Book> listRank(Byte type, Integer limit);
}

View File

@ -5,7 +5,9 @@ import com.java2nb.novel.book.mapper.BookDynamicSqlSupport;
import com.java2nb.novel.book.mapper.BookMapper;
import com.java2nb.novel.book.service.BookService;
import lombok.RequiredArgsConstructor;
import org.mybatis.dynamic.sql.SortSpecification;
import org.mybatis.dynamic.sql.render.RenderingStrategies;
import org.mybatis.dynamic.sql.select.render.SelectStatementProvider;
import org.springframework.stereotype.Service;
import java.util.Date;
@ -49,4 +51,43 @@ public class BookServiceImpl implements BookService {
.render(RenderingStrategies.MYBATIS3)
);
}
@Override
public List<Book> listRank(Byte type, Integer limit) {
SortSpecification sortSpecification = BookDynamicSqlSupport.visitCount.descending();
switch (type) {
case 1: {
//最新入库排序
sortSpecification = BookDynamicSqlSupport.createTime.descending();
break;
}
case 2: {
//最新更新时间排序
sortSpecification = BookDynamicSqlSupport.lastIndexUpdateTime.descending();
break;
}
case 3: {
//评论数量排序
sortSpecification = BookDynamicSqlSupport.commentCount.descending();
break;
}
default: {
break;
}
}
SelectStatementProvider selectStatement =
select(BookDynamicSqlSupport.id, BookDynamicSqlSupport.catId,
BookDynamicSqlSupport.catName, BookDynamicSqlSupport.bookName,
BookDynamicSqlSupport.lastIndexId, BookDynamicSqlSupport.lastIndexName,
BookDynamicSqlSupport.authorId, BookDynamicSqlSupport.authorName,
BookDynamicSqlSupport.picUrl, BookDynamicSqlSupport.bookDesc,
BookDynamicSqlSupport.wordCount, BookDynamicSqlSupport.lastIndexUpdateTime)
.from(book)
.where(BookDynamicSqlSupport.wordCount, isGreaterThan(0))
.orderBy(sortSpecification)
.limit(limit)
.build()
.render(RenderingStrategies.MYBATIS3);
return bookMapper.selectMany(selectStatement);
}
}

View File

@ -1,5 +1,7 @@
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;
@ -58,4 +60,30 @@ public class HomeController {
}
/**
* 首页点击榜单查询接口
* */
@ApiOperation("首页点击榜单查询接口")
@GetMapping("listClickRank")
public ResultBean<List<Book>> listClickRank(){
return ResultBean.ok(homeService.listClickRank());
}
/**
* 首页新书榜单查询接口
* */
@ApiOperation("首页点击榜单查询接口")
@GetMapping("listNewRank")
public ResultBean<List<Book>> listNewRank(){
return ResultBean.ok(homeService.listNewRank());
}
/**
* 首页更新榜单查询接口
* */
@ApiOperation("首页点击榜单查询接口")
@GetMapping("listUpdateRank")
public ResultBean<List<BookVO>> listUpdateRank(){
return ResultBean.ok(homeService.listUpdateRank());
}
}

View File

@ -1,7 +1,8 @@
package com.java2nb.novel.home.service;
import com.java2nb.novel.home.entity.HomeBook;
import com.java2nb.novel.book.entity.Book;
import com.java2nb.novel.book.vo.BookVO;
import com.java2nb.novel.home.entity.HomeFriendLink;
import com.java2nb.novel.home.vo.HomeBookVO;
import com.java2nb.novel.news.entity.News;
@ -34,4 +35,22 @@ public interface HomeService {
* @return 新闻列表集合
* */
List<News> listIndexNews();
/**
* 首页点击榜单查询接口
* @return 小说数据集合
* */
List<Book> listClickRank();
/**
* 首页新书榜单查询接口
* @return 小说数据集合
* */
List<Book> listNewRank();
/**
* 首页更新榜单查询接口
* @return 小说数据集合
* */
List<BookVO> listUpdateRank();
}

View File

@ -2,8 +2,10 @@ package com.java2nb.novel.home.service.impl;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.java2nb.novel.book.entity.Book;
import com.java2nb.novel.book.vo.BookVO;
import com.java2nb.novel.common.cache.CacheKey;
import com.java2nb.novel.common.cache.CacheService;
import com.java2nb.novel.common.utils.BeanUtil;
import com.java2nb.novel.common.utils.Constants;
import com.java2nb.novel.home.entity.HomeBook;
import com.java2nb.novel.home.entity.HomeFriendLink;
@ -111,4 +113,35 @@ public class HomeServiceImpl implements HomeService {
}
return result;
}
@Override
public List<Book> listClickRank() {
List<Book> result = (List<Book>) cacheService.getObject(CacheKey.INDEX_CLICK_BANK_BOOK_KEY);
if (result == null || result.size() == 0) {
result = bookFeignClient.listRank((byte) 0, 10);
cacheService.setObject(CacheKey.INDEX_CLICK_BANK_BOOK_KEY, result, 5000);
}
return result;
}
@Override
public List<Book> listNewRank() {
List<Book> result = (List<Book>) cacheService.getObject(CacheKey.INDEX_NEW_BOOK_KEY);
if (result == null || result.size() == 0) {
result = bookFeignClient.listRank((byte) 1, 10);
cacheService.setObject(CacheKey.INDEX_NEW_BOOK_KEY, result, 3600);
}
return result;
}
@Override
public List<BookVO> listUpdateRank() {
List<BookVO> result = (List<BookVO>) cacheService.getObject(CacheKey.INDEX_UPDATE_BOOK_KEY);
if (result == null || result.size() == 0) {
List<Book> bookPOList = bookFeignClient.listRank((byte) 2, 23);
result = BeanUtil.copyList(bookPOList, BookVO.class);
cacheService.setObject(CacheKey.INDEX_UPDATE_BOOK_KEY, result, 60 * 10);
}
return result;
}
}