26 lines
475 B
Go
26 lines
475 B
Go
package service
|
||
|
||
import "gorm.io/gorm"
|
||
|
||
func Paginate(current, size int64) func(db *gorm.DB) *gorm.DB {
|
||
// 如果页码是-1,就不分页👋
|
||
if current == -1 {
|
||
return func(db *gorm.DB) *gorm.DB {
|
||
return db
|
||
}
|
||
}
|
||
// 分页
|
||
return func(db *gorm.DB) *gorm.DB {
|
||
if current == 0 {
|
||
current = 1
|
||
}
|
||
if size < 1 {
|
||
size = 10
|
||
}
|
||
// 计算偏移量
|
||
offset := (current - 1) * size
|
||
// 返回组装结果
|
||
return db.Offset(int(offset)).Limit(int(size))
|
||
}
|
||
}
|