private function saveTermsRelation(\Magento\Framework\Model\AbstractModel $object)
{
$termRelations = $object->getTermsRelations();
$termRelations = array_filter($termRelations);
if (is_array($termRelations) && count($termRelations) > 0) {
$expansionTermLinks = [];
$referenceTermLinks = [];
$termId = 0;
foreach ($termRelations as $termData) {
$termId++;
if ($object->getType() === ThesaurusInterface::TYPE_EXPANSION) {
$referenceTermLinks[] = ['term_id' => $termId, 'term' => trim(strtolower($termData['reference_term'])), ThesaurusInterface::THESAURUS_ID => (int) $object->getThesaurusId()];
}
$termList = explode(",", $termData['values']);
foreach ($termList as $term) {
$expansionTermLinks[] = ['term_id' => $termId, 'term' => trim(strtolower($term)), ThesaurusInterface::THESAURUS_ID => (int) $object->getThesaurusId()];
}
}
$this->deleteThesaurusRelations($object);
// Saves expansion terms for a thesaurus. Expansion terms are used by expansion AND synonym thesauri.
$this->getConnection()->insertOnDuplicate($this->getTable(ThesaurusInterface::EXPANSION_TABLE_NAME), $expansionTermLinks, array_keys(current($expansionTermLinks)));
$this->saveReferenceTerms($object, $referenceTermLinks);
}
}