private async Task CreateOrRemoveRelationRoleEmployee(EmployeeRequestDto employeeRequestDto) { var empRole = await _relationEmployeeRoleAppService.GetRoleIdsByEmployeeIds(new List <string>() { employeeRequestDto.Id }); var dbRoleIds = empRole.Select(r => r.RoleId).ToList(); var addRoleIds = employeeRequestDto.RoleIds.Except(dbRoleIds); var removeRoleIds = dbRoleIds.Except(employeeRequestDto.RoleIds); var addRelationRoleEmp = addRoleIds.Select(o => new RelationEmployeeRoleRequestDto { Id = Guid.NewGuid().ToString(), RoleId = o, EmployeeId = employeeRequestDto.Id, CreateUserId = employeeRequestDto.CreateUserId, CreateUserName = employeeRequestDto.CreateUserName }); await _relationEmployeeRoleAppService.BatchCreateAsync(addRelationRoleEmp.ToList()); var removeRelationRoleEmp = new RelationEmployeeRoleRemoveDto { EmployeeId = employeeRequestDto.Id, RoleIds = removeRoleIds.ToList(), ModifyUserId = employeeRequestDto.ModifyUserId, ModifyUserName = employeeRequestDto.ModifyUserName, ModifyDate = DateTime.Now }; await _relationEmployeeRoleAppService.RemoveByEmployeeIdAndRoleIds(removeRelationRoleEmp); }
/// <summary> /// 批量新增 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <JsonResponse> BatchCreate(RelationEmployeeRoleBatchRequestDto input) { foreach (var relationEmployeeRoleRequestDto in input.RelationEmployeeRoleRequestList) { relationEmployeeRoleRequestDto.InitCreateRequest(input.Payload); } var resJson = await _applicationEnginee.TryTransactionAsync(async() => { await _relationEmployeeRoleAppService.BatchCreateAsync(input.RelationEmployeeRoleRequestList); }); return(resJson); }