From bdae9766dc703be4ae9e9f19e038ff2c9cbe0912 Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Thu, 6 Jan 2022 08:54:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E9=A6=96=E6=AC=A1=E7=99=BB=E5=BD=95=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BootstrapAdminConventionMapper.cs | 2 - .../Services/DefaultDataService.cs | 2 +- .../Services/UserService.cs | 58 +++++++++++++------ .../admin/BootstrapAdmin.Web.Core/IUser.cs | 3 +- 4 files changed, 41 insertions(+), 24 deletions(-) diff --git a/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/BootstrapAdminConventionMapper.cs b/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/BootstrapAdminConventionMapper.cs index 1f583def..0bbaa2da 100644 --- a/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/BootstrapAdminConventionMapper.cs +++ b/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/BootstrapAdminConventionMapper.cs @@ -44,8 +44,6 @@ class BootstrapAdminConventionMapper : ConventionMapper var ci = base.GetColumnInfo(pocoProperty); var resultColumns = new List { - nameof(Models.User.Password), - nameof(Models.User.PassSalt), nameof(Models.User.NewPassword), nameof(Models.User.ConfirmPassword), nameof(Models.User.Period), diff --git a/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/DefaultDataService.cs b/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/DefaultDataService.cs index cfa887e1..eb7288a0 100644 --- a/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/DefaultDataService.cs +++ b/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/DefaultDataService.cs @@ -49,7 +49,7 @@ class DefaultDataService : DataServiceBase where TModel : class, { if (model is User user) { - UserService.SaveUser(user.Id, user.UserName, user.DisplayName, user.NewPassword); + UserService.SaveUser(user.UserName, user.DisplayName, user.NewPassword); } else { diff --git a/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/UserService.cs b/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/UserService.cs index d5f1ee8c..b4e90228 100644 --- a/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/UserService.cs +++ b/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/UserService.cs @@ -128,7 +128,7 @@ class UserService : BaseDatabase, IUser } /// - /// + /// 创建手机用户 /// /// /// @@ -139,11 +139,13 @@ class UserService : BaseDatabase, IUser var ret = false; try { - var user = GetAll().FirstOrDefault(user => user.UserName == phone); + var salt = LgbCryptography.GenerateSalt(); + var pwd = LgbCryptography.ComputeHash(code, salt); + var user = Database.FirstOrDefault("UserName = @0", phone); if (user == null) { - var salt = LgbCryptography.GenerateSalt(); Database.BeginTransaction(); + // 插入用户 user = new User() { ApprovedBy = "Mobile", @@ -157,12 +159,17 @@ class UserService : BaseDatabase, IUser App = appId }; Database.Save(user); - // Authorization var roleIds = Database.Fetch("select ID from Roles where RoleName in (@roles)", new { roles }); Database.InsertBatch("UserRole", roleIds.Select(g => new { RoleID = g, UserID = user.Id })); Database.CompleteTransaction(); } + else + { + user.PassSalt = salt; + user.Password = pwd; + Database.Update(user); + } ret = true; } catch (Exception) @@ -173,26 +180,35 @@ class UserService : BaseDatabase, IUser return ret; } - public bool SaveUser(string? id, string userName, string displayName, string password) + public bool SaveUser(string userName, string displayName, string password) { var salt = LgbCryptography.GenerateSalt(); var pwd = LgbCryptography.ComputeHash(password, salt); - if (string.IsNullOrEmpty(id)) + var user = Database.FirstOrDefault("UserName = @0", userName); + bool ret; + if (user == null) { try { - if (!Database.Exists("UserName = @0", userName)) + // 开始事务 + Database.BeginTransaction(); + user = new User() { - // 开始事务 - Database.BeginTransaction(); - // 插入用户 - Database.Execute("INSERT INTO Users (UserName, Password, PassSalt, DisplayName, RegisterTime, ApprovedTime, ApprovedBy, Description) values (@0, @1, @2, @3, @4, @4, 'system', '系统默认创建');", userName, pwd, salt, displayName, DateTime.Now); - - // 授权 Default 角色 - Database.Execute("insert into UserRole (UserID, RoleID) select ID, (select ID from Roles where RoleName = 'Default') RoleId from Users where UserName = @0", userName); - // 结束事务 - Database.CompleteTransaction(); - } + ApprovedBy = "System", + ApprovedTime = DateTime.Now, + DisplayName = "手机用户", + UserName = userName, + Icon = "default.jpg", + Description = "系统默认创建", + PassSalt = salt, + Password = pwd + }; + Database.Save(user); + // 授权 Default 角色 + Database.Execute("insert into UserRole (UserID, RoleID) select ID, (select ID from Roles where RoleName = 'Default') RoleId from Users where UserName = @0", userName); + // 结束事务 + Database.CompleteTransaction(); + ret = true; } catch (Exception) { @@ -202,8 +218,12 @@ class UserService : BaseDatabase, IUser } else { - Database.Update("set Password = @1, PassSalt = @2, DisplayName = @3 where Id = @0", id, pwd, salt, displayName); + user.DisplayName = displayName; + user.PassSalt = salt; + user.Password = pwd; + Database.Update(user); + ret = true; } - return true; + return ret; } } diff --git a/src/blazor/admin/BootstrapAdmin.Web.Core/IUser.cs b/src/blazor/admin/BootstrapAdmin.Web.Core/IUser.cs index 342b0f64..c1229be2 100644 --- a/src/blazor/admin/BootstrapAdmin.Web.Core/IUser.cs +++ b/src/blazor/admin/BootstrapAdmin.Web.Core/IUser.cs @@ -84,10 +84,9 @@ public interface IUser /// /// /// - /// /// /// /// /// - bool SaveUser(string? id, string userName, string displayName, string password); + bool SaveUser(string userName, string displayName, string password); }