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 }