瀏覽代碼

fixed: update user

xf 1 年之前
父節點
當前提交
acfc759992

+ 14 - 7
src/Hotline.Api/Controllers/UserController.cs

@@ -184,23 +184,30 @@ public class UserController : BaseController
     [HttpPut]
     public async Task Update([FromBody] UpdateUserDto dto)
     {
-        var account = await _accountRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
-        CheckAccountStatus(account);
+        //var account = await _accountRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
+        //CheckAccountStatus(account);
 
-        var user = await _userRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
+        //var user = await _userRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
+        var user = await _userRepository.Queryable()
+            .Includes(d => d.Account)
+            .FirstAsync(d => d.Id == dto.Id, HttpContext.RequestAborted);
         if (user is null)
             throw UserFriendlyException.SameMessage("无效用户编号");
         if (user.IsDeleted)
             throw UserFriendlyException.SameMessage("账号不存在");
+        CheckAccountStatus(user.Account);
 
         _mapper.Map(dto, user);
-        _mapper.Map(dto, account);
-        await _accountRepository.UpdateNav(account).Include(d => d.User)
-            .ExecuteCommandAsync();
+        //_mapper.Map(dto, account);
+        //await _accountRepository.UpdateNav(account).Include(d => d.User)
+        //    .ExecuteCommandAsync();
         //await _userRepository.UpdateAsync(user, HttpContext.RequestAborted);
 
+        await _userRepository.UpdateNav(user).Include(d => d.Account)
+            .ExecuteCommandAsync();
+
         //set roles
-        await _accountRepository.SetAccountRolesAsync(account.Id, dto.RoleIds, HttpContext.RequestAborted);
+        await _accountRepository.SetAccountRolesAsync(user.Id, dto.RoleIds, HttpContext.RequestAborted);
     }
 
     /// <summary>

+ 3 - 0
src/Hotline.Application/Mappers/IdentityMapperConfigs.cs

@@ -15,6 +15,9 @@ public class IdentityMapperConfigs : IRegister
         config.ForType<AddUserDto, User>()
             .Map(d => d.Name, x => x.Name ?? x.UserName);
 
+        config.ForType<UpdateUserDto, User>()
+            .Map(d => d.Account, s => s);
+
         config.NewConfig<User, UserDto>()
             .IgnoreIf((s, d) => s.Account == null, d => d.UserName)
             .IgnoreIf((s, d) => s.Roles == null || !s.Roles.Any(), d => d.RoleNames)