沈阳玫苑物业管理后端
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

  1. package supports
  2. import (
  3. "errors"
  4. "github.com/kataras/iris"
  5. )
  6. // bootstraptable 分页参数
  7. type Pagination struct {
  8. PageNumber int //当前看的是第几页
  9. PageSize int //每页显示多少条数据
  10. // 用于分页设置的参数
  11. Start int
  12. Limit int
  13. SortName string //用于指定的排序
  14. SortOrder string // desc或asc
  15. // 时间范围
  16. StartDate string
  17. EndDate string
  18. Uid int64 // 公用的特殊参数
  19. }
  20. func NewPagination(ctx iris.Context) (*Pagination, error) {
  21. pageNumber, err1 := ctx.URLParamInt("pageNumber")
  22. pageSize, err2 := ctx.URLParamInt("pageSize")
  23. sortName := ctx.URLParam("sortName")
  24. sortOrder := ctx.URLParam("sortOrder")
  25. if err1 != nil || err2 != nil {
  26. return nil, errors.New("请求的分页参数解析错误.")
  27. }
  28. page := Pagination{
  29. PageNumber: pageNumber,
  30. PageSize: pageSize,
  31. SortName: sortName,
  32. SortOrder: sortOrder,
  33. }
  34. page.pageSetting()
  35. return &page, nil
  36. }
  37. // 设置分页参数
  38. func (p *Pagination) pageSetting() {
  39. if p.PageNumber < 1 {
  40. p.PageNumber = 1
  41. }
  42. if p.PageSize < 1 {
  43. p.PageSize = 1
  44. }
  45. p.Start = (p.PageNumber - 1) * p.PageSize
  46. p.Limit = p.PageSize
  47. }