ruoyi框架分页总条数total返回错误解决方案
原因:因为自己重新定义了分页方法,如:
就会出现总数返回数据错误问题 总数会变成当前页条数的
这是分页的核心,这里传过来的list 没有 instanceof Page 所以他就会获取list的长度去设置总条数,然而list总条数是已经分过页的,所有长度等于PageSize,这就是导致总条数失败的根本原因。
解决方案
package com.ruoyi.common.utils;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.page.TableSupport;
import com.ruoyi.common.utils.sql.SqlUtil;
import java.util.List;
public class PageUtils extends PageHelper {
private static Page page;
public static void startPage() {
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
Boolean reasonable = pageDomain.getReasonable();
PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
}
}
public static void startPage(Integer pageNum, Integer pageSize) {
PageDomain pageDomain = TableSupport.buildPageRequest();
pageDomain.setPageSize(pageSize);
pageDomain.setPageNum(pageNum);
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
Boolean reasonable = pageDomain.getReasonable();
page = PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
}
}
public static TableDataInfo getDataTable(List<?> list) {
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(page.getTotal());
return rspData;
}
}