mirror of
https://github.com/201206030/novel-cloud.git
synced 2025-04-27 01:40:50 +00:00
首页微服务开发完成,小说微服务开发中
This commit is contained in:
parent
7edd79a5f2
commit
bcd1caf7a8
12
README.md
12
README.md
@ -83,11 +83,17 @@ novel-cloud
|
||||
|
||||

|
||||
|
||||
4. 门户网站
|
||||
|
||||
|
||||

|
||||
4. 接口文档
|
||||
|
||||
|
||||

|
||||
|
||||
5. 门户网站
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
#### 项目文档
|
||||
|
||||
|
BIN
assert/QQ20200528-200023.png
Normal file
BIN
assert/QQ20200528-200023.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 133 KiB |
@ -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);
|
||||
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user