赛思维服务调研
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.

58 lines
1.1 KiB

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
}