package common const ( defaultPageSize = 10 ) type PageRequest struct { Page int `json:"page"` PageSize int `json:"page_size"` } type PageResponse struct { Page int `json:"page"` PageSize int `json:"page_size"` TotalCount int64 `json:"total_count"` } type Paginator struct { Page int PageSize int LimitStart int } // 根据分页请求,获取分页结果 func (this PageRequest) GetPaginator() Paginator { return getPaginator(this.Page, this.PageSize) } func getPaginator(page int, pageSize int) Paginator { paginator := Paginator{} if pageSize == 0 { paginator.PageSize = defaultPageSize } else { paginator.PageSize = pageSize } if page == 0 { paginator.Page = 1 paginator.LimitStart = 0 } else { paginator.Page = page paginator.LimitStart = (paginator.Page - 1) * paginator.PageSize } return paginator } // 根据分页结果,获取分页响应 func (this Paginator) GetPageResponse(count int64) PageResponse { return PageResponse{ Page: this.Page, PageSize: this.PageSize, TotalCount: count, } }