package core import ( "ZhenTuLocalPassiveAdapter/config" "ZhenTuLocalPassiveAdapter/dto" "ZhenTuLocalPassiveAdapter/fs" "ZhenTuLocalPassiveAdapter/util" "fmt" ) func HandleTask(device config.DeviceMapping, task dto.Task) (*dto.FileObject, error) { adapter := fs.GetAdapter() fileList, err := adapter.GetFileList(device.Name + "/" + task.StartTime.Format("2006"+config.Config.FileName.DateSeparator+"01"+config.Config.FileName.DateSeparator+"02")) if err != nil { return nil, err } files := util.FilterAndSortFiles(fileList, task.StartTime, task.EndTime) if len(files) == 0 { return nil, fmt.Errorf("没有找到文件") } constructTask, err := util.CheckFileCoverageAndConstructTask(files, task.StartTime, task.EndTime, task) if err != nil { return nil, err } ok := util.RunFfmpegTask(constructTask) if !ok { return nil, fmt.Errorf("ffmpeg任务执行失败") } return &dto.FileObject{ CreateTime: task.EndTime, EndTime: task.EndTime, NeedDownload: true, URL: constructTask.OutputFile, }, nil }