PageVO.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package com.mokasz.sample.common.model;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import io.swagger.annotations.ApiModel;
  4. import lombok.AllArgsConstructor;
  5. import lombok.Builder;
  6. import lombok.Data;
  7. import lombok.NoArgsConstructor;
  8. import java.io.Serializable;
  9. import java.util.List;
  10. @ApiModel(value = "分页返回类")
  11. @Data
  12. @Builder
  13. @NoArgsConstructor
  14. @AllArgsConstructor
  15. public class PageVO<T> implements Serializable {
  16. /**
  17. * @param page page current 从1开始
  18. */
  19. public PageVO(IPage<T> page) {
  20. this.list = page.getRecords();
  21. this.total = page.getTotal();
  22. this.hasNextPage = page.getCurrent() * page.getSize() < total;
  23. }
  24. /**
  25. * @param list 分页数据列表
  26. * @param total 总数
  27. * @param basePageQuery 页码信息(pageIndex从1开始)
  28. */
  29. public PageVO(List<T> list, Long total, BasePageQuery basePageQuery) {
  30. this.list = list;
  31. this.total = total;
  32. //(pageIndex-1)*pageSize+pageSize<total
  33. this.hasNextPage = (long) basePageQuery.getPageNum() * basePageQuery.getPageSize() < total;
  34. }
  35. private List<T> list;
  36. private Long total;
  37. private Boolean hasNextPage;
  38. }