/**
* 列表页面
* 集合转换
*
* @param list 列表
* @param page 页面
* @param size 大小
* @return {@link Page}<{@link T}>
*/
public static <T> Page<T> listToPage(List<T> list, Integer page, Integer size){
Page<T> page1 = new Page<>(page,size);
page1.setTotal(list.size());
int startIndex = (page - 1) * size;
if(CollectionUtils.isEmpty(list)){
page1.setRecords(null);
}
else {
int endIndex = page * size;
//集合的截取 startIndex(包含) endIndex(不包含)
page1.setRecords(list.subList(startIndex,endIndex > list.size() ? list.size() : endIndex));
}
return page1;
}
使用代码
public Page<ProjectInitiaPo> listAll(ProjectInitiaVo projectInitia, Integer page, Integer size) {
List<Long> lis = new ArrayList();
QueryWrapper<ProjectInitiaPo> qw = new QueryWrapper<>();
Page<ProjectInitiaPo> page1 = null;
Page<ProjectInitiaPo> pages = null;
if (!StringUtils.isEmpty(projectInitia.getHead())){
QueryWrapper<ProjectExpenseWayPo> wp = new QueryWrapper<>();
wp.eq(!StringUtils.isEmpty(projectInitia.getHead()),"head",projectInitia.getHead());
List<ProjectExpenseWayPo> list = projectExpenseWayService.list(wp);
Map<Long, ProjectExpenseWayPo> map = list.stream().collect(Collectors.toMap(ProjectExpenseWayPo::getInitiaId, s -> s, (k1, k2) -> k1));
Set<Long> set = map.keySet();
for (Long o :set) {
ProjectExpenseWayPo pwo = map.get(o);
lis.add(pwo.getInitiaId());
}
List<ProjectInitiaPo> initiaPoList = lis.stream().map(ite -> {
ProjectInitiaPo byId = projectInitiaService.findById(ite);
return byId;
}).collect(Collectors.toList());
//此处调用
page1 = listToPage(initiaPoList,page,size);
}
}