private function getQueryFilter()
{
$queryParams = [];
$this->category->setIsActive(true);
if ($this->category->getIsVirtualCategory() || $this->category->getId()) {
$queryParams['must'][] = $this->category->getVirtualRule()->getCategorySearchQuery($this->category);
} elseif (!$this->category->getId()) {
$queryParams['must'][] = $this->getEntityIdFilterQuery([0]);
}
if ((bool) $this->category->getIsVirtualCategory() === false) {
$addedProductIds = $this->category->getAddedProductIds();
$deletedProductIds = $this->category->getDeletedProductIds();
if ($addedProductIds && !empty($addedProductIds)) {
$queryParams = ['should' => $queryParams['must']];
$queryParams['should'][] = $this->getEntityIdFilterQuery($addedProductIds);
}
if ($deletedProductIds && !empty($deletedProductIds)) {
$queryParams['mustNot'][] = $this->getEntityIdFilterQuery($deletedProductIds);
}
}
return $this->queryFactory->create(QueryInterface::TYPE_BOOL, $queryParams);
}