diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 1adcaa98f..4399d14d9 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -2285,6 +2285,15 @@ + + + 同济生成账号 + + + + + + 用户登陆 diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs index 2ac776fa9..a3ab6a1fc 100644 --- a/IRaCIS.Core.Application/Service/Management/UserService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserService.cs @@ -363,7 +363,7 @@ namespace IRaCIS.Core.Application.Service await VerifyUserPwdAsync(userId, newPwd); - var success = await _userRepository.BatchUpdateNoTrackingAsync(t => t.Id == userId, u => new User() + await _userRepository.UpdatePartialFromQueryAsync(t => t.Id == userId, u => new User() { Password = newPwd, IsFirstAdd = false @@ -371,7 +371,7 @@ namespace IRaCIS.Core.Application.Service await _userLogRepository.AddAsync(new UserLog() { IP = _userInfo.IP, LoginUserId = userId, OptUserId = userId, LoginPassword = newPwd, OptType = UserOptType.UnloginModifyPasswoed }, true); - return ResponseOutput.Result(success); + return ResponseOutput.Ok(); } @@ -636,7 +636,13 @@ namespace IRaCIS.Core.Application.Service return ResponseOutput.Ok(); } - + /// + /// 同济生成账号 + /// + /// + /// + /// + /// [AllowAnonymous] [HttpGet] public async Task TJUserLoginInfo(string token, @@ -1034,7 +1040,7 @@ namespace IRaCIS.Core.Application.Service } - var success = await _userRepository.BatchUpdateNoTrackingAsync(t => t.Id == _userInfo.Id, u => new User() + await _userRepository.UpdatePartialFromQueryAsync(t => t.Id == _userInfo.Id, u => new User() { Password = editPwModel.NewPassWord, CheckCode = editPwModel.CheckCode, @@ -1043,7 +1049,7 @@ namespace IRaCIS.Core.Application.Service await _userLogRepository.AddAsync(new UserLog() { IP = _userInfo.IP, LoginUserId = _userInfo.Id, OptUserId = _userInfo.Id, OptType = UserOptType.LoginModifyPassword }, true); - return ResponseOutput.Result(success); + return ResponseOutput.Ok(); diff --git a/IRaCIS.Core.Application/Triggers/BeforeSaveTrigger/UserLogTrigger.cs b/IRaCIS.Core.Application/Triggers/BeforeSaveTrigger/UserLogTrigger.cs index 9f325a308..fcc21dc52 100644 --- a/IRaCIS.Core.Application/Triggers/BeforeSaveTrigger/UserLogTrigger.cs +++ b/IRaCIS.Core.Application/Triggers/BeforeSaveTrigger/UserLogTrigger.cs @@ -41,4 +41,41 @@ namespace IRaCIS.Core.Application.Triggers } } + + public class UserModifyTrigger(IUserInfo _userInfo, IRepository _userReposiotry) : IBeforeSaveTrigger + { + public async Task BeforeSave(ITriggerContext context, CancellationToken cancellationToken) + { + var user = context.Entity; + + var beforeUser = context.UnmodifiedEntity; + + if (context.ChangeType == ChangeType.Modified) + { + + if (beforeUser.IsFirstAdd == false && user.IsFirstAdd == true) + { + + await _userReposiotry.BatchUpdateNoTrackingAsync(t => t.EMail == user.EMail, u => new User() { IsFirstAdd = true }); + } + + if (beforeUser.Password != user.Password) + { + await _userReposiotry.BatchUpdateNoTrackingAsync(t => t.EMail == user.EMail, u => new User() { Password = user.Password }); + } + + + if (beforeUser.EMail != user.EMail) + { + await _userReposiotry.BatchUpdateNoTrackingAsync(t => t.EMail == user.EMail, u => new User() { EMail = user.EMail }); + } + + if (beforeUser.CheckCode != user.CheckCode) + { + await _userReposiotry.BatchUpdateNoTrackingAsync(t => t.EMail == user.EMail, u => new User() { CheckCode = user.CheckCode }); + } + } + + } + } }