From 22f9cce092f74fbb0a91b0c4d581c19b90c676b3 Mon Sep 17 00:00:00 2001 From: ddcat666 <26564566+ddcat666@users.noreply.github.com> Date: Tue, 29 Sep 2026 08:26:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(agent):=20=E9=94=99=E8=AF=AF=E8=AF=8A?= =?UTF-8?q?=E6=96=AD=20-=20=E8=AF=BB=E5=8F=96=E6=9C=80=E8=BF=91=E4=B8=8A?= =?UTF-8?q?=E6=B8=B8=E5=93=8D=E5=BA=94=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/repository/analytics.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/backend/internal/repository/analytics.go b/backend/internal/repository/analytics.go index b3ddfd95a..370b06ef8 100644 --- a/backend/internal/repository/analytics.go +++ b/backend/internal/repository/analytics.go @@ -229,6 +229,18 @@ func (r *Repository) APICallLogUsageForTask(userID, taskID string) (model.ApiCal return log, true, nil } +// LatestAPICallStatusForTask 返回任务最近一次上游调用的 HTTP 状态码; +// 任务没收到任何上游响应(例如网络错误)时返回 0。 +func (r *Repository) LatestAPICallStatusForTask(taskID string) (int, error) { + if strings.TrimSpace(taskID) == "" { + return 0, nil + } + var log model.ApiCallLog + err := r.db.Select("status_code").Where("task_id = ? AND request_kind <> ?", taskID, "poll"). + Order("created_at DESC").Limit(1).Find(&log).Error + return log.StatusCode, err +} + func (r *Repository) HasAPICallLogForTask(taskID string) (bool, error) { if strings.TrimSpace(taskID) == "" { return false, nil