private async Task CreateOrRemoveRelationOrganizationEmployee(EmployeeRequestDto employeeRequestDto) { var empOrg = await _relationOrganizationEmployeeAppService.GetOrgIdsByEmployeeIds(new List <string>() { employeeRequestDto.Id }); var dbOrgIds = empOrg.Select(r => r.OrganizationId).ToList(); var addOrgIds = employeeRequestDto.OrganizationIds.Except(dbOrgIds); var removeOrgIds = dbOrgIds.Except(employeeRequestDto.OrganizationIds); var addRelationOrgEmp = addOrgIds.Select(o => new RelationOrganizationEmployeeRequestDto { Id = Guid.NewGuid().ToString(), OrganizationId = o, EmployeeId = employeeRequestDto.Id, CreateUserId = employeeRequestDto.CreateUserId, CreateUserName = employeeRequestDto.CreateUserName }); await _relationOrganizationEmployeeAppService.BatchCreateAsync(addRelationOrgEmp.ToList()); var removeRelationOrgEmp = new RelationOrganizationEmployeeRemoveDto { EmployeeId = employeeRequestDto.Id, OrganizationIds = removeOrgIds.ToList(), ModifyUserId = employeeRequestDto.ModifyUserId, ModifyUserName = employeeRequestDto.ModifyUserName, ModifyDate = DateTime.Now }; await _relationOrganizationEmployeeAppService.RemoveByEmployeeIdAndOrgIds(removeRelationOrgEmp); }
/// <summary> /// 根据用户Id和orgId删除 /// </summary> /// <param name="relationOrganizationEmployeeRequestDto"></param> /// <returns></returns> public async Task <bool> RemoveByEmployeeIdAndOrgIds(RelationOrganizationEmployeeRemoveDto relationOrganizationEmployeeRemoveDto) { return(await _relationOrganizationEmployeeRespository.UpdateAsync(e => e.EmployeeId == relationOrganizationEmployeeRemoveDto.EmployeeId && relationOrganizationEmployeeRemoveDto.OrganizationIds.Contains(e.OrganizationId), async (e) => { await Task.Run(() => { e.IsDelete = true; e.ModifyUserId = relationOrganizationEmployeeRemoveDto.ModifyUserId; e.ModifyUserName = relationOrganizationEmployeeRemoveDto.ModifyUserName; e.ModifyDate = relationOrganizationEmployeeRemoveDto.ModifyDate; }); })); }