From 90bbc11712fef269a419c016eb0cc06e53db439b Mon Sep 17 00:00:00 2001 From: sugarBecomer Date: Fri, 7 Nov 2025 23:44:05 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BB=BB=E5=8A=A1=E7=AB=8B=E5=8D=B3?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E4=BD=86=E6=B2=A1=E6=9C=89=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/service/cpdaily/cptask.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/internal/service/cpdaily/cptask.go b/internal/service/cpdaily/cptask.go index cfd14fd..46b0900 100644 --- a/internal/service/cpdaily/cptask.go +++ b/internal/service/cpdaily/cptask.go @@ -245,17 +245,21 @@ func (v CpTaskServiceV1) ExecuteNow(ctx context.Context, req *v1.ExecuteNowReq) user := utils.GetUserInfoFromCtx(ctx) // 查询任务并检查状态 - task := db.Global.CpTask.Query(). + cpTask := db.Global.CpTask.Query(). Where(cptask.ID(req.Id), cptask.UserID(user.ID)). Select(cptask.FieldTaskStatus). FirstX(ctx) - if task == nil { + if cpTask == nil { utils.OkOrPanic(errors2.NewBusinessError(404, "任务不存在")) } + // 检查任务是否存在次数 + if cpTask.Frequency-cpTask.SuccessCount <= 0 { + utils.OkOrPanic(errors2.NewBusinessError(400, "任务没有执行次数")) + } // 检查任务是否正在执行中 - if task.TaskStatus == cptask.TaskStatusDoing { + if cpTask.TaskStatus != cptask.TaskStatusNotStart && cpTask.TaskStatus != cptask.TaskStatusDone && cpTask.TaskStatus != cptask.TaskStatusFail { utils.OkOrPanic(errors2.NewBusinessError(400, "任务正在执行中,请稍后再试")) } @@ -280,7 +284,7 @@ func (v CpTaskServiceV1) ExecuteNow(ctx context.Context, req *v1.ExecuteNowReq) asynq.Queue(cst.TaskQueueCpdaily), ) // 更新未开始的任务状态为队列中 - db.Global.CpTask.Update().Where(cptask.ID(task.ID), cptask.TaskStatusEQ(cptask.TaskStatusNotStart)).SetTaskStatus(cptask.TaskStatusQueue).Exec(ctx) + db.Global.CpTask.Update().Where(cptask.ID(cpTask.ID), cptask.TaskStatusEQ(cptask.TaskStatusNotStart)).SetTaskStatus(cptask.TaskStatusQueue).Exec(ctx) }) if e != nil { g.Log().Errorf(ctx, "立即执行任务入列失败: %+v", e)