From 0b958f21a5604e8b62d65cce921d06fb5fc1e3f8 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 21 Apr 2025 13:37:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=87=E6=8D=A2=E8=A7=92?= =?UTF-8?q?=E8=89=B2=20=E7=BB=9F=E4=B8=80=E5=AF=86=E7=A0=81=EF=BC=8CcheckC?= =?UTF-8?q?ode=20=E9=A6=96=E6=AC=A1=E7=99=BB=E5=BD=95=E6=A0=87=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 9 +++++ .../Service/Management/UserService.cs | 16 +++++--- .../BeforeSaveTrigger/UserLogTrigger.cs | 37 +++++++++++++++++++ 3 files changed, 57 insertions(+), 5 deletions(-) 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 }); + } + } + + } + } }