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 }