Эх сурвалжийг харах

上传头像和电子签名的时候删除已有的

zuohuaijun 3 жил өмнө
parent
commit
a15352e93c

+ 18 - 4
Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs

@@ -257,10 +257,17 @@ public class SysFileService : IDynamicApiController, ITransient
     [HttpPost("/sysFile/uploadAvatar")]
     public async Task<FileOutput> UploadAvatar([Required] IFormFile file)
     {
+        var user = App.GetService<UserManager>().User;
+        // 删除当前用户已有头像
+        if (!string.IsNullOrWhiteSpace(user.Avatar) && user.Avatar.EndsWith(".png"))
+        {
+            var fileId = Path.GetFileNameWithoutExtension(user.Avatar);
+            await DeleteFile(new DeleteFileInput { Id = long.Parse(fileId) });
+        }
+
         var res = await UploadFile(file, "Avatar");
-        var userId = App.GetService<UserManager>().UserId;
         await _sysFileRep.ChangeRepository<SqlSugarRepository<SysUser>>()
-            .UpdateAsync(u => new SysUser() { Avatar = res.Url }, u => u.Id == userId);
+            .UpdateAsync(u => new SysUser() { Avatar = res.Url }, u => u.Id == user.Id);
         return res;
     }
 
@@ -272,10 +279,17 @@ public class SysFileService : IDynamicApiController, ITransient
     [HttpPost("/sysFile/uploadSignature")]
     public async Task<FileOutput> UploadSignature([Required] IFormFile file)
     {
+        var user = App.GetService<UserManager>().User;
+        // 删除当前用户已有电子签名
+        if (!string.IsNullOrWhiteSpace(user.Signature) && user.Signature.EndsWith(".png"))
+        {
+            var fileId = Path.GetFileNameWithoutExtension(user.Signature);
+            await DeleteFile(new DeleteFileInput { Id = long.Parse(fileId) });
+        }
+
         var res = await UploadFile(file, "Signature");
-        var userId = App.GetService<UserManager>().UserId;
         await _sysFileRep.ChangeRepository<SqlSugarRepository<SysUser>>()
-            .UpdateAsync(u => new SysUser() { Signature = res.Url }, u => u.Id == userId);
+            .UpdateAsync(u => new SysUser() { Signature = res.Url }, u => u.Id == user.Id);
         return res;
     }
 }

+ 2 - 2
Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs

@@ -159,10 +159,10 @@ public class SysTenantService : IDynamicApiController, ITransient
 
         await _sysUserExtOrgRep.AsDeleteable().Where(u => userIds.Contains(u.UserId)).ExecuteCommandAsync();
 
-        var roles = await _roleRep.AsQueryable().Filter(null, true).Where(u => u.TenantId == input.Id).ToListAsync();
         await _roleRep.AsDeleteable().Where(u => u.TenantId == input.Id).ExecuteCommandAsync();
 
-        var roleIds = roles.Select(u => u.Id).ToList();
+        var roleIds = await _roleRep.AsQueryable().Filter(null, true)
+            .Where(u => u.TenantId == input.Id).Select(u => u.Id).ToListAsync();
         await _sysRoleMenuRep.AsDeleteable().Where(u => roleIds.Contains(u.RoleId)).ExecuteCommandAsync();
 
         await _orgRep.AsDeleteable().Where(u => u.TenantId == input.Id).ExecuteCommandAsync();