get_task_list_logic.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package task
  2. import (
  3. "context"
  4. "github.com/suyuan32/simple-admin-job/ent/predicate"
  5. "github.com/suyuan32/simple-admin-job/ent/task"
  6. "github.com/suyuan32/simple-admin-job/internal/svc"
  7. "github.com/suyuan32/simple-admin-job/internal/utils/dberrorhandler"
  8. "github.com/suyuan32/simple-admin-job/types/job"
  9. "github.com/suyuan32/simple-admin-common/utils/pointy"
  10. "github.com/zeromicro/go-zero/core/logx"
  11. )
  12. type GetTaskListLogic struct {
  13. ctx context.Context
  14. svcCtx *svc.ServiceContext
  15. logx.Logger
  16. }
  17. func NewGetTaskListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetTaskListLogic {
  18. return &GetTaskListLogic{
  19. ctx: ctx,
  20. svcCtx: svcCtx,
  21. Logger: logx.WithContext(ctx),
  22. }
  23. }
  24. func (l *GetTaskListLogic) GetTaskList(in *job.TaskListReq) (*job.TaskListResp, error) {
  25. var predicates []predicate.Task
  26. if in.Name != nil {
  27. predicates = append(predicates, task.NameContains(*in.Name))
  28. }
  29. if in.TaskGroup != nil {
  30. predicates = append(predicates, task.TaskGroupContains(*in.TaskGroup))
  31. }
  32. result, err := l.svcCtx.DB.Task.Query().Where(predicates...).Page(l.ctx, in.Page, in.PageSize)
  33. if err != nil {
  34. return nil, dberrorhandler.DefaultEntError(l.Logger, err, in)
  35. }
  36. resp := &job.TaskListResp{}
  37. resp.Total = result.PageDetails.Total
  38. for _, v := range result.List {
  39. resp.Data = append(resp.Data, &job.TaskInfo{
  40. Id: &v.ID,
  41. CreatedAt: pointy.GetPointer(v.CreatedAt.UnixMilli()),
  42. UpdatedAt: pointy.GetPointer(v.UpdatedAt.UnixMilli()),
  43. Status: pointy.GetPointer(uint32(v.Status)),
  44. Name: &v.Name,
  45. TaskGroup: &v.TaskGroup,
  46. CronExpression: &v.CronExpression,
  47. Pattern: &v.Pattern,
  48. Payload: &v.Payload,
  49. })
  50. }
  51. return resp, nil
  52. }