From 45dd2e90c5a8d1bfea595a9a34a4628ecea7ecc6 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Fri, 16 Aug 2024 11:27:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9ip=E4=B8=8D=E4=B8=80=E6=A0=B7?= =?UTF-8?q?=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/Service/Management/UserService.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs index 795cb8553..e25cfbfc5 100644 --- a/IRaCIS.Core.Application/Service/Management/UserService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserService.cs @@ -18,6 +18,7 @@ using LoginReturnDTO = IRaCIS.Application.Contracts.LoginReturnDTO; using IRaCIS.Core.Application.Auth; using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Application.Helper; +using IP2Region.Net.Abstractions; namespace IRaCIS.Application.Services { @@ -37,6 +38,7 @@ namespace IRaCIS.Application.Services private readonly IReadingImageTaskService _readingImageTaskService; private readonly IOptionsMonitor _verifyConfig; private readonly SystemEmailSendConfig _systemEmailConfig; + public ISearcher _searcher; public UserService(IRepository userRepository, @@ -44,6 +46,7 @@ namespace IRaCIS.Application.Services IRepository verificationCodeRepository, IRepository doctorRepository, IEasyCachingProvider cache, + ISearcher searcher, IReadingImageTaskService readingImageTaskService, IRepository userTrialRepository, IOptionsMonitor verifyConfig, @@ -57,6 +60,7 @@ namespace IRaCIS.Application.Services this._userPassWordLogRepository = userPassWordLogRepository; _verifyConfig = verifyConfig; _cache = cache; + this._searcher = searcher; this._readingImageTaskService = readingImageTaskService; _userRepository = userRepository; _mailVerificationService = mailVerificationService; @@ -828,10 +832,12 @@ namespace IRaCIS.Application.Services }); } + var ipinfo = _searcher.Search(_userInfo.IP); + var iPRegion = string.Join('|', ipinfo.Split('|').TakeLast(3)); await _userRepository.BatchUpdateNoTrackingAsync(x => x.Id == loginUser.Id, x => new User() { - LastLoginIP = _userInfo.IP, + LastLoginIP = iPRegion, LastLoginTime = DateTime.Now });