|
|
@ -165,10 +165,64 @@ namespace Wood.Service.SystemManage |
|
|
|
throw Oops.Oh("登录失败,没有相关用户信息!"); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 用户租户登录
|
|
|
|
/// </summary>
|
|
|
|
[AllowAnonymous] |
|
|
|
/// <summary>
|
|
|
|
/// 用户登录
|
|
|
|
/// </summary>
|
|
|
|
/// <returns>可用租户信息</returns>
|
|
|
|
[AllowAnonymous] |
|
|
|
public async Task<dynamic> LoginExtned(UserLoginParam param) |
|
|
|
{ |
|
|
|
if (!(int.TryParse(param.CaptchaCode, out int val) && _cache.TryGetCache<int>(param.Captcha, out int cacheVal) && val == cacheVal)) |
|
|
|
{ |
|
|
|
_cache.RemoveCache(param.Captcha); |
|
|
|
throw Oops.Oh("验证码错误!"); |
|
|
|
} |
|
|
|
|
|
|
|
_cache.SetCache(param.Captcha, param.UserName, DateTime.Now.AddMinutes(5)); |
|
|
|
|
|
|
|
var users = await _userRepository.AsQueryable() |
|
|
|
.Where(it => it.UserName == param.UserName) |
|
|
|
.Where(it => it.Status == 1) |
|
|
|
.ToListAsync(); |
|
|
|
|
|
|
|
if (users == null || users.Count < 1) |
|
|
|
throw Oops.Oh($"不存在用户【{param.UserName}】!"); |
|
|
|
List<UserEntity> passOk = new List<UserEntity>(); //密码验证通过的账户信息
|
|
|
|
foreach (var item in users) |
|
|
|
{ |
|
|
|
if (param!.Password == CryptogramHelper.GMSM4Decrypt(item.Password)) |
|
|
|
passOk.Add(item); |
|
|
|
} |
|
|
|
|
|
|
|
if (passOk.Any()) |
|
|
|
{ |
|
|
|
var tenantIds = passOk.Select(it => it.TenantId).ToList(); |
|
|
|
var tenants = await _tenantRepository.AsQueryable() |
|
|
|
.Where(it => tenantIds.Contains(it.Id)) |
|
|
|
.Select(it => new { it.Id, it.TenantName, it.Status }) |
|
|
|
.ToListAsync(); |
|
|
|
|
|
|
|
if (tenants.All(it => it.Status != 1)) |
|
|
|
throw Oops.Oh("登录失败,账号已经冻结!"); |
|
|
|
|
|
|
|
return tenants; |
|
|
|
} |
|
|
|
throw Oops.Oh("登录失败,没有相关用户信息!"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 用户租户登录
|
|
|
|
/// </summary>
|
|
|
|
[AllowAnonymous] |
|
|
|
public async Task<JwtToken> TenantLogin(UserTenantLoginParam param) |
|
|
|
{ |
|
|
|
if (_cache.TryGetCache(param.Captcha, out string? cacheVal) && cacheVal == param.UserName) |
|
|
|