service_pagelist.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package authorized
  2. import (
  3. "github.com/xinliangnote/go-gin-api/internal/pkg/core"
  4. "github.com/xinliangnote/go-gin-api/internal/repository/mysql"
  5. "github.com/xinliangnote/go-gin-api/internal/repository/mysql/authorized"
  6. )
  7. type SearchData struct {
  8. Page int `json:"page"` // 第几页
  9. PageSize int `json:"page_size"` // 每页显示条数
  10. BusinessKey string `json:"business_key"` // 调用方key
  11. BusinessSecret string `json:"business_secret"` // 调用方secret
  12. BusinessDeveloper string `json:"business_developer"` // 调用方对接人
  13. Remark string `json:"remark"` // 备注
  14. }
  15. func (s *service) PageList(ctx core.Context, searchData *SearchData) (listData []*authorized.Authorized, err error) {
  16. page := searchData.Page
  17. if page == 0 {
  18. page = 1
  19. }
  20. pageSize := searchData.PageSize
  21. if pageSize == 0 {
  22. pageSize = 10
  23. }
  24. offset := (page - 1) * pageSize
  25. qb := authorized.NewQueryBuilder()
  26. qb = qb.WhereIsDeleted(mysql.EqualPredicate, -1)
  27. if searchData.BusinessKey != "" {
  28. qb.WhereBusinessKey(mysql.EqualPredicate, searchData.BusinessKey)
  29. }
  30. if searchData.BusinessSecret != "" {
  31. qb.WhereBusinessSecret(mysql.EqualPredicate, searchData.BusinessSecret)
  32. }
  33. if searchData.BusinessDeveloper != "" {
  34. qb.WhereBusinessDeveloper(mysql.EqualPredicate, searchData.BusinessDeveloper)
  35. }
  36. listData, err = qb.
  37. Limit(pageSize).
  38. Offset(offset).
  39. OrderById(false).
  40. QueryAll(s.db.GetDbR().WithContext(ctx.RequestContext()))
  41. if err != nil {
  42. return nil, err
  43. }
  44. return
  45. }