using Coravel.Invocable; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using VideoAnalysisCore.Common; using VideoAnalysisCore.Model; using VideoAnalysisCore.Model.蓝鲸智库; namespace VideoAnalysisCore.Job { /// /// [蓝鲸智库] 查找未处理的视频 /// public class NodeSubscriptionJob : IInvocable { private readonly Repository nodesubscriptionDB; private readonly Repository attachmentsDB; public NodeSubscriptionJob(Repository videoTaskDB, Repository nodesubscriptionDB) { this.attachmentsDB = videoTaskDB; this.nodesubscriptionDB = nodesubscriptionDB; } public async Task Invoke() { Console.WriteLine($"{DateTime.Now} Invoke=>{this.GetType().FullName}"); var tasks = await nodesubscriptionDB.GetListAsync(s => s.Enable); foreach (var item in tasks) { var fileNodeId = item.NodeId; var data = attachmentsDB.Context.Ado .SqlQuery($""" SELECT * FROM Attachments WHERE Id IN ( SELECT AttachmentsId FROM Material WHERE id IN ( SELECT MaterialId FROM FileContentMaterial WHERE FileContentId IN ( SELECT id FROM FileContent WHERE BagId IN ( SELECT Id FROM FileDirectory WHERE Id={fileNodeId} AND types = 1 AND DeleteState = 0 ) ) AND DeleteState = 0 AND ( MaterialName NOT LIKE '%PPT%' OR MaterialName NOT LIKE '%ppt%' ) ) ) AND Type = '录播视频' AND ( NAME NOT LIKE '%PPT%' OR NAME NOT LIKE '%ppt%' ) """); } } } }