● 当Service层有多个查询时,ruoyi自带分页会出错,因为startPage()只对第一个查询有效,第二个查询无效;
● 当多个集合进行拼接时,同样会出现上述情况,因为ruoyi会默认对第一个查询进行分页,拼接还会导致总条数出现问题
解决:此处我们自己封装一个ruoyi的工具类,对这种情况进行分页处理
java
public class ManualPagination {
public static TableDataInfo pagination(List<?> list) {
// 数据手动分页
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setRows(
list.stream().skip((long) (pageNum - 1) * pageSize)
.limit(pageSize)
.collect(Collectors.toList()));
rspData.setTotal(list.size());
return rspData;
}
}