This commit is contained in:
owenchen committed 2026-09-09 16:31:34 +08:00
1 parent 75dc6fc980
commit 808042cf72
20 files changed
+484 -510

No files matched your search

@@ -803,6 +803,45 @@ namespace CloudBuilder.Master.Service
CreateFamilyGroupFolderDetail(folder, familyGroupFolders);
}
[PermissionOperate(name: MasterPermissionPolicy.DmsFile, operate: Operate.Insert)]
[UnitOfWork]
public void DeleteFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile)
{
ISecurityGeneratorNumberService securityGeneratorNumberService = service.ServiceProvider.GetService<ISecurityGeneratorNumberService>()!;
IRepository<FamilyGroupFolderEntity> repositoryFamilyGroupFolder = repository.GetRepository<IRepository<FamilyGroupFolderEntity>>();
IRepository<DmsFolderEntity> repositoryFolder = repository.GetRepository<IRepository<DmsFolderEntity>>();
IRepository<DmsFolderMapEntity> repositoryFolderMap = repository.GetRepository<IRepository<DmsFolderMapEntity>>();
DmsFolderEntity folder;
DmsFolderMapEntity map;
DmsFileEntity entity;
FamilyGroupFolderEntity familyGroupFolder = repositoryFamilyGroupFolder.DetachedEntities.Where(x => x.FolderName == familyDmsFile.FolderName).FirstOrDefault()!;
repositoryFamilyGroupFolder.DeleteNow(familyGroupFolder);
//如果只是文件分享,则返回
if (familyDmsFile.IsDirectoryIndc == YesNoPolicy.NO) return;
folder = repositoryFolder.DetachedEntities.Where(x => x.FolderName == familyDmsFile.FolderName).FirstOrDefault()!;
repositoryFolder.DeleteNow(folder);
map = repositoryFolderMap.DetachedEntities.Where(x => x.FolderNameSon == folder.FolderName).FirstOrDefault()!;
repositoryFolderMap.DeleteNow(map);
entity = repository.DetachedEntities.Where(x => x.FileName == folder.FolderName).FirstOrDefault()!;
repository.DeleteNow(entity);
IRepository<FamilyFolderFavoriteEntity> repositoryFamilyFolderFavorite = repository.GetRepository<IRepository<FamilyFolderFavoriteEntity>>();
FamilyFolderFavoriteEntity[] folderFavorite = repositoryFamilyFolderFavorite.DetachedEntities.Where(x => x.FolderName == folder.FolderName).ToArray();
repositoryFamilyFolderFavorite.DeleteNow(folderFavorite);
}
[PermissionOperate(name: MasterPermissionPolicy.DmsFile, operate: Operate.Insert)]
[UnitOfWork]
public void CreateFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile)
@@ -1201,14 +1240,9 @@ namespace CloudBuilder.Master.Service
{
if (File.Exists(fileName)) File.Delete(fileName);
}
string m3u8FilePath = Path.Combine(webRootPath, service.UserId, "m3u8", Path.GetFileNameWithoutExtension(dmsFile.OrderKey));
if (!Directory.Exists(m3u8FilePath))
{
Directory.CreateDirectory(m3u8FilePath);
}
string m3u8FullFile = Path.Combine(m3u8FilePath, "main.m3u8");
//生成m3u8
TsToM3u8(dmsFile.OrderKey, fullName, m3u8FullFile);
string m3u8FilePath = fullName.Replace(fileExtension, ".png");
//生成m3u8(暂不生成,只生成截图)
TsToM3u8(dmsFile.OrderKey, fullName, m3u8FilePath);
}
}
}
@@ -1254,7 +1288,7 @@ namespace CloudBuilder.Master.Service
public void TsToM3u8(string orderKey, string mp4Url, string m3u8Url, int videoLength = 6)
{
string para = string.Format(service.Configuration[ServiceSettingsPolicy.FfmpegPictrue], mp4Url, m3u8Url);
RunMyProcess(service.Configuration[ServiceSettingsPolicy.FfmpegPath], para.Replace(".m3u8", ".png"));
RunMyProcess(service.Configuration[ServiceSettingsPolicy.FfmpegPath], para);
return;
para = string.Format(service.Configuration["Ffmpeg:Arguments"], mp4Url, videoLength, m3u8Url);
//不直接转码视频文件,影响服务器性能,改为在闭时自动生成
@@ -1510,7 +1544,7 @@ namespace CloudBuilder.Master.Service
{
IRepository<FamilyGroupManagerUserViewEntity> repositoryFamilyGroupManager = repository.GetRepository<IRepository<FamilyGroupManagerUserViewEntity>>();
FamilyGroupManagerUserViewEntity[] ents = repositoryFamilyGroupManager.DetachedEntities.Where(x => x.UserName == service.UserId && x.ValidIndc=="Y").ToArray();
FamilyGroupManagerUserViewEntity[] ents = repositoryFamilyGroupManager.DetachedEntities.Where(x => x.UserName == service.UserId && x.ValidIndc == "Y").ToArray();
List<SelectOption> l = new List<SelectOption>();
SelectOption selectOption;
@@ -1536,7 +1570,7 @@ namespace CloudBuilder.Master.Service
IRepository<FamilyGroupEntity> repositoryFamilyGroup = repository.GetRepository<IRepository<FamilyGroupEntity>>();
FamilyGroupEntity group = repositoryFamilyGroup.DetachedEntities.Where(x => x.FamilyName == familyName && x.ValidIndc==YesNoPolicy.YES).FirstOrDefault()!;
FamilyGroupEntity group = repositoryFamilyGroup.DetachedEntities.Where(x => x.FamilyName == familyName && x.ValidIndc == YesNoPolicy.YES).FirstOrDefault()!;
if (group == null) return l.ToArray();
selectOption = new SelectOption();
@@ -27,6 +27,8 @@ namespace CloudBuilder.Master.Service
void CreateFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile);
void DeleteFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile);
SelectOption[] FindDmsFolders();
SelectOption[] FindDmsFolderDeleteLogs();
DmsFolderData FindDmsFolderData();
@@ -75,6 +75,10 @@ return Task.Run(() => serviceRequest.PostAsJsonAsync<DmsFileEntity,DmsFileEnti
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<DmsFileEntity,string>("/DmsFile/CreateDmsFolder" , dmsFile)).GetAwaiter().GetResult(); }
public void DeleteFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile)
{
Task.Run(() => serviceRequest.PostAsJsonAsync<FamilyDmsFileViewEntity,dynamic>("/DmsFile/DeleteFamilyDmsFolder" , familyDmsFile)).GetAwaiter().GetResult(); }
public void CreateFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile)
{
Task.Run(() => serviceRequest.PostAsJsonAsync<FamilyDmsFileViewEntity,dynamic>("/DmsFile/CreateFamilyDmsFolder" , familyDmsFile)).GetAwaiter().GetResult(); }
@@ -110,10 +110,10 @@ namespace CloudBuilder.Security.Policy
{
if (transcodeIndc == YesNoPolicy.YES)
{
var upload = (service.Configuration[ServiceSettingsPolicy.DmsFileUploadDirectory] ?? "").Replace(phy ?? "", "");
var filePathRel = Path.Combine(upload, createdBy, "m3u8", "");
var upload = (service.Configuration[ServiceSettingsPolicy.DmsFileBackupDirectory] ?? "").Replace(phy ?? "", "");
var filePathRel = Path.Combine(upload, createdBy, fileExtension.Replace(".", ""), "");
var filePath = filePathRel.Replace(Path.DirectorySeparatorChar, '/') + "/";
url = service.Configuration[AppsettingsPolicy.ApplicationUrl] + webRootPath + filePath + Path.GetFileNameWithoutExtension(orderKey) + "/main.m3u8";
url = service.Configuration[AppsettingsPolicy.ApplicationUrl] + webRootPath + filePath + Path.GetFileNameWithoutExtension(orderKey) + ".png";
}
else
{
@@ -290,6 +290,26 @@ this.dmsFileService= dmsFileService;
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "DmsFile", operate: "Insert")]
[HttpPost]
[UnitOfWork]
public dynamic DeleteFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile){
try
{
dmsFileService.DeleteFamilyDmsFolder(familyDmsFile);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "DmsFile", operate: "Insert")]
@@ -64,7 +64,7 @@
},
"Ffmpeg": {
"Path": "D:\\NET8\\Exe\\ffmpeg\\bin\\ffmpeg.exe", //视频转码
"Pictrue": " -i {0} -ss 00:00:10.000 -frames:v 1 {1}",
"Pictrue": " -i {0} -ss 00:00:2.000 -frames:v 1 {1}",
"Arguments": " -i {0} -c:v libx264 -vf scale=1280:-1 -start_number 0 -hls_time {1} -hls_list_size 0 -f hls {2}" //0-源路径,1-目标路径,2-存放多少秒 1280×720,852*480
},
"CloudBuilder.Topshelf": {