媒体文件夹返回树结构

feature-flyModify
陈伟 2025-07-31 14:29:31 +08:00
parent 985c9b13a0
commit 507477ae4d
3 changed files with 46 additions and 12 deletions

View File

@ -1691,15 +1691,42 @@ namespace OpenAuth.App.ServiceApp
public async Task<List<LasaMediaFile>> ListMediaFolder(string workspaceId)
{
// todo 列出所属项目所有 文件
var result = await Repository.ChangeRepository<SugarRepositiry<LasaMediaFile>>()
// 列出所属项目所有 文件
var result = await Repository.ChangeRepository<SugarRepositiry<LasaMediaFile>>()
.AsQueryable()
.Where(r => r.WorkspaceId == workspaceId)
.WhereIF(!string.IsNullOrEmpty(workspaceId),r => r.WorkspaceId == workspaceId)
.Where(r => r.ObjectKey == null)
.OrderBy(r => r.CreateTime)
.ToListAsync();
// Todo 构建树结构
return null;
// 构建树结构
return BuildFolderTree1(result);
}
public List<LasaMediaFile> BuildFolderTree1(List<LasaMediaFile> folders)
{
var folderMap = folders.ToDictionary(f => f.Id, f =>
{
var x = f;
x.Children = new List<LasaMediaFile>();
return x;
});
var rootNodes = new List<LasaMediaFile>();
foreach (var folder in folders)
{
if (string.IsNullOrEmpty(folder.ParentKey) || folder.ParentKey == "0")
{
rootNodes.Add(folderMap[folder.Id]);
}
else if (folderMap.TryGetValue(folder.ParentKey, out var parentNode))
{
parentNode.Children.Add(folderMap[folder.Id]);
}
}
return rootNodes;
}
}
}

View File

@ -118,4 +118,7 @@ public class LasaMediaFile
public string PicLink { get; set; }
public string minipic { get; set; }
[SugarColumn(IsIgnore = true)]
public List<LasaMediaFile> Children { get; set; }
}

View File

@ -179,7 +179,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
return result;
}
/// <summary>
/// 根据机场sn获取无人机列表
/// </summary>
@ -289,8 +289,8 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
{
return await _app.GetTaskPicList(flightId, timestamp);
}
[HttpGet]
[AllowAnonymous]
public async Task<Response<CommandVideoResponse>> GetTaskVideoList(string flightId, long timestamp)
@ -301,7 +301,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
#endregion
#region 航线管理
[HttpPost]
public async Task<Response<bool>> CreateAirLineFolder(FolderCreateReq req)
{
@ -619,7 +619,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
{
return await _app.TestExecuteFlyTask(flightid);
}
[HttpGet]
[AllowAnonymous]
@ -820,12 +820,16 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
#endregion
#region 媒体库
#region 媒体库
/// <summary>
/// 媒体文件夹树结构
/// </summary>
/// <param name="workspaceId"></param>
/// <returns></returns>
[HttpGet]
public async Task<List<LasaMediaFile>> ListMediaFolder(string workspaceId)
{
return await _app.ListMediaFolder(workspaceId);
}