get_labels_logic.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package dashboard
  2. import (
  3. "context"
  4. "wechat-api/ent/labelrelationship"
  5. "wechat-api/ent/predicate"
  6. "wechat-api/internal/utils/dberrorhandler"
  7. "wechat-api/internal/svc"
  8. "wechat-api/internal/types"
  9. "github.com/zeromicro/go-zero/core/logx"
  10. )
  11. type GetLabelsLogic struct {
  12. logx.Logger
  13. ctx context.Context
  14. svcCtx *svc.ServiceContext
  15. }
  16. func NewGetLabelsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetLabelsLogic {
  17. return &GetLabelsLogic{
  18. Logger: logx.WithContext(ctx),
  19. ctx: ctx,
  20. svcCtx: svcCtx}
  21. }
  22. func (l *GetLabelsLogic) GetLabels(req *types.LabelsReq) (resp *types.LabelsResp, err error) {
  23. // 获取组织id
  24. var organizationId uint64 = 0
  25. isAdmin := l.ctx.Value("isAdmin").(bool)
  26. if isAdmin && req.OrganizationId != nil && *req.OrganizationId != 0 {
  27. organizationId = *req.OrganizationId
  28. } else {
  29. organizationId = l.ctx.Value("organizationId").(uint64)
  30. }
  31. var predicates []predicate.LabelRelationship
  32. predicates = append(predicates, labelrelationship.OrganizationIDEQ(organizationId))
  33. data, err := l.svcCtx.DB.LabelRelationship.Query().Where(predicates...).Page(l.ctx, req.Page, req.PageSize)
  34. if err != nil {
  35. return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
  36. }
  37. return
  38. }