git.zd.zone/hrpc/hrpc@v0.0.12/utils/pagination/pagination.go (about)

     1  package pagination
     2  
     3  import "fmt"
     4  
     5  type Pagination struct {
     6  	Page  int64 `json:"page"`  // 页码,最小是1
     7  	Size  int64 `json:"size"`  // 每页大小,最小是1
     8  	Total int64 `json:"total"` // 总数
     9  }
    10  
    11  // SQLStatement 转换成SQL语句的格式
    12  // 如page=1,size=10 则返回结果是:0,10
    13  func (p Pagination) SQLStatement() string {
    14  	return fmt.Sprintf("%d,%d", (p.Page-1)*p.Size, p.Size)
    15  }
    16  
    17  // Limit 适用于MongoDB的limit参数
    18  // 同样也适用于MySQL的 LIMIT x OFFSET y 的格式里的x
    19  func (p Pagination) Limit() int64 {
    20  	return p.Size
    21  }
    22  
    23  // Skip 适用于MongoDB的Skip参数
    24  // 同样也适用于MySQL的 LIMIT x OFFSET y 的格式里的y
    25  func (p Pagination) Skip() int64 {
    26  	return (p.Page - 1) * p.Size
    27  }