diff --git a/VideoAnalysis/WebUI/src/views/welcome/index.vue b/VideoAnalysis/WebUI/src/views/welcome/index.vue index 510fdca..de3f4e3 100644 --- a/VideoAnalysis/WebUI/src/views/welcome/index.vue +++ b/VideoAnalysis/WebUI/src/views/welcome/index.vue @@ -151,6 +151,7 @@ function firstLetterToLower(str) { async function RloadTaskInfo(row: any) { let res = await RowRload(row.id); row.TaskInfo = res; + row.TaskInfo.logs = row.TaskInfo.logs.reverse(); row.TaskInfo.stepData = JSON.parse(JSON.stringify(stepData.value)); row.TaskInfo.active = row.TaskInfo.stepData.findIndex( (s) => s.title == row.TaskInfo.lastEnum @@ -162,8 +163,8 @@ async function RloadTaskInfo(row: any) { ); let i = row.TaskInfo.stepData.indexOf(element); if (i < row.TaskInfo.active) { - element.status = "finish"; - } else if (element.value == 60) { + element.status = "success"; + } else if (row.TaskInfo.active == 6 && element.value == 60) { element.status = "success"; } else if (i == row.TaskInfo.active) { element.status = "process"; @@ -265,6 +266,23 @@ const stepData = ref([ /> + +
+ 日志 +
+ + + {{ activity.message }} + + +
+
diff --git a/VideoAnalysisCore/Controllers/VideoTaskController.cs b/VideoAnalysisCore/Controllers/VideoTaskController.cs index 8ef6421..4246cbf 100644 --- a/VideoAnalysisCore/Controllers/VideoTaskController.cs +++ b/VideoAnalysisCore/Controllers/VideoTaskController.cs @@ -33,12 +33,14 @@ namespace VideoAnalysisCore.Controllers readonly Repository videoQuestionDB; readonly Repository videoKonwPointDB; readonly Repository videoQuestionKonwDB; + readonly Repository taskLogDB; + readonly RedisManager redisManager; public readonly SenseVoice senseVoice; private readonly IMapper mp; public VideoTaskController(Repository baseService, RedisManager redisManager, Repository videoQuestionDB, - Repository videoQuestionKonwDB, Repository videoKonwPointDB, SenseVoice senseVoice, IMapper mp) : base(baseService) + Repository videoQuestionKonwDB, Repository videoKonwPointDB, SenseVoice senseVoice, IMapper mp, Repository taskLogDB) : base(baseService) { this.baseService = baseService; this.redisManager = redisManager; @@ -47,8 +49,9 @@ namespace VideoAnalysisCore.Controllers this.videoKonwPointDB = videoKonwPointDB; this.senseVoice = senseVoice; this.mp = mp; + this.taskLogDB = taskLogDB; } - + @@ -289,6 +292,17 @@ namespace VideoAnalysisCore.Controllers return BadRequest("无效id"); var d = await redisManager.Redis.HMGetAsync(RedisExpandKey.Task(id), "Progress", "LastEnum", "StartTime", "ErrorMessage"); + + var logArr = await taskLogDB.AsQueryable() + .Where(s => s.VideoTaskId == id) + .ToArrayAsync(); + var insertData = (await redisManager.Redis + .LRangeAsync(RedisExpandKey.TaskLog, 0, 99)) + .Where(s => s.VideoTaskId == id); + + logArr = logArr.Concat(insertData).ToArray(); + + return Ok(new { Progress = d[0], @@ -297,6 +311,7 @@ namespace VideoAnalysisCore.Controllers ? JsonSerializer.Deserialize>(d[2]) : null, ErrorMessage = d[3], + Logs = logArr, }); } @@ -412,6 +427,28 @@ namespace VideoAnalysisCore.Controllers var data = await sqlquery.ToPageListAsync(model.PageIndex + 1, model.PageSize, total); return new PageResult() { Data = data, Total = total }; + } + + /// + /// 任务日志 + /// + /// 查询模型 + /// + [HttpGet] + public async Task> TaskLog(long id ) + { + var logArr = await taskLogDB.AsQueryable() + .Where(s => s.VideoTaskId == id) + .ToArrayAsync(); + var insertData = (await redisManager.Redis + .LRangeAsync(RedisExpandKey.TaskLog, 0, 99)) + .Where(s=>s.VideoTaskId == id); + + return logArr.Concat(insertData); + + + + } } }