diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 0917362b4..c31bc7f07 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -1449,6 +1449,13 @@ + + + 复制文件或者文件夹 + + + + 获取历史版本 diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs index 4aedcfe5e..913a1823f 100644 --- a/IRaCIS.Core.Application/Service/Management/UserService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserService.cs @@ -1021,7 +1021,7 @@ namespace IRaCIS.Core.Application.Service } - + //登录成功的,才会算异地登录 if (loginUser.Status == 0) { await _userLogRepository.AddAsync(new UserLog() { IP = _userInfo.IP, ActionIdentityUserId = loginUser.IdentityUserId, ActionUserName = loginUser.UserName, OptType = UserOptType.LoginLockedAccount, IsLoginUncommonly = isLoginUncommonly }, true); diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs index 9053cb529..a0909f0e2 100644 --- a/IRaCIS.Core.Application/TestService.cs +++ b/IRaCIS.Core.Application/TestService.cs @@ -97,7 +97,7 @@ namespace IRaCIS.Core.Application.Service } [AllowAnonymous] - public async Task NewIP([FromServices] IRepository _userLogRepository) + public async Task NewIP([FromServices] IRepository _userLogRepository, [FromServices] IRepository _identityUserRepository) { var path = Path.Combine(AppContext.BaseDirectory, StaticData.Folder.Resources, "GeoLite2-City.mmdb"); @@ -112,6 +112,20 @@ namespace IRaCIS.Core.Application.Service } + + #region 用户表最后一次登录的ipRegion 需要维护 + + var userList = _identityUserRepository.Where(t => t.LastLoginIP != "").Select(t => new { t.Id, t.LastLoginIP, t.UpdateUserId }).ToList(); + + foreach (var user in userList) + { + var lastLoginRegion = _userLogRepository.Where(t => t.ActionIdentityUserId == user.Id && (t.OptType == UserOptType.Login || t.OptType == UserOptType.LoginLockedAccount)).OrderByDescending(t => t.CreateTime).Select(t => t.IPRegion).FirstOrDefault()??string.Empty; + + await _identityUserRepository.BatchUpdateNoTrackingAsync(t => t.Id == user.Id, u => new Domain.Models.IdentityUser() { LastLoginIP = lastLoginRegion, UpdateUserId = user.UpdateUserId }); + } + + #endregion + return ResponseOutput.Ok(); }