package service import ( "context" "math" ) type Base struct { } type Page struct { Count int64 `json:"total"` CurrentPage int `json:"currentPage"` TotalPage int `json:"totalPage"` Start int `json:"start"` End int `json:"end"` PageSize int `json:"pageSize"` LimitStart int `json:"limitStart"` } func NewBase(ctx context.Context) *Base { return &Base{} } func (b *Base) InitPages(count int64, page, pageSize int) Page { var pages Page pages.Count = count page = int(math.Max(1, float64(page))) pages.CurrentPage = int(math.Min(float64(page), float64(count))) pages.TotalPage = int(math.Ceil(float64(count) / float64(pageSize))) pages.PageSize = pageSize pages.LimitStart = (pages.CurrentPage - 1) * pageSize return pages }