delete_task_logic.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package task
  2. import (
  3. "context"
  4. "github.com/suyuan32/simple-admin-job/ent"
  5. "github.com/suyuan32/simple-admin-job/ent/task"
  6. "github.com/suyuan32/simple-admin-job/ent/tasklog"
  7. "github.com/suyuan32/simple-admin-job/internal/svc"
  8. "github.com/suyuan32/simple-admin-job/internal/utils/dberrorhandler"
  9. "github.com/suyuan32/simple-admin-job/internal/utils/entx"
  10. "github.com/suyuan32/simple-admin-job/types/job"
  11. "github.com/suyuan32/simple-admin-common/i18n"
  12. "github.com/zeromicro/go-zero/core/logx"
  13. )
  14. type DeleteTaskLogic struct {
  15. ctx context.Context
  16. svcCtx *svc.ServiceContext
  17. logx.Logger
  18. }
  19. func NewDeleteTaskLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteTaskLogic {
  20. return &DeleteTaskLogic{
  21. ctx: ctx,
  22. svcCtx: svcCtx,
  23. Logger: logx.WithContext(ctx),
  24. }
  25. }
  26. func (l *DeleteTaskLogic) DeleteTask(in *job.IDsReq) (*job.BaseResp, error) {
  27. err := entx.WithTx(l.ctx, l.svcCtx.DB, func(tx *ent.Tx) error {
  28. _, err := tx.TaskLog.Delete().Where(tasklog.HasTasksWith(task.IDIn(in.Ids...))).Exec(l.ctx)
  29. if err != nil {
  30. return err
  31. }
  32. _, err = tx.Task.Delete().Where(task.IDIn(in.Ids...)).Exec(l.ctx)
  33. if err != nil {
  34. return err
  35. }
  36. return nil
  37. })
  38. if err != nil {
  39. return nil, dberrorhandler.DefaultEntError(l.Logger, err, in)
  40. }
  41. return &job.BaseResp{Msg: i18n.DeleteSuccess}, nil
  42. }