This commit is contained in:
2026-06-25 16:33:09 +08:00
parent baf82898b5
commit e32759dd95
7 changed files with 32 additions and 16 deletions

View File

@@ -24,6 +24,7 @@ import (
subordinate_repositories "tyapi-server/internal/domains/subordinate/repositories"
user_repositories "tyapi-server/internal/domains/user/repositories"
task_entities "tyapi-server/internal/infrastructure/task/entities"
"tyapi-server/internal/infrastructure/external/shujubao"
"tyapi-server/internal/infrastructure/task/interfaces"
"tyapi-server/internal/shared/crypto"
"tyapi-server/internal/shared/database"
@@ -165,6 +166,11 @@ func (s *ApiApplicationServiceImpl) CallApi(ctx context.Context, cmd *commands.A
// 3. 同步调用外部API核心业务
response, err := s.callExternalApi(ctx, cmd, validationResult)
if errors.Is(err, ErrQueryEmptyBillable) {
go s.asyncSaveApiCall(context.Background(), apiCall, validationResult, "")
go s.asyncProcessDeduction(context.Background(), apiCall, validationResult)
return transactionId, "", ErrQueryEmpty
}
if err != nil {
// 异步记录失败状态
go s.asyncRecordFailure(context.Background(), apiCall, err)
@@ -399,6 +405,11 @@ func (s *ApiApplicationServiceImpl) callExternalApi(ctx context.Context, cmd *co
callContext)
if err != nil {
// 数据宝 10001/10006查空但计费由 CallApi 统一处理
if errors.Is(err, shujubao.ErrQueryEmpty) {
return "", ErrQueryEmptyBillable
}
mappedErrorType := entities.ApiCallErrorSystem
if errors.Is(err, processors.ErrDatasource) {
mappedErrorType = entities.ApiCallErrorDatasource