Database Pagination in beego

Database pagination in beego

  func PageDB(limit int, page int, count int64) (int, int) {
      pageSetNum := limit // items per page

      pageCount := math.Ceil((float64(count)) / (float64(pageSetNum))) // total pages
      pageNum := page                                                  // current page number

      if pageNum > int(pageCount) { // if the page number passed in is out of range
          pageNum = int(pageCount)
      }
      offset := pageSetNum * (pageNum - 1)
      if offset < 0 {
          offset = 0
      }
      return pageSetNum, offset
  }