/**
     * Adds categories to query parts if present in contraints
     *
     * @param \Evoweb\StoreFinder\Domain\Model\Constraint $constraint
     * @param array $queryParts
     * @return array
     */
    protected function addCategoryQueryPart($constraint, $queryParts)
    {
        /** @var \TYPO3\CMS\Core\Database\DatabaseConnection $database */
        $database = $GLOBALS['TYPO3_DB'];
        if ($this->settings['categoryPriority'] == 'limitResultsToCategories') {
            $constraint->setCategory(GeneralUtility::intExplode(',', $this->settings['categories'], 1));
        } elseif ($this->settings['categoryPriority'] == 'useSelectedCategoriesIfNoFilterSelected' && !count($constraint->getCategory())) {
            $constraint->setCategory(GeneralUtility::intExplode(',', $this->settings['categories'], 1));
        }
        $categories = $this->fetchCategoriesRecursive($constraint->getCategory());
        if (!empty($categories)) {
            $queryParts['FROM'] .= ' INNER JOIN sys_category_record_mm c ON (l.uid = c.uid_foreign
				AND c.tablenames = \'tx_storefinder_domain_model_location\' AND c.fieldname = \'categories\')';
            $queryParts['WHERE'] .= ' AND c.uid_local IN (' . implode(',', $database->cleanIntArray($categories)) . ')';
        }
        return $queryParts;
    }