/** * @param \Generated\Shared\Transfer\NodeTransfer $categoryNode * * @return void */ public function moveNode(NodeTransfer $categoryNode) { $obsoleteEntities = $this->queryContainer->queryClosureTableParentEntries($categoryNode->getIdCategoryNode())->find(); foreach ($obsoleteEntities as $obsoleteEntity) { $obsoleteEntity->delete(); } $nodeEntities = $this->queryContainer->queryClosureTableFilterByIdNode($categoryNode->getIdCategoryNode())->find(); $parentEntities = $this->queryContainer->queryClosureTableFilterByIdNodeDescendant($categoryNode->getFkParentCategoryNode())->find(); foreach ($nodeEntities as $nodeEntity) { foreach ($parentEntities as $parentEntity) { $depth = $nodeEntity->getDepth() + $parentEntity->getDepth() + 1; $closureTableEntity = new SpyCategoryClosureTable(); $closureTableEntity->setFkCategoryNode($parentEntity->getFkCategoryNode()); $closureTableEntity->setFkCategoryNodeDescendant($nodeEntity->getFkCategoryNodeDescendant()); $closureTableEntity->setDepth($depth); $closureTableEntity->save(); } } }