page.go 700 Bytes
Newer Older
wangp's avatar
wangp committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
package utils


type PageData struct {
	Page       int64
	PageSize   int64
	TotalCount int64
	TotalPage  int64
	Data       interface{}
}

//GetPageData 获取分页数据
func GetPageData(page, pageSize, total int64) (int64, int64, PageData) {
	if page <= 0 {
		page = 1
	}

	if pageSize <= 0 {
		pageSize = 10
	}

	var pageData PageData
	pageData.Page = page
	pageData.PageSize = pageSize
	pageData.TotalCount = total
	pageData.TotalPage = total / pageSize
	if total%pageSize > 0 {
		pageData.TotalPage += 1
	}

	if page > pageData.TotalPage {
		page = pageData.TotalPage
		pageData.Page = page
	}

	start := pageSize * (page - 1)
	if start < 0 {
		start = 0
	}
	return pageSize, start, pageData
}