search refactor3

This commit is contained in:
merdan 2023-08-15 13:57:45 +05:00
parent 56a0958338
commit 2df079c65a
1 changed files with 35 additions and 25 deletions

View File

@ -523,37 +523,47 @@ class ProductRepository extends PRepository
$qb = app(ProductFlatRepository::class)->getModel()::search(implode(' OR ', $queries),function($index, $query, $options){ $qb = app(ProductFlatRepository::class)->getModel()::search(implode(' OR ', $queries),function($meilisearch, $query, $options) use ($params){
$channel = core()->getRequestedChannelCode(); $channel = core()->getRequestedChannelCode();
$locale = core()->getRequestedLocaleCode(); $locale = core()->getRequestedLocaleCode();
$options['filters'] = "(locale = $locale) AND (channel = $channel)"; $options['filters'] = "(locale = $locale) AND (channel = $channel)";
}); $options['sort'] = ['name:asc'];
// ->where('status', 1) # sort direction
// ->where('visible_individually', 1)
// ->where('channel', $channel)
// ->where('locale', $locale)
// ->orderBy('product_id', 'desc');
# sort direction if (isset($params['order']) && in_array($params['order'], ['desc', 'asc'])) {
$orderDirection = 'asc'; $orderDirection = $params['order'];
// if (isset($params['order']) && in_array($params['order'], ['desc', 'asc'])) { } else {
// $orderDirection = $params['order']; $sortOptions = $this->getDefaultSortByOption();
// } else {
// $sortOptions = $this->getDefaultSortByOption(); $orderDirection = ! empty($sortOptions) ? $sortOptions[1] : 'asc';
// }
// $orderDirection = ! empty($sortOptions) ? $sortOptions[1] : 'asc';
// } if (isset($params['sort'])) {
//
// if (isset($params['sort'])) { $attribute = $this->attributeRepository->findOneByField('code', $params['sort']);
// $this->checkSortAttributeAndGenerateQuery($qb, $params['sort'], $orderDirection);
// } else { if ($attribute) {
// $sortOptions = $this->getDefaultSortByOption(); if ($attribute->code === 'price') {
// if (! empty($sortOptions)) { $options['sort'] = ["min_price:$orderDirection"];
// $this->checkSortAttributeAndGenerateQuery($qb, $sortOptions[0], $orderDirection);
// } } else {
// } $options['sort'] = ["$attribute->code:$orderDirection"];
}
} else {
/* `created_at` is not an attribute so it will be in else case */
$query->orderBy('product_flat.created_at', $orderDirection);
}
} else {
$sortOptions = $this->getDefaultSortByOption();
$options['sort'] = ["$sortOptions[0]:$sortOptions[1]"];
}
//$options['sort'] =
return $meilisearch->search($query, $options);
});
return $qb->paginate($perPage); return $qb->paginate($perPage);
} }