DataPackageInfoDto dataPackageInfoDto = PackageMap.get(dataSourceName);
List<String> losePackageList = dataPackageInfoDto.getLosePackage();
int size = losePackageList.size();
PageDataDTO pageDataDTO=new PageDataDTO();
if (size == 0) {
pageDataDTO.setTotal(0);
pageDataDTO.setList(new ArrayList<>());
return pageDataDTO;
}
pageDataDTO.setTotal(size);
ImmutablePair<Integer, Integer> pageParam = pageDataDTO.getPageIndex2(page, limit, size);
if (pageParam.right + 1 < size) {
size = pageParam.right + 1;
}
losePackageList = losePackageList.subList(pageParam.left, size);
pageDataDTO.setList(losePackageList);
public class DataPackageInfoDto implements Serializable {
private static final long serialVersionUID = 3452430382672705286L;
private int wholePackageCount;
private int realPackageCount;
private int losePackageCount;
private List<String> losePackage;
}
分页工具类:
package com.siact.dataBoard.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.tuple.ImmutablePair;
import java.io.Serializable;
import java.util.List;
/**
* 分页工具类
*/
@Data
@ApiModel(value = "分页数据")
public class PageDataDTO<T> implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "总记录数")
private long total;
@ApiModelProperty(value = "列表数据")
private List<T> list;
/**
* 分页
* @param list 列表数据
* @param total 总记录数
*/
public PageDataDTO(List<T> list, long total) {
this.list = list;
this.total = (int)total;
}
public PageDataDTO() {
}
public ImmutablePair<Long,Long> getPageIndex(Integer index, Integer size, long total) {
long start = (index - 1) * size;
long offset = start + size - 1;
if (offset >= total) {
offset = total;
}
return ImmutablePair.of(start, offset);
}
public ImmutablePair<Integer,Integer> getPageIndex2(Integer index, Integer size, int total) {
int start = (index - 1) * size;
int offset = start + size - 1;
if (offset >= total) {
offset = total;
}
return ImmutablePair.of(start, offset);
}
}