由于若依框架分页的实现,后端有很多限制因素,具体影响因素参考若依官网的在线文档
(http://doc.ruoyi.vip/),所以就自己写了一个后端实现分页的代码;
public TableDataInfo selectCourseManage(CusCourseManage cusCourseManage,String userId) {
//查询出来的数据
List<CusNewManage> list = cusCourseManageService.selectNewCourseManages(userId,cusCourseManage.getType());
//筛选出符合条件的数据,放入resultList中
List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
if (!list.isEmpty()) {
for (CusNewManage cusNewM : list) {
if (StringUtils.isNotBlank(cusNewM.getCourseManage())) {
CusCourseManage courseManage = cusCourseManageService
.selectCusCourseManageById(Long.parseLong(cusNewM.getCourseManage()));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("type", courseManage.getType());
resultMap.put("passTime", courseManage.getPassTime());
if (courseManage.getFlag().equals("0")) {
resultMap.put("flag", true);
} else {
resultMap.put("flag", false);
}
resultMap.put("materialId", courseManage.getMaterialId());
resultMap.put("id", cusNewM.getId());
resultMap.put("projectName", cusNewM.getProjectName());
resultMap.put("courseType", cusNewM.getCourseType());
resultList.add(resultMap);
}
}
}
//第几页
Long num = Long.valueOf(cusCourseManage.getPageNum());
//每页条数
Long size = Long.valueOf(cusCourseManage.getPageSize());
int number = 0;
//判断是否为第一页
if (num!=1){
num--;
number = Math.toIntExact(num * size);
size = (num * size)+size;
}
//定义要显示的list
List<Map<String, Object>> pageList = new ArrayList<Map<String, Object>>();
for (int i=number;i<size;i++){
if (resultList.size()>i){
pageList.add(resultList.get(i));
}else {
break;
}
}
return getDataTablePage(pageList,resultList.size());
}
public TableDataInfo getDataTablePage(List<?> list,int count) {
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(0);
rspData.setRows(list); //要显示的list
rspData.setTotal(count); //总数
return rspData;
}