Files
responsex/utils.go
T
2026-09-19 01:31:34 +08:00

41 lines
895 B
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}