feat: 日志内容搜索、设置分类Tabs、日报推送、删除合并/条件清理/无分片清理

This commit is contained in:
2026-04-28 10:56:16 +08:00
parent 5a635a40f9
commit fcfa94dee3
12 changed files with 319 additions and 29 deletions
@@ -20,6 +20,7 @@ public interface ISystemLogService
Guid? recordSessionId = null,
Guid? recordTaskId = null,
SystemLogLevel? level = null,
string? content = null,
int take = 200,
CancellationToken cancellationToken = default);
}
@@ -96,10 +96,13 @@ public interface ISystemLogRepository
Guid? recordSessionId = null,
Guid? recordTaskId = null,
SystemLogLevel? level = null,
string? content = null,
int take = 200,
CancellationToken cancellationToken = default);
void RemoveRange(IEnumerable<SystemLogEntry> entries);
Task<IReadOnlyList<Guid>> ListSessionIdsWithoutTasksAsync(CancellationToken cancellationToken = default);
}
public interface IUserAccountRepository
@@ -283,6 +283,29 @@ public sealed class RecordSessionService
cancellationToken);
}
public async Task<DeleteCompletedRecordTasksResultDto> DeleteEmptyAsync(
bool deleteFiles,
CancellationToken cancellationToken = default)
{
await _stoppedOrphanRecordSessionCleanupService.CleanupAsync(cancellationToken: cancellationToken);
await ReconcileActiveSessionsAsync(null, cancellationToken);
var emptySessionIds = await _systemLogRepository.ListSessionIdsWithoutTasksAsync(cancellationToken);
if (emptySessionIds.Count == 0)
{
return RecordService.CreateEmptyDeleteResult();
}
return await DeleteAsync(
new DeleteRecordSessionsRequest
{
SessionIds = emptySessionIds.ToArray(),
DeleteFiles = deleteFiles
},
cancellationToken);
}
private async Task ReconcileActiveSessionsAsync(Guid? liveRoomId, CancellationToken cancellationToken)
{
var sessions = await _recordSessionRepository.ListAsync(liveRoomId, cancellationToken);
@@ -64,6 +64,7 @@ public sealed class SystemLogService : ISystemLogService
Guid? recordSessionId = null,
Guid? recordTaskId = null,
SystemLogLevel? level = null,
string? content = null,
int take = 200,
CancellationToken cancellationToken = default)
{
@@ -72,6 +73,7 @@ public sealed class SystemLogService : ISystemLogService
recordSessionId,
recordTaskId,
level,
content,
take,
cancellationToken);
return entries