优化
This commit is contained in:
@@ -2,15 +2,29 @@ package data
|
||||
|
||||
import "gorm.io/gorm"
|
||||
|
||||
func applyPagination(db *gorm.DB, page, size, maxSize int) *gorm.DB {
|
||||
if size <= 0 {
|
||||
return db
|
||||
}
|
||||
func paginationLimitOffset(page, size, maxSize int) (limit, offset int) {
|
||||
limit = size
|
||||
if maxSize > 0 && size > maxSize {
|
||||
size = maxSize
|
||||
limit = maxSize
|
||||
}
|
||||
if limit <= 0 {
|
||||
return 0, 0
|
||||
}
|
||||
if page <= 0 {
|
||||
page = 1
|
||||
}
|
||||
return db.Offset((page - 1) * size).Limit(size)
|
||||
return limit, (page - 1) * limit
|
||||
}
|
||||
|
||||
func applyPagination(db *gorm.DB, page, size, maxSize int) *gorm.DB {
|
||||
limit, offset := paginationLimitOffset(page, size, maxSize)
|
||||
if limit == 0 {
|
||||
return db
|
||||
}
|
||||
return db.Offset(offset).Limit(limit)
|
||||
}
|
||||
|
||||
func applyRequiredPagination(db *gorm.DB, page, size, maxSize int) *gorm.DB {
|
||||
limit, offset := paginationLimitOffset(page, size, maxSize)
|
||||
return db.Offset(offset).Limit(limit)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user