12345678910111213141516171819202122232425262728293031323334 |
- package models
- import (
- "gorm.io/gorm"
- )
- func Paginate(pageNum, pageSize int) func(db *gorm.DB) *gorm.DB {
- return func(db *gorm.DB) *gorm.DB {
- offset := (pageNum - 1) * pageSize
- return db.Offset(offset).Limit(pageSize)
- }
- }
- func Query(query string, args ...interface{}) func(db *gorm.DB) *gorm.DB {
- implement := false
- for _, arg := range args {
- switch arg.(type) {
- case string:
- if len(arg.(string)) > 0 {
- implement = true
- }
- default:
- implement = true
- }
- }
- if implement {
- return func(db *gorm.DB) *gorm.DB {
- return db.Where(query, args...)
- }
- }
- return func(db *gorm.DB) *gorm.DB {
- return db
- }
- }
|