package supports
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/kataras/iris/v12"
|
|
)
|
|
|
|
// bootstraptable 分页参数
|
|
type Pagination struct {
|
|
PageNumber int //当前看的是第几页
|
|
PageSize int //每页显示多少条数据
|
|
|
|
// 用于分页设置的参数
|
|
Start int
|
|
Limit int
|
|
|
|
SortName string //用于指定的排序
|
|
SortOrder string // desc或asc
|
|
|
|
// 时间范围
|
|
StartDate string
|
|
EndDate string
|
|
|
|
Uid int64 // 公用的特殊参数
|
|
}
|
|
|
|
func NewPagination(ctx iris.Context) (*Pagination, error) {
|
|
pageNumber, err1 := ctx.URLParamInt("pageNumber")
|
|
pageSize, err2 := ctx.URLParamInt("pageSize")
|
|
sortName := ctx.URLParam("sortName")
|
|
sortOrder := ctx.URLParam("sortOrder")
|
|
if err1 != nil || err2 != nil {
|
|
return nil, errors.New("请求的分页参数解析错误.")
|
|
}
|
|
|
|
page := Pagination{
|
|
PageNumber: pageNumber,
|
|
PageSize: pageSize,
|
|
SortName: sortName,
|
|
SortOrder: sortOrder,
|
|
}
|
|
page.pageSetting()
|
|
return &page, nil
|
|
}
|
|
|
|
// 设置分页参数
|
|
func (p *Pagination) pageSetting() {
|
|
if p.PageNumber < 1 {
|
|
p.PageNumber = 1
|
|
}
|
|
if p.PageSize < 1 {
|
|
p.PageSize = 1
|
|
}
|
|
|
|
p.Start = (p.PageNumber - 1) * p.PageSize
|
|
p.Limit = p.PageSize
|
|
}
|