1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package utils
- type PagingReq struct {
- CurrentIndex int `description:"当前页码" json:"_page"`
- PageSize int `description:"每页数据条数,如果不传,默认每页20条" json:"_page_size"`
- }
- type PagingItem struct {
- IsStart bool `description:"是否首页" json:"is_start"`
- IsEnd bool `description:"是否最后一页" json:"is_end"`
- PreviousIndex int `description:"上一页页码" json:"previous_index"`
- NextIndex int `description:"下一页页码" json:"next_index"`
- CurrentIndex int `description:"当前页页码" json:"current_index"`
- Pages int `description:"总页数" json:"pages"`
- Totals int `description:"总数据量" json:"totals"`
- PageSize int `description:"每页数据条数" json:"page_size"`
- }
- func GetPaging(currentIndex,pageSize,total int)(item *PagingItem) {
- if pageSize<=0 {
- pageSize=PageSize20
- }
- if currentIndex<=0 {
- currentIndex=1
- }
- item=new(PagingItem)
- item.PageSize=pageSize
- item.Totals=total
- item.CurrentIndex=currentIndex
- if total<=0 {
- item.IsStart=true
- item.IsEnd=true
- return
- }
- pages:=PageCount(total,pageSize)
- item.Pages=pages
- if pages<=1 {
- item.IsStart=true
- item.IsEnd=true
- item.PreviousIndex=1
- item.NextIndex=1
- return
- }
- if pages == currentIndex {
- item.IsStart=false
- item.IsEnd=true
- item.PreviousIndex=currentIndex-1
- item.NextIndex=currentIndex
- return
- }
- if currentIndex==1 {
- item.IsStart=true
- item.IsEnd=false
- item.PreviousIndex=1
- item.NextIndex=currentIndex+1
- return
- }
- item.IsStart=false
- item.IsEnd=false
- item.PreviousIndex=currentIndex-1
- item.NextIndex=currentIndex+1
- return
- }
- func StartIndex2(page, pagesize int) int {
- if page > 1 {
- return (page - 1) * pagesize
- }
- return 0
- }
- func PageCount2(count, pagesize int) int {
- if count%pagesize > 0 {
- return count/pagesize + 1
- } else {
- return count / pagesize
- }
- }
|