//分页对象
@Data
public class PageSimpleVO<T> {
//当前页
private Integer currentPage;
// 总数
private Integer totalNumber;
// 列表
private List<T> list;
// 其他数据
private Map<String,Object> map;
public PageSimpleVO() {
}
public PageSimpleVO(Integer totalNumber, List<T> list) {
this.totalNumber = totalNumber;
this.list = list;
}
public PageSimpleVO(Integer totalNumber, List<T> list, Map<String, Object> map) {
this.totalNumber = totalNumber;
this.list = list;
this.map = map;
}
public PageSimpleVO(Integer currentPage,Integer totalNumber, List<T> list) {
this.currentPage =currentPage;
this.totalNumber = totalNumber;
this.list = list;
}
}
//控制器
@GetMapping("/queryUser")
public ResultVo queryUsertHDPage(@Valid UserVo user, @Valid EntyPage page) {
Map<String, Object> map = new HashMap<>();
map.put("user", user);
map.put("page", page);
List<User> users= userService.queryUsertHDPage(map);
PageSimpleVO<User> userPage = new PageSimpleVO<>(page.getCurrentPage(),page.getTotalNumber(),users);
return ResultVOUtils.success(userPage);
}
//返回对象
@Data
public class ResultVo<T> {
private Integer code;
private String message;
private T data;
}
//分页对应实体类
@Data
public class EntyPage implements java.io.Serializable {
public EntyPage() {
}
public EntyPage(@NotNull(message = "请选择第几页") @Min(message = "分页参数错误", value = 1) int currentPage, @NotNull(message = "请填写每页查询数量") @Min(value = 1, message = "分页参数不能小于1") @Max(value = 50, message = "分页参数不能大于50") int pageSize) {
this.currentPage = currentPage;
this.pageSize = pageSize;
}
/**
*
*/
private static final long serialVersionUID = 1173808L;
/**
* 总条数
*/
private int totalNumber;
/**
* 当前第几页
*/
@NotNull(message = "请选择第几页")
@Min(message = "分页参数错误", value = 1)
private int currentPage;
/**
* 总页数
*/
private int totalPage;
/**
* 每页显示条数
*/
@NotNull(message = "请填写每页查询数量")
@Min(value = 1, message = "分页参数不能小于1")
@Max(value = 50, message = "分页参数不能大于50")
private int pageSize = 10;
/**
* 数据库中limit的参数,从第几条开始取
*/
private int dbOffset;
/**
* 数据库中limit的参数,一共取多少条
*/
private int dbSize;
/**
* 有下一页
*/
private Boolean hasNextPage;
/**
* 有上一页
*/
private Boolean hasLastPage;
/**
* 下一页
*/
private Integer nextPage;
/**
* 上一页
*/
private Integer lastPage;
// 该页是否有下一页.
public Boolean getHasNextPage() {
hasNextPage = currentPage < totalPage;
return hasNextPage;
}
// 该页是否有上一页.
public Boolean getHasLastPage() {
hasLastPage = currentPage > 1;
return hasLastPage;
}
// 获取上一页页数
public int getLastPage() {
if (getHasLastPage()) {
lastPage = currentPage - 1;
} else {
lastPage = currentPage;
}
return lastPage;
}
public int getNextPage() {
if (getHasNextPage()) {
nextPage = currentPage + 1;
} else {
nextPage = currentPage;
}
return nextPage;
}
/**
* 根据当前对象中属性值计算并设置相关属性值
*/
public void count() {
// 计算总页数
int totalPageTemp = this.totalNumber / this.pageSize;
int plus = (this.totalNumber % this.pageSize) == 0 ? 0 : 1;
totalPageTemp = totalPageTemp + plus;
if (totalPageTemp <= 0) {
totalPageTemp = 1;
}
this.totalPage = totalPageTemp;
// 当前页数小于1设置为1
if (this.currentPage < 1) {
this.currentPage = 1;
}
// 设置limit的参数
this.dbOffset = (this.currentPage - 1) * this.pageSize;
this.dbSize = this.pageSize;
}
public void setTotalNumber(int totalNumber) {
this.totalNumber = totalNumber;
this.count();
}
}
/**
- 返回结果的操作类
*/
public class ResultVOUtils {
/**
* 成功时返回
* @param data 返回的data对象
* @return {@link ResultVo}
*/
public static ResultVo success(Object data) {
ResultVo<Object> resultVO = new ResultVo<Object>();
resultVO.setCode(0);
resultVO.setMessage("success");
resultVO.setData(data);
return resultVO;
}
/**
* 成功时返回
* @return {@link ResultVo}
*/
public static ResultVo success() {
Map data = new HashMap();
return success(data);
}
/**
* 错误时返回
* @param code 错误码
* @param message 错误信息
* @return {@link ResultVo}
*/
public static ResultVo error(Integer code, String message) {
ResultVo<Object> resultVO = new ResultVo<>();
resultVO.setCode(code);
resultVO.setMessage(message);
Map data = new HashMap();
resultVO.setData(data);
return resultVO;
}
public static ResultVo error(Integer code, String message,Object o) {
ResultVo<Object> resultVO = new ResultVo<>();
resultVO.setCode(code);
resultVO.setMessage(message);
Map data = new HashMap();
resultVO.setData(o);
return resultVO;
}
/**
* 错误时返回
* @param resultEnum 错误枚举类
* @return {@link ResultVo}
*/
public static ResultVo error(ResultEnum resultEnum) {
return error(resultEnum.getCode(), resultEnum.getMessage());
}
/**
* 错误时返回
* @param resultEnum 错误枚举类
* @param message 错误的信息
* @return {@link ResultVo}
*/
public static ResultVo error(ResultEnum resultEnum, String message) {
return error(resultEnum.getCode(), message);
}
}