修改用户校验

Uat_Study
hang 2022-05-26 09:23:32 +08:00
parent 536d80718e
commit 815ed6e31c
4 changed files with 29 additions and 21 deletions

View File

@ -37,7 +37,9 @@ namespace IRaCIS.Core.API
.AddJsonFile($"appsettings.{environment}.json", false, true);
})
.Build();
Log.Logger.Warning($"当前环境:{environment}");
NewId.SetProcessIdProvider(new CurrentProcessIdProvider());
@ -50,7 +52,7 @@ namespace IRaCIS.Core.API
//缓存项目的状态 匿名化数据
await InitCache(host);
//Log.Logger.Error("»º´æÏîĿ״̬Íê±Ï");
host.Run();
}

View File

@ -12,11 +12,11 @@
},
"BasicSystemConfig": {
"OpenUserComplexPassword": true,
"OpenUserComplexPassword": false,
"OpenSignDocumentBeforeWork": true,
"OpenSignDocumentBeforeWork": false,
"OpenTrialRelationDelete": false
"OpenTrialRelationDelete": true
}

View File

@ -12,7 +12,7 @@
},
"BasicSystemConfig": {
"OpenUserComplexPassword": false,
"OpenUserComplexPassword": true,
"OpenSignDocumentBeforeWork": true
}

View File

@ -41,26 +41,26 @@ namespace IRaCIS.Application.Services
private async Task VerifyUserNameAsync(Guid userId, string userName)
private async Task VerifyUserNameAsync(Guid? userId, string userName)
{
if (await _userRepository.AnyAsync(t => t.UserName == userName && t.Id != userId))
if (await _userRepository.WhereIf(userId!=null,t=>t.Id!=userId).AnyAsync(t => t.UserName == userName ))
{
throw new BusinessValidationFailedException("用户名已经存在。");
}
}
private async Task VerifyUserPhoneAsync(Guid userId, Guid userTypeId, string phone)
private async Task VerifyUserPhoneAsync(Guid? userId, Guid userTypeId, string phone)
{
if (await _userRepository.AnyAsync(t => (t.Phone == phone && t.UserTypeId == userTypeId && t.Id != userId)))
if (await _userRepository.WhereIf(userId != null, t => t.Id != userId).AnyAsync(t => (t.Phone == phone && t.UserTypeId == userTypeId )))
{
throw new BusinessValidationFailedException("该用户类型中已存在具有相同的电话的用户。");
}
}
private async Task VerifyUserEmailAsync(Guid userId, Guid userTypeId, string email)
private async Task VerifyUserEmailAsync(Guid? userId, Guid userTypeId, string email)
{
if (await _userRepository.AnyAsync(t => (t.EMail == email && t.UserTypeId == userTypeId && t.Id != userId)))
if (await _userRepository.WhereIf(userId != null, t => t.Id != userId).AnyAsync(t => (t.EMail == email && t.UserTypeId == userTypeId)))
{
throw new BusinessValidationFailedException("该用户类型中已存在具有相同邮箱的用户。");
}
@ -78,8 +78,13 @@ namespace IRaCIS.Application.Services
throw new BusinessValidationFailedException("新密码与旧密码相同。");
}
var dbUser = (await _userRepository.FirstOrDefaultAsync(t => t.Id == userId)).IfNullThrowException();
if (oldPwd != null && dbUser.Password != oldPwd)
{
throw new BusinessValidationFailedException("旧密码验证失败。");
}
if (dbUser.Password == newPwd)
{
@ -87,10 +92,7 @@ namespace IRaCIS.Application.Services
}
if (dbUser.Password != oldPwd)
{
throw new BusinessValidationFailedException("旧密码验证失败。");
}
//正则 至少8个字符至少1个大写字母1个小写字母1个数字和1个特殊字符
@ -441,7 +443,7 @@ namespace IRaCIS.Application.Services
/// 根据用户Id获取用户详细信息[New]
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
/// <returns></returns>xiuga
[HttpGet("{id:guid}")]
public async Task<UserDetailDTO> GetUser(Guid id)
{
@ -457,10 +459,13 @@ namespace IRaCIS.Application.Services
[UnitOfWork]
public async Task<IResponseOutput<UserAddedReturnDTO>> AddUser(UserCommand userAddModel)
{
if (await _userRepository.AnyAsync(t => t.UserName == userAddModel.UserName || (t.EMail == userAddModel.EMail && t.UserTypeId == userAddModel.UserTypeId)))
{
return ResponseOutput.NotOk(" 该用户类型中已存在具有相同用户名或者邮箱的用户。", new UserAddedReturnDTO());
}
await VerifyUserNameAsync(null, userAddModel.UserName);
await VerifyUserEmailAsync(null, userAddModel.UserTypeId, userAddModel.EMail);
await VerifyUserPhoneAsync(null, userAddModel.UserTypeId, userAddModel.Phone);
var saveItem = _mapper.Map<User>(userAddModel);
@ -500,6 +505,7 @@ namespace IRaCIS.Application.Services
await VerifyUserEmailAsync(model.Id, model.UserTypeId, model.EMail);
await VerifyUserPhoneAsync(model.Id, model.UserTypeId, model.Phone);
var user = await _userRepository.FirstOrDefaultAsync(t => t.Id == model.Id);