Ver código fonte

update Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs.
文件管理功能添加是否公开附件功能

Signed-off-by: Mr先生 <362270511@qq.com>

Mr先生 2 anos atrás
pai
commit
24755f3c95
1 arquivos alterados com 17 adições e 11 exclusões
  1. 17 11
      Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs

+ 17 - 11
Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs

@@ -44,12 +44,16 @@ public class SysFileService : IDynamicApiController, ITransient
     [DisplayName("获取文件分页列表")]
     public async Task<SqlSugarPagedList<SysFile>> 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);
     }
 
     /// <summary>
@@ -60,7 +64,7 @@ public class SysFileService : IDynamicApiController, ITransient
     [DisplayName("上传文件")]
     public async Task<SysFile> 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);
     }
 
     /// <summary>
@@ -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 });
     }
 
     /// <summary>
@@ -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);
     }
 
     /// <summary>
@@ -289,8 +293,9 @@ public class SysFileService : IDynamicApiController, ITransient
     /// <param name="savePath">路径</param>
     /// <param name="allowSuffix">允许格式:.jpg.png.gif.tif.bmp</param>
     /// <param name="fileType">类型</param>
+    /// <param name="isPublic">是否公开</param>
     /// <returns></returns>
-    private async Task<SysFile> HandleUploadFile(IFormFile file, string savePath, string allowSuffix = "", string fileType = "")
+    private async Task<SysFile> 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; // 文件最终名称