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