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 });
+ }
+ }
+
+ }
+ }
}