package com.dy.common.webUtil;
|
|
|
import com.alibaba.fastjson2.annotation.JSONField;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import lombok.*;
|
|
import java.util.Map;
|
|
@Data
|
@ToString
|
@NoArgsConstructor
|
@AllArgsConstructor
|
@Builder
|
@Schema(name = "查询结果基类")
|
public class QueryResultVo<T> {
|
|
/**
|
* 每页显示的记录数
|
*/
|
@Schema(description = "每页记录数")
|
public Integer pageSize ;
|
/**
|
* 记录总数
|
*/
|
@Schema(description = "记录总数")
|
public Long itemTotal ;
|
/**
|
* 当前页
|
*/
|
@Schema(description = "当前页")
|
public Integer pageCurr ;
|
/**
|
* 总页数
|
*/
|
@Schema(description = "总页数")
|
public Integer pageTotal ;
|
|
@Schema(description = "数据")
|
public T obj;
|
|
/**
|
* 查询开始记录
|
*/
|
@Schema(hidden = true)
|
@JSONField(serialize = false)
|
public Integer queryStart ;
|
|
/**
|
* 查询数量
|
*/
|
@Schema(hidden = true)
|
@JSONField(serialize = false)
|
public Integer queryCount ;
|
|
|
public void calculateAndSet(Long itemTotal, Map<String, Object> params) {
|
this.itemTotal = itemTotal ;
|
if(this.itemTotal == null){
|
this.itemTotal = 0L ;
|
}
|
|
if(this.itemTotal == 0){
|
this.pageSize = 1 ;
|
}
|
if(this.pageSize == null || this.pageSize <= 0){
|
/**
|
* 朱宝民 2024-01-30 修改
|
* 未传入分页参数时,取全部记录
|
*/
|
//this.pageSize = 1 ;//供下面作为除数
|
this.pageSize = 10 ;//供下面作为除数
|
}
|
|
pageTotal = (int)Math.ceil((itemTotal==null?0.0D:itemTotal.doubleValue())/pageSize);
|
|
if (pageTotal == 0) {
|
pageTotal = 1;
|
}
|
if (pageCurr == null || pageCurr < 1) {
|
pageCurr = 1;
|
}
|
if (pageCurr > pageTotal) {
|
pageCurr = pageTotal;
|
}
|
|
//select * from table_name limit 5 ,10;//从第6行开始,检索10行记录,即:检索记录行 6-15
|
this.queryStart = (this.pageCurr - 1) * this.pageSize ;
|
this.queryCount = this.pageSize ;
|
|
params.put("start", this.queryStart) ;
|
params.put("count", this.queryCount) ;
|
}
|
|
}
|