using Coravel.Invocable; using Microsoft.AspNetCore.Http; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using UserCenter.Model.Enum; using VideoAnalysisCore.Common; using VideoAnalysisCore.Model; using VideoAnalysisCore.Model.Dto; using VideoAnalysisCore.Model.蓝鲸智库; using Yitter.IdGenerator; namespace VideoAnalysisCore.Job { /// /// [蓝鲸智库] 查找未处理的视频 /// public class NodeSubscriptionJob : IInvocable { /// /// 每个扫描文件包每次取出{20}个 /// private readonly int TopLength = 20; private readonly Repository nodesubscriptionDB; private readonly Repository attachmentsDB; private readonly Repository videotaskDB; public NodeSubscriptionJob(Repository videoTaskDB, Repository nodesubscriptionDB, Repository videotaskDB) { this.attachmentsDB = videoTaskDB; this.nodesubscriptionDB = nodesubscriptionDB; this.videotaskDB = videotaskDB; } public async Task Invoke() { throw new Exception("已经弃用"); // Console.WriteLine($"{DateTime.Now} 执行=>文件节点订阅"); // var videoIdArr = videotaskDB.AsQueryable().Select(v => v.TagId).Distinct().ToArray(); // var tasks = await nodesubscriptionDB.GetListAsync(s => s.Enable && s.Subject ==SubjectEnum.数学); // foreach (var item in tasks) // { // var fileNodeId = item.NodeId; // var data = attachmentsDB.Context.Ado // .SqlQuery($""" //SELECT top {TopLength} // * //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%' // ) and id>{item.LastId} //"""); // if (data is null || data.Count == 0) // continue; // Console.WriteLine($"{DateTime.Now} 视频订阅=>Node:{item.NodeId} 数量{data.Count}"); // var videos = new List(data.Count); // foreach (var s in data) // { // if (videoIdArr.Contains(s.VideoCode)) // continue; // //videos.Add(new VideoTask() // //{ // // Id = YitIdHelper.NextId(), // // ComeFrom = "127.0.0.1", // // ApiToken = "", // // //Type = item.TaskType, // // Subject = item.Subject, // // Tag = item.NodeId.ToString(), // // TagId = s.VideoCode, // // MediaUrl = string.Empty, // //}); // } // var maxId = data.Max(s => s.Id); // //入库 更新最后扫描记录 // await nodesubscriptionDB.AsUpdateable() // .SetColumns(it => it.LastId == maxId) // .Where(it => it.Id == item.Id) // .ExecuteCommandAsync(); // await videotaskDB.InsertRangeAsync(videos); // var ids = videos.Select(s => s.Id).ToArray(); // RedisExpand.JoinQueue(ids); // } } } }