有些特殊情况下我们不需要查库但前端数据需要分页,我们就需要手写分页实现,比如在线用户的功能我们可能会去Redis中查有哪些用户,然后返回给前端,但前端需要分页处理,我们就需要实现手动分页,话不多说直接上代码
/**
* 手动分页...
*
* @param pageNum 页码
* @param pageSize 页大小
* @param list 要分页的数据
* @return 结果
*/
public static TableDataInfo page(int pageNum, int pageSize, List<SysUserOnline> list) {
// 得到总条数
int total = list.size();
// 结果集
List<SysUserOnline> res = new ArrayList<>();
// 计算当前页
int startValue = pageNum > 1 ? (pageNum - 1) * pageSize : 0;
// 计算返回的数据
for (int i = startValue; i < total && res.size() < pageSize; i++) {
res.add(list.get(i));
}
// 返回数据
TableDataInfo dataInfo = new TableDataInfo();
dataInfo.setCode(HttpStatus.SUCCESS);
dataInfo.setMsg("查询成功");
dataInfo.setRows(res);
dataInfo.setPageNum(pageNum);
dataInfo.setPageSize(pageSize);
dataInfo.setTotal(total);
// 计算总页数
dataInfo.setPages(total % pageSize == 0 ? total / pageSize : (total / pageSize) + 1);
return dataInfo;
}
效果:
版权所有:XuanRan
未经书面授权,禁止转载