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));
}
}
}