public async Task <IResultModel> Sync(AccountSyncModel model) { var entity = await _accountRepository.GetAsync(model.Id); if (entity == null) { return(ResultModel.Failed("账户不存在!")); } var account = _mapper.Map(model, entity); var exists = await Exists(account); if (!exists.Successful) { return(exists); } if (model.NewPassword.NotNull()) { account.Password = _passwordHandler.Encrypt(account.UserName, model.NewPassword); } using (var uow = _dbContext.NewUnitOfWork()) { var result = await _accountRepository.UpdateAsync(account, uow); if (result) { if (model.Roles != null) { result = await _accountRoleRepository.DeleteByAccount(account.Id, uow); } if (model.Roles != null && model.Roles.Any()) { var accountRoleList = model.Roles.Select(m => new AccountRoleEntity { AccountId = account.Id, RoleId = m }).ToList(); result = await _accountRoleRepository.AddAsync(accountRoleList, uow); } if (result) { uow.Commit(); ClearPermissionListCache(account.Id); await ClearCache(true, entity.Id); return(ResultModel.Success()); } } } return(ResultModel.Failed()); }
public async Task <IResultModel> UpdateContact(EmployeeContactUpdateModel model) { var employee = await _repository.GetAsync(model.EmployeeId); if (employee == null) { return(ResultModel.NotExists); } var entity = await _contactRepository.GetByEmployee(model.EmployeeId) ?? new EmployeeContactEntity(); _mapper.Map(model, entity); ClearContactAreaInfo(entity); SetContactAreaInfo(entity, model.Area); bool result; if (entity.Id > 0) { result = await _contactRepository.UpdateAsync(entity); } else { result = await _contactRepository.AddAsync(entity); } if (result) { var account = await _accountRepository.GetAsync(employee.AccountId); if (account != null) { var syncModel = new AccountSyncModel { Id = account.Id, Name = account.Name, Email = model.Email ?? string.Empty, Phone = model.Phone ?? string.Empty, Roles = null, UserName = account.UserName }; await _accountService.Sync(syncModel); } return(ResultModel.Success()); } return(ResultModel.Failed()); }
public async Task <IResultModel> Update(EmployeeBaseUpdateModel model) { var entity = await _repository.GetAsync(model.Id); if (entity == null) { return(ResultModel.NotExists); } _mapper.Map(model, entity); entity.JoinDate = entity.JoinDate.Date; var result = await _repository.UpdateAsync(entity); if (result) { var account = await _accountRepository.GetAsync(entity.AccountId); if (account != null) { var syncModel = new AccountSyncModel { Id = account.Id, Name = entity.Name, Email = account.Email, Phone = account.Phone, Roles = null, UserName = account.UserName }; await _accountService.Sync(syncModel); } //清除缓存 await _cacheHandler.RemoveAsync(CacheKeys.EMPLOYEE_TREE); await _cacheHandler.RemoveAsync($"{CacheKeys.EMPLOYEE_BASE_INFO}:{entity.Id}"); } return(ResultModel.Result(result)); }
/// <summary> /// 账户更新 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <IResultModel> UpdateAccount(EmployeeAccountUpdateModel model) { var employee = await _repository.GetAsync(model.Id); if (employee == null) { return(ResultModel.NotExists); } if (await _accountRepository.ExistsUserName(model.UserName, employee.AccountId, AccountType.User)) { return(ResultModel.Failed("用户名已存在")); } var account = await _accountRepository.GetAsync(employee.AccountId); if (account != null) { var syncModel = new AccountSyncModel { Id = account.Id, Name = account.Name, Email = account.Email, Phone = account.Phone, Roles = model.Roles, UserName = model.UserName, NewPassword = model.Password }; var result = await _accountService.Sync(syncModel); return(ResultModel.Result(result.Successful)); } return(ResultModel.Failed()); }