package utils import "gorm.io/gorm" // Page // @description: 分页组件 // @param current // @param size // @return func(db *gorm.DB) *gorm.DB func Page(current, size int) 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(offset).Limit(size) } } // GenTotalPage // @description: 计算页码数 // @param count // @param size // @return int func GenTotalPage(count int64, size int) int { totalPage := 0 if count > 0 { upPage := 0 if int(count)%size > 0 { upPage = 1 } totalPage = (int(count) / size) + upPage } return totalPage }