From f5b2999408295a0d089c3b0b28d874da08adf321 Mon Sep 17 00:00:00 2001 From: AnonymousDotNet <18776095145@163.com> Date: Sat, 14 Dec 2024 17:19:40 +0800 Subject: [PATCH] fix: Add regionCode to GetUserByUserName API --- .../Repositories/IBotSharpRepository.cs | 2 +- .../Repository/FileRepository/FileRepository.User.cs | 4 ++-- .../BotSharp.Core/Users/Services/UserService.cs | 10 +++++----- .../Repository/MongoRepository.User.cs | 10 +++++----- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Infrastructure/BotSharp.Abstraction/Repositories/IBotSharpRepository.cs b/src/Infrastructure/BotSharp.Abstraction/Repositories/IBotSharpRepository.cs index 3fca7372..9fe1619e 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Repositories/IBotSharpRepository.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Repositories/IBotSharpRepository.cs @@ -32,7 +32,7 @@ public interface IBotSharpRepository : IHaveServiceProvider User? GetUserById(string id) => throw new NotImplementedException(); List GetUserByIds(List ids) => throw new NotImplementedException(); List GetUsersByAffiliateId(string affiliateId) => throw new NotImplementedException(); - User? GetUserByUserName(string userName) => throw new NotImplementedException(); + User? GetUserByUserName(string userName, string regionCode = "CN") => throw new NotImplementedException(); Dashboard? GetDashboard(string id = null) => throw new NotImplementedException(); void CreateUser(User user) => throw new NotImplementedException(); void UpdateExistUser(string userId, User user) => throw new NotImplementedException(); diff --git a/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.User.cs b/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.User.cs index 9d5b42be..989c9ef9 100644 --- a/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.User.cs +++ b/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.User.cs @@ -48,9 +48,9 @@ public partial class FileRepository return Users.Where(x => x.AffiliateId == affiliateId).ToList(); } - public User? GetUserByUserName(string userName = null) + public User? GetUserByUserName(string userName = null, string regionCode = "CN") { - return Users.FirstOrDefault(x => x.UserName == userName.ToLower()); + return Users.FirstOrDefault(x => x.UserName == userName.ToLower() && x.RegionCode == regionCode.ToLower()); } public Dashboard? GetDashboard(string id = null) diff --git a/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs b/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs index a87c55fa..991ef0df 100644 --- a/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs +++ b/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs @@ -50,7 +50,7 @@ public class UserService : IUserService if (!string.IsNullOrWhiteSpace(user.UserName)) { - record = db.GetUserByUserName(user.UserName); + record = db.GetUserByUserName(user.UserName, regionCode: user.RegionCode); } if (record != null && record.Verified) @@ -214,7 +214,7 @@ public class UserService : IUserService var (id, password, regionCode) = base64.SplitAsTuple(":"); var db = _services.GetRequiredService(); - var record = id.Contains("@") ? db.GetUserByEmail(id) : db.GetUserByUserName(id); + var record = id.Contains("@") ? db.GetUserByEmail(id) : db.GetUserByUserName(id, regionCode: regionCode); if (record == null) { record = db.GetUserByPhone(id, regionCode: regionCode); @@ -384,7 +384,7 @@ public class UserService : IUserService } else if (_user.UserName != null) { - user = db.GetUserByUserName(_user.UserName); + user = db.GetUserByUserName(_user.UserName, _user.RegionCode); } else if (_user.Email != null) { @@ -471,7 +471,7 @@ public class UserService : IUserService { var id = model.UserName; var db = _services.GetRequiredService(); - var record = id.Contains("@") ? db.GetUserByEmail(id) : db.GetUserByUserName(id); + var record = id.Contains("@") ? db.GetUserByEmail(id) : db.GetUserByUserName(id, regionCode: (string.IsNullOrWhiteSpace(model.RegionCode) ? "CN" : model.RegionCode)); if (record == null) { record = db.GetUserByPhone(id, regionCode: (string.IsNullOrWhiteSpace(model.RegionCode) ? "CN" : model.RegionCode)); @@ -515,7 +515,7 @@ public class UserService : IUserService var db = _services.GetRequiredService(); - var user = db.GetUserByUserName(userName); + var user = db.GetUserByUserName(userName, regionCode: "CN"); if (user != null && user.Verified) { return true; diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.User.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.User.cs index 3c76e21d..c463541f 100644 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.User.cs +++ b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.User.cs @@ -61,9 +61,9 @@ public partial class MongoRepository return users?.Any() == true ? users.Select(x => x.ToUser()).ToList() : new List(); } - public User? GetUserByUserName(string userName) + public User? GetUserByUserName(string userName, string regionCode = "CN") { - var user = _dc.Users.AsQueryable().FirstOrDefault(x => x.UserName == userName.ToLower()); + var user = _dc.Users.AsQueryable().FirstOrDefault(x => x.UserName == userName.ToLower() && x.RegionCode == regionCode.ToLower()); return user != null ? user.ToUser() : null; } @@ -331,10 +331,10 @@ public partial class MongoRepository .FirstOrDefault(x => x.Id == userId || (x.ExternalId != null && x.ExternalId == userId)); if (user == null) return; var curDash = user.Dashboard ?? new Dashboard(); - curDash.ConversationList.Add(new DashboardConversation - { + curDash.ConversationList.Add(new DashboardConversation + { Id = Guid.NewGuid().ToString(), - ConversationId = conversationId + ConversationId = conversationId }); var filter = Builders.Filter.Eq(x => x.Id, userId);