package com.estate.expert.admin.domain.common.request;
|
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.AllArgsConstructor;
|
import lombok.Data;
|
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.Sort;
|
|
import javax.validation.constraints.Min;
|
|
@ApiModel("分页请求")
|
@Data
|
@AllArgsConstructor
|
public class PageReq {
|
|
@ApiModelProperty(value = "当前页", notes = "从0开始")
|
@Min(0)
|
private Integer page = 1;
|
|
@ApiModelProperty(value = "每页大小", notes = "从1开始")
|
@Min(1)
|
private Integer size = 10;
|
|
@ApiModelProperty(value = "排序字段", notes = "和查找的对象的字段名一致")
|
private String orderField = null;
|
|
@ApiModelProperty(value = "是否升序")
|
private boolean asc = true;
|
|
// default
|
public static PageReq defaultPageReq() {
|
return new PageReq(0, 10, null, true);
|
}
|
|
public static PageReq of(Integer currPage, Integer pageSize) {
|
return new PageReq(currPage, pageSize, null, true);
|
}
|
|
public static PageReq of(Integer currPage, Integer pageSize, String orderField, boolean asc) {
|
return new PageReq(currPage, pageSize, orderField, asc);
|
}
|
|
public static PageReq maxPageReq() {
|
return new PageReq(0, Integer.MAX_VALUE, null, true);
|
}
|
|
public PageRequest toPageRequest() {
|
if(orderField == null || orderField.isEmpty()) {
|
return PageRequest.of(page, size);
|
}
|
|
return PageRequest.of(page, size, asc ? Sort.by(orderField).ascending() : Sort.by(orderField).descending());
|
}
|
|
|
}
|