BasePage.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.zanxiang.common.base;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.fasterxml.jackson.annotation.JsonFormat;
  5. import io.swagger.annotations.ApiModelProperty;
  6. import lombok.Data;
  7. import org.springframework.format.annotation.DateTimeFormat;
  8. import javax.validation.constraints.Max;
  9. import javax.validation.constraints.Min;
  10. import javax.validation.constraints.NotNull;
  11. import java.time.LocalDate;
  12. /**
  13. * @author : lingfeng
  14. * @time : 2022-06-22
  15. * @description : 分页通用参数
  16. */
  17. @Data
  18. public class BasePage<T> {
  19. /**
  20. * 当前记录起始索引
  21. */
  22. @NotNull(message = "当前页数不可为空")
  23. @Min(value = 1, message = "起始页最小为 1")
  24. @ApiModelProperty(value = "当前记录起始索引")
  25. private Integer pageNum;
  26. /**
  27. * 每页显示记录数
  28. */
  29. @NotNull(message = "单页数量不可为空")
  30. @Min(value = 1, message = "页面大小(2~200)之间")
  31. @Max(value = 200, message = "页面大小(2~200)之间")
  32. @ApiModelProperty(value = "每页显示记录数")
  33. private Integer pageSize;
  34. /**
  35. * 开始时间
  36. */
  37. @JsonFormat(pattern = "yyyy-MM-dd")
  38. @DateTimeFormat(pattern = "yyyy-MM-dd")
  39. @ApiModelProperty(value = "开始时间")
  40. private LocalDate beginDate;
  41. /**
  42. * 结束时间
  43. */
  44. @JsonFormat(pattern = "yyyy-MM-dd")
  45. @DateTimeFormat(pattern = "yyyy-MM-dd")
  46. @ApiModelProperty(value = "结束时间")
  47. private LocalDate endDate;
  48. /**
  49. * 构造方法
  50. *
  51. * @return : 返回分页对象
  52. */
  53. public IPage<T> toPage() {
  54. return new Page<>(pageNum, pageSize);
  55. }
  56. }