fix: 修复请求日志丢失、轮询日志显示和开关动画问题 (#450)

* fix(logs): 请求明细 - 隐藏轮询状态查询

* fix(ui): 开关滑块 - 恢复状态位移与过渡动画

* fix(protocol): 声明式任务 - 创建请求生成幂等 UUID

* fix(logs): 请求日志 - 辅助状态更新失败时仍保留记录
This commit is contained in:
Rou authored and GitHub committed 2026-09-09 06:48:26 +08:00
1 parent 59ecfec3e0
commit 6f7a0674ce
7 files changed
+116 -6

No files matched your search

+7 -2
View File
@@ -4,6 +4,7 @@ import (
"encoding/json"
"errors"
"fmt"
stdlog "log"
"strings"
"time"
@@ -652,7 +653,9 @@ func (s *Service) LogAPICall(log model.ApiCallLog) error {
s.estimateCallCost(&log)
if log.BillingOrderID != "" && log.ProviderRequestID != "" {
if err := s.repo.UpdateBillingProviderRequestID(log.BillingOrderID, log.ProviderRequestID); err != nil {
return err
// 账单关联是请求日志的辅助状态,不能因为关联更新失败而丢失
// 已经发生的上游调用记录。后续由任务/账单对账流程补偿关联。
stdlog.Printf("provider billing request id update failed: billing_order_id=%s provider_request_id=%s error=%v", log.BillingOrderID, log.ProviderRequestID, err)
}
}
if log.TaskID != "" {
@@ -667,7 +670,9 @@ func (s *Service) LogAPICall(log model.ApiCallLog) error {
nextPollAt = &next
}
if err := s.repo.UpdateTaskProviderState(log.TaskID, log.ProviderRequestID, stage, nextPollAt); err != nil {
return err
// 请求日志本身仍需保留;任务状态可由后续任务收尾或恢复流程
// 重建,不能让一次状态写失败掩盖真实的上游调用。
stdlog.Printf("provider task state update failed: task_id=%s provider_request_id=%s error=%v", log.TaskID, log.ProviderRequestID, err)
}
}
if merged, err := s.mergeVideoAPICallLog(log); err != nil {