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 copyTo(QueryResultVo to){ 
 | 
        to.pageSize = this.pageSize ; 
 | 
        to.itemTotal = this.itemTotal  ; 
 | 
        to.pageCurr = this.pageCurr  ; 
 | 
        to.pageTotal = this.pageTotal  ; 
 | 
        to.obj = this.obj ; 
 | 
        to.queryStart = this.queryStart  ; 
 | 
        to.queryCount = this.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 = 10 ; 
 | 
        } 
 | 
        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 ; 
 | 
  
 | 
        if(params != null){ 
 | 
            params.put("start", this.queryStart) ; 
 | 
            params.put("count", this.queryCount) ; 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |