update 允许手机号/邮箱

This commit is contained in:
2021-07-02 20:17:41 +08:00
parent 36a9964899
commit 63374ac2c8
9 changed files with 55 additions and 13 deletions

View File

@@ -136,10 +136,10 @@ namespace Ewide.Core.Service
var encryptPasswod = MD5Encryption.Encrypt(password);
#if DEBUG
var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Account.Equals(input.Account));
var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Account.Equals(input.Account) || u.Phone.Equals(input.Account) || u.Email.Equals(input.Account));
#else
// 判断用户名和密码是否正确
var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Account.Equals(input.Account) && u.Password.Equals(encryptPasswod));
var user = await _sysUserRep.FirstOrDefaultAsync(u => (u.Account.Equals(input.Account) || u.Phone.Equals(input.Account) || u.Email.Equals(input.Account)) && u.Password.Equals(encryptPasswod));
_ = user ?? throw Oops.Oh(ErrorCode.D1000);
#endif

View File

@@ -111,7 +111,21 @@ namespace Ewide.Core.Service
// 数据范围检查
await CheckDataScope(input);
var isExist = await _sysUserRep.AnyAsync(u => u.Account == input.Account, false);
var email = input.Email?.ToLower();
var isExist = await _sysUserRep.AnyAsync(u =>
input.Account.Equals(u.Account) ||
input.Account.Equals(u.Phone) ||
input.Account.Equals(u.Email) ||
(!string.IsNullOrWhiteSpace(input.Phone) && (
input.Phone.Equals(u.Account) ||
input.Phone.Equals(u.Phone)
)) ||
(!string.IsNullOrWhiteSpace(email) && (
email.Equals(u.Account) ||
email.Equals(u.Email)
))
, false);
if (isExist) throw Oops.Oh(ErrorCode.D1003);
input.Password = CommonConst.DEFAULT_PASSWORD;
var user = input.Adapt<SysUser>();
@@ -171,8 +185,22 @@ namespace Ewide.Core.Service
// 数据范围检查
await CheckDataScope(input);
var email = input.Email?.ToLower();
// 排除自己并且判断与其他是否相同
var isExist = await _sysUserRep.AnyAsync(u => u.Account == input.Account && u.Id != input.Id, false);
var isExist = await _sysUserRep.AnyAsync(u =>
(input.Account.Equals(u.Account) && !input.Id.Equals(u.Id)) ||
input.Account.Equals(u.Phone) ||
input.Account.Equals(u.Email) ||
(!string.IsNullOrWhiteSpace(input.Phone) && (
input.Phone.Equals(u.Account) ||
(input.Phone.Equals(u.Phone) && !input.Id.Equals(u.Id))
)) ||
(!string.IsNullOrWhiteSpace(email) && (
email.Equals(u.Account) ||
(email.Equals(u.Email) && !input.Id.Equals(u.Id))
))
, false);
if (isExist) throw Oops.Oh(ErrorCode.D1003);
var user = input.Adapt<SysUser>();