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

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

@ -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);
}
}