user_group.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package service
  2. import (
  3. "context"
  4. "icloudapp.cn/tools/repository/mysql"
  5. "icloudapp.cn/tools/service/entity"
  6. "icloudapp.cn/tools/service/model"
  7. )
  8. type UserGroup struct {
  9. ctx context.Context
  10. Base
  11. query *model.MUserGroup
  12. }
  13. type UserGroupList struct {
  14. Pages Page `json:"pages"`
  15. Lists []*entity.UserGroup `json:"lists"`
  16. }
  17. func NewUserGroup(ctx context.Context) *UserGroup {
  18. model.SetDefault(mysql.DBConn)
  19. userGroup := &UserGroup{ctx: ctx}
  20. userGroup.query = model.UserGroup
  21. return userGroup
  22. }
  23. func (g *UserGroup) Info(uid int64) (*entity.UserGroup, error) {
  24. return g.query.WithContext(g.ctx).Where(g.query.UID.Eq(uid)).Take()
  25. }
  26. // Count 获取group总数量
  27. func (g *UserGroup) Count() int64 {
  28. count, err := g.query.WithContext(g.ctx).Count()
  29. if err != nil {
  30. return 0
  31. }
  32. return count
  33. }
  34. func (g *UserGroup) Scan(page, pageSize int) UserGroupList {
  35. var userGroupList UserGroupList
  36. count := g.Count()
  37. pages := g.InitPages(count, page, pageSize)
  38. userGroupList.Pages = pages
  39. if pages.Count == 0 {
  40. }
  41. lists, err := g.query.WithContext(g.ctx).Offset(int(pages.LimitStart)).Limit(pages.PageSize).Find()
  42. userGroupList.Lists = lists
  43. if err != nil {
  44. return userGroupList
  45. }
  46. return userGroupList
  47. }
  48. func (g *UserGroup) UserGroups(uid int64) *entity.UserGroup {
  49. userGroup, err := g.query.WithContext(g.ctx).Where(g.query.UID.Eq(uid)).Take()
  50. if err != nil {
  51. return nil
  52. }
  53. return userGroup
  54. }