优化方法的使用
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package responsex
|
||||
|
||||
import "math"
|
||||
|
||||
type Pagination struct {
|
||||
Page int64 `json:"page"`
|
||||
Size int64 `json:"size"`
|
||||
TotalPage int64 `json:"total_page"`
|
||||
TotalCount int64 `json:"total_count"`
|
||||
}
|
||||
|
||||
// 计算DB分页偏移量
|
||||
// page/size 小于等于 0 时取默认值(page=1,size=10),保证 offset/limit 永远合法
|
||||
func GetOffset(page, size int) (offset int, limit int) {
|
||||
if page <= 0 {
|
||||
page = 1
|
||||
}
|
||||
if size <= 0 {
|
||||
// 默认查10条
|
||||
size = 10
|
||||
}
|
||||
offset = (page - 1) * size
|
||||
limit = size
|
||||
return
|
||||
}
|
||||
|
||||
// 计算响应分页
|
||||
// size 小于等于 0 时不做除法,避免出现负数总页数
|
||||
func GetPage(page, size, totalCount int64) Pagination {
|
||||
pa := Pagination{}
|
||||
var totalPage int64
|
||||
if size > 0 {
|
||||
totalPage = int64(math.Ceil(float64(totalCount) / float64(size)))
|
||||
}
|
||||
pa.Page = page
|
||||
pa.Size = size
|
||||
pa.TotalPage = totalPage
|
||||
pa.TotalCount = totalCount
|
||||
return pa
|
||||
}
|
||||
Reference in New Issue
Block a user