using LFlow.Base.Interfaces; using LFlow.Base.Utils; using LFlow.UserManagement.Model; using LFlow.UserManagement.Util; namespace LFlow.UserManagement.Service { /// /// 在线管理服务 /// public class UserManagementService(IRepo repo) : IUserManagementService { public UserDto? Login(UserDto user) { var userPwd = PasswordHelper.HashPassword(user.UserPassword); var userModel = repo.WhereSearchId(new UserModel { UserName = user.UserName, UserPassword = userPwd }); if (userModel == null || !userModel.Any()) { return null; } var loginedUser = repo.Get(userModel.FirstOrDefault()); loginedUser.UserPassword = ""; return loginedUser.MapTo(); } public Task? LoginAsync(UserDto user) { return Task.FromResult(this.Login(user)); } public UserDto? Register(UserDto user) { if (user.UserEmail == null || user.UserName == null || user.UserPassword == null) { throw new Exception("用户名、密码、邮箱不能为空"); } var userPwd = PasswordHelper.HashPassword(user.UserPassword); var ids = repo.WhereSearchId(new UserModel { UserName = user.UserName }); if (ids != null && ids.Count > 0) { throw new Exception("用户名已存在"); } var userModel = new UserModel { ID = Guid.NewGuid().ToString(), UserName = user.UserName, UserEmail = user.UserEmail, UserPassword = userPwd }; var savedUser = repo.SaveOrUpdate(userModel, false).MapTo(); savedUser.UserPassword = ""; return savedUser; } public Task RegisterAsync(UserDto user) { return Task.FromResult(this.Register(user)); } } }