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.
46 lines
869 B
46 lines
869 B
package bean
|
|
|
|
type Page struct {
|
|
Page int `json:"page"` // 分页
|
|
Limit int `json:"limit"` // 分页大小
|
|
}
|
|
|
|
type pageConfig struct {
|
|
minLimit int
|
|
maxLimit int
|
|
defaultLimit int
|
|
}
|
|
|
|
var pConfig = &pageConfig{}
|
|
|
|
func InitPage(minLimit, maxLimit, defaultLimit int) {
|
|
pConfig.minLimit = minLimit
|
|
pConfig.maxLimit = maxLimit
|
|
pConfig.defaultLimit = defaultLimit
|
|
}
|
|
|
|
// GetPage @Title 获取页数
|
|
func (p *Page) GetPage() int {
|
|
if p.Page > 0 {
|
|
return p.Page
|
|
}
|
|
return 1
|
|
}
|
|
|
|
// GetLimit @Title 获取分页大小
|
|
func (p *Page) GetLimit() int {
|
|
if p.Limit >= pConfig.minLimit && p.Limit < pConfig.maxLimit {
|
|
return p.Limit
|
|
}
|
|
return pConfig.defaultLimit
|
|
}
|
|
|
|
// GetStart @Title 获取开始坐标
|
|
func (p *Page) GetStart() int {
|
|
return (p.GetPage() - 1) * p.GetLimit()
|
|
}
|
|
|
|
func (p *Page) HasPage(total int64) bool {
|
|
return total > int64(p.GetStart())
|
|
}
|