package com.nuvole.common.domain.result;
|
|
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.util.NumberUtil;
|
import com.nuvole.util.BeanUtil;
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
import lombok.NoArgsConstructor;
|
|
import java.io.Serializable;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
// @formatter:off
|
/**
|
* .-~~~~~~~~~-._ _.-~~~~~~~~~-.
|
* __.' @Author ~. .~ 代码无Bug `.__
|
* .'// liu.q \./ (秘籍) \\`.
|
* .'// [916000612@qq.com] | 欲练神功 引刀自宫 \\`.
|
* .'// .-~"""""""~~~~-._ | _,-~~~~"""""""~-. \\`.
|
* .'//.-" 2019-04-09 `-. | .-' 11:35 "-.\\`.
|
* .'//______.============-.. \ | / ..-============.______\\`.
|
*.'______________________________\|/______________________________`.
|
*
|
* @Description :
|
*/
|
// @formatter:on
|
|
@Data
|
@NoArgsConstructor
|
@ApiModel("列表 返回结果列表封装")
|
public class PageBean<T> implements Serializable {
|
private static final long serialVersionUID = 1000L;
|
|
@ApiModelProperty("总记录数")
|
private Integer total; //总记录数
|
@ApiModelProperty("结果集")
|
private List<T> rows; //结果集
|
@ApiModelProperty("第几页")
|
private int pageNumber; //第几页
|
@ApiModelProperty("每页记录数")
|
private int pageSize; //每页记录数
|
@ApiModelProperty("总页数")
|
private int pages; // 总页数
|
@ApiModelProperty("当前页的数量<=pageSize")
|
private int size; //当前页的数量<=pageSize
|
|
public PageBean(Object obj) {
|
Map map = BeanUtil.obj2Map(obj);
|
if(map!=null){
|
this.pageNumber = Convert.toInt(map.get("pageNum"));
|
this.pageSize = Convert.toInt(map.get("pageSize"));
|
this.total = Convert.toInt(map.get("total"));
|
this.pages = Convert.toInt(map.get("pages"));
|
this.rows = obj == null ? new ArrayList<>() : (List<T>)obj;
|
this.size = this.rows.size();
|
}
|
}
|
|
public void setData(List list){
|
if(list != null && list.size() >0){
|
this.total = list.size();
|
//分页
|
if (this.total > 0) {
|
int start = Convert.toInt(NumberUtil.mul(pageNumber-1, pageSize));
|
int end = Convert.toInt(NumberUtil.mul(pageNumber,pageSize));
|
if (start <= total) {
|
if (end > total) {
|
end = total;
|
}
|
this.rows = list.subList(start, end);
|
} else {
|
this.rows = new ArrayList<>();
|
}
|
}
|
}
|
}
|
|
}
|