高级排程
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.0 KiB

package grmi
import (
"strconv"
)
const (
PageSize = "pageSize"
PageNumber = "pageNumber"
)
type Paging struct {
Number int64
Size int64
}
func NewPaging() *Paging {
return &Paging{Number: 1, Size: 10}
}
func (self *Paging) Offset() int64 {
return (self.Number - 1) * self.Size
}
func (self *Paging) Fill(urlParameters map[string]string) bool {
size, hasSzie := getPageSize(urlParameters)
number, hasNumber := getPageIndex(urlParameters)
if hasSzie || hasNumber {
self.Size = size
self.Number = number
return true
}
return false
}
func getValue(urlParameters map[string]string, name string, defaultValue int64) (int64, bool) {
if urlParameter, ok := urlParameters[name]; ok {
value, err := strconv.ParseInt(urlParameter, 10, 64)
if err == nil {
return value, true
}
}
return defaultValue, false
}
func getPageIndex(urlParameters map[string]string) (int64, bool) {
return getValue(urlParameters, PageNumber, 1)
}
func getPageSize(urlParameters map[string]string) (int64, bool) {
return getValue(urlParameters, PageSize, 10)
}