scope.go 662 B

12345678910111213141516171819202122232425262728293031323334
  1. package models
  2. import (
  3. "gorm.io/gorm"
  4. )
  5. func Paginate(pageNum, pageSize int) func(db *gorm.DB) *gorm.DB {
  6. return func(db *gorm.DB) *gorm.DB {
  7. offset := (pageNum - 1) * pageSize
  8. return db.Offset(offset).Limit(pageSize)
  9. }
  10. }
  11. func String(query string, arg string) func(db *gorm.DB) *gorm.DB {
  12. if len(arg) > 0 {
  13. return func(db *gorm.DB) *gorm.DB {
  14. return db.Where(query, arg)
  15. }
  16. }
  17. return func(db *gorm.DB) *gorm.DB {
  18. return db
  19. }
  20. }
  21. func Bool(query string, arg *bool) func(db *gorm.DB) *gorm.DB {
  22. if arg != nil {
  23. return func(db *gorm.DB) *gorm.DB {
  24. return db.Where(query, *arg)
  25. }
  26. }
  27. return func(db *gorm.DB) *gorm.DB {
  28. return db
  29. }
  30. }