diff --git a/OpenAuth.App/ServiceApp/ManageApp.cs b/OpenAuth.App/ServiceApp/ManageApp.cs index b2c28bd..d0c0ed8 100644 --- a/OpenAuth.App/ServiceApp/ManageApp.cs +++ b/OpenAuth.App/ServiceApp/ManageApp.cs @@ -1691,15 +1691,42 @@ namespace OpenAuth.App.ServiceApp public async Task> ListMediaFolder(string workspaceId) { - // todo 列出所属项目所有 文件 - var result = await Repository.ChangeRepository>() + // 列出所属项目所有 文件 + var result = await Repository.ChangeRepository>() .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 BuildFolderTree1(List folders) + { + var folderMap = folders.ToDictionary(f => f.Id, f => + { + var x = f; + x.Children = new List(); + return x; + }); + + var rootNodes = new List(); + + 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; } } } \ No newline at end of file diff --git a/OpenAuth.Repository/Domain/LasaMediaFile.cs b/OpenAuth.Repository/Domain/LasaMediaFile.cs index 26cf4ef..12e3aa6 100644 --- a/OpenAuth.Repository/Domain/LasaMediaFile.cs +++ b/OpenAuth.Repository/Domain/LasaMediaFile.cs @@ -118,4 +118,7 @@ public class LasaMediaFile public string PicLink { get; set; } public string minipic { get; set; } + + [SugarColumn(IsIgnore = true)] + public List Children { get; set; } } \ No newline at end of file diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs index 8ddb31c..518e40a 100644 --- a/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs +++ b/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs @@ -179,7 +179,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers return result; } - + /// /// 根据机场sn获取无人机列表 /// @@ -289,8 +289,8 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers { return await _app.GetTaskPicList(flightId, timestamp); } - - + + [HttpGet] [AllowAnonymous] public async Task> GetTaskVideoList(string flightId, long timestamp) @@ -301,7 +301,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers #endregion #region 航线管理 - + [HttpPost] public async Task> 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 媒体库 + /// + /// 媒体文件夹树结构 + /// + /// + /// [HttpGet] public async Task> ListMediaFolder(string workspaceId) { - return await _app.ListMediaFolder(workspaceId); }