物理分页工具类
package com.yutu.garden.utils;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class PageUtils {
public static <T> List<T> startPage(List<T> list, Integer current, Integer size) {
if (CollectionUtils.isEmpty(list)) {
return list;
}
return list.stream().skip((current - 1) * size).limit(size).collect(Collectors.toList());
}
}
接收参数VO类
package com.yutu.garden.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class SanitationJobStatisticsStaffParamVo {
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("当前页")
private Long current;
@ApiModelProperty("每页的数量")
private Long size;
}
核心代码
- sanitationJobStatisticsStaffVoArrayList:是数据库中查出来的数据
- sanitationJobStatisticsStaffParamVo:是接收参数VO类
List<SanitationJobStatisticsStaffVo> sanitationJobStatisticsStaffVosPage = PageUtils.startPage(sanitationJobStatisticsStaffVoArrayList, Integer.parseInt(sanitationJobStatisticsStaffParamVo.getCurrent().toString()), Integer.parseInt(sanitationJobStatisticsStaffParamVo.getSize().toString()));
map.put("tableData",sanitationJobStatisticsStaffVosPage);
if (StringUtils.isNotEmpty(sanitationJobStatisticsStaffParamVo.getName())){
List<SanitationJobStatisticsStaffVo> collectLikeSelect = sanitationJobStatisticsStaffVoArrayList.stream().filter(sanitationJobStatisticsStaffVo -> sanitationJobStatisticsStaffVo.getName().toLowerCase().contains(sanitationJobStatisticsStaffParamVo.getName().toLowerCase())).collect(Collectors.toList());
List<SanitationJobStatisticsStaffVo> sanitationJobStatisticsStaffVosLikePage = PageUtils.startPage(collectLikeSelect, Integer.parseInt(sanitationJobStatisticsStaffParamVo.getCurrent().toString()), Integer.parseInt(sanitationJobStatisticsStaffParamVo.getSize().toString()));
map.put("tableData",sanitationJobStatisticsStaffVosLikePage);
}