From b899c47e5cdd14634506c0842a33f4f9f093633f Mon Sep 17 00:00:00 2001 From: 362270511 <362270511@qq.com> Date: Tue, 13 Aug 2024 17:06:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20Admin.NET/Admin.NET.Core/S?= =?UTF-8?q?ervice/File/SysFileService.cs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 文件管理功能添加是否公开附件功能 --- .../Service/File/SysFileService.cs | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs b/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs index 0b902a26..ddb028f1 100644 --- a/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs +++ b/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs @@ -44,12 +44,16 @@ public class SysFileService : IDynamicApiController, ITransient [DisplayName("获取文件分页列表")] public async Task> Page(PageFileInput input) { - return await _sysFileRep.AsQueryable() - .WhereIF(!string.IsNullOrWhiteSpace(input.FileName), u => u.FileName.Contains(input.FileName.Trim())) - .WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()) && !string.IsNullOrWhiteSpace(input.EndTime.ToString()), - u => u.CreateTime >= input.StartTime && u.CreateTime <= input.EndTime) - .OrderBy(u => u.CreateTime, OrderByType.Desc) - .ToPagedListAsync(input.Page, input.PageSize); + //获取所有公开附件 + var publicList = _sysFileRep.AsQueryable().ClearFilter().Where(u => u.IsPublic == true); + //获取私有附件 + var privateList = _sysFileRep.AsQueryable().Where(u => u.IsPublic == false); + //合并公开和私有附件并分页 + return await _sysFileRep.Context.UnionAll(publicList, privateList).WhereIF(!string.IsNullOrWhiteSpace(input.FileName), u => u.FileName.Contains(input.FileName.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()) && !string.IsNullOrWhiteSpace(input.EndTime.ToString()), + u => u.CreateTime >= input.StartTime && u.CreateTime <= input.EndTime) + .OrderBy(u => u.CreateTime, OrderByType.Desc) + .ToPagedListAsync(input.Page, input.PageSize); } /// @@ -60,7 +64,7 @@ public class SysFileService : IDynamicApiController, ITransient [DisplayName("上传文件")] public async Task UploadFile([FromForm] FileUploadInput input) { - return await HandleUploadFile(input.File, input.Path, fileType: input.FileType); + return await HandleUploadFile(input.File, input.Path, fileType: input.FileType, isPublic: input.IsPublic); } /// @@ -84,7 +88,7 @@ public class SysFileService : IDynamicApiController, ITransient Headers = new HeaderDictionary(), ContentType = input.ContentType }; - return await UploadFile(new FileUploadInput { File = formFile, Path = input.Path, FileType = input.FileType }); + return await UploadFile(new FileUploadInput { File = formFile, Path = input.Path, FileType = input.FileType, IsPublic = input.IsPublic }); } /// @@ -267,7 +271,7 @@ public class SysFileService : IDynamicApiController, ITransient var isExist = await _sysFileRep.IsAnyAsync(u => u.Id == input.Id); if (!isExist) throw Oops.Oh(ErrorCodeEnum.D8000); - await _sysFileRep.UpdateAsync(u => new SysFile() { FileName = input.FileName, FileType = input.FileType }, u => u.Id == input.Id); + await _sysFileRep.UpdateAsync(u => new SysFile() { FileName = input.FileName, FileType = input.FileType, IsPublic = input.IsPublic }, u => u.Id == input.Id); } /// @@ -289,8 +293,9 @@ public class SysFileService : IDynamicApiController, ITransient /// 路径 /// 允许格式:.jpg.png.gif.tif.bmp /// 类型 + /// 是否公开 /// - private async Task HandleUploadFile(IFormFile file, string savePath, string allowSuffix = "", string fileType = "") + private async Task HandleUploadFile(IFormFile file, string savePath, string allowSuffix = "", string fileType = "", bool isPublic = false) { if (file == null) throw Oops.Oh(ErrorCodeEnum.D8000); @@ -354,7 +359,8 @@ public class SysFileService : IDynamicApiController, ITransient SizeKb = sizeKb, FilePath = path, FileMd5 = fileMd5, - FileType = fileType + FileType = fileType, + IsPublic = isPublic, }; var finalName = newFile.Id + suffix; // 文件最终名称