fix: 修复用量统计线程问题并完善搜索与Token计算逻辑

- OnlineSearch 增加 daysAgo 非法值保护,避免无效时间范围
- 修复 UsageStatistics 中 Prompt/Completion Token 为 0 时的统计异常
- 引入独立 UnitOfWork,解决流式处理下的并发与事务问题
- 确保用量统计、系统消息与尊享包扣减的原子性
- 补充前端 Element Plus 组件类型声明
- 统一并优化部分代码格式,不影响业务逻辑
This commit is contained in:
ccnetcore
2026-01-08 23:46:57 +08:00
parent 2f1f25ca37
commit 2544c01e9d
4 changed files with 92 additions and 86 deletions

View File

@@ -22,13 +22,13 @@ public class UsageStatisticsManager : DomainService
{
var actualTokenId = tokenId ?? Guid.Empty;
long inputTokenCount = tokenUsage?.PromptTokens
?? tokenUsage?.InputTokens
?? 0;
long inputTokenCount = tokenUsage?.PromptTokens > 0
? tokenUsage.PromptTokens.Value
: tokenUsage?.InputTokens ?? 0;
long outputTokenCount = tokenUsage?.CompletionTokens
?? tokenUsage?.OutputTokens
?? 0;
long outputTokenCount = tokenUsage?.CompletionTokens > 0
? tokenUsage.CompletionTokens.Value
: tokenUsage?.OutputTokens ?? 0;
await using (await DistributedLock.AcquireLockAsync($"UsageStatistics:{userId?.ToString()}:{actualTokenId}:{modelId}"))
{