base.go 783 B

12345678910111213141516171819202122232425262728293031323334
  1. package service
  2. import (
  3. "context"
  4. "math"
  5. )
  6. type Base struct {
  7. }
  8. type Page struct {
  9. Count int64 `json:"total"`
  10. CurrentPage int `json:"currentPage"`
  11. TotalPage int `json:"totalPage"`
  12. Start int `json:"start"`
  13. End int `json:"end"`
  14. PageSize int `json:"pageSize"`
  15. LimitStart int `json:"limitStart"`
  16. }
  17. func NewBase(ctx context.Context) *Base {
  18. return &Base{}
  19. }
  20. func (b *Base) InitPages(count int64, page, pageSize int) Page {
  21. var pages Page
  22. pages.Count = count
  23. page = int(math.Max(1, float64(page)))
  24. pages.CurrentPage = int(math.Min(float64(page), float64(count)))
  25. pages.TotalPage = int(math.Ceil(float64(count) / float64(pageSize)))
  26. pages.PageSize = pageSize
  27. pages.LimitStart = (pages.CurrentPage - 1) * pageSize
  28. return pages
  29. }