19 private $dataProvider;
32 $this->dataProvider = $dataProvider;
45 $range = $this->dataProvider->getRange();
47 $range = !empty($range) ? $range : $this->getRange($bucket, $dimensions, $entityStorage);
48 $dbRanges = $this->dataProvider->getAggregation($bucket, $dimensions, $range, $entityStorage);
49 $data = $this->dataProvider->prepareData($range, $dbRanges);
61 private function getRange($bucket, array $dimensions,
EntityStorage $entityStorage)
63 $maxPrice = $this->getMaxPriceInt($entityStorage);
66 $range = pow(10, strlen(floor($maxPrice)) -
$index);
67 $items = $this->dataProvider->getAggregation($bucket, $dimensions, $range, $entityStorage);
69 }
while ($range > $this->getMinRangePower() && count(
$items) < 2);
80 private function getMaxPriceInt(EntityStorage $entityStorage)
82 $aggregations = $this->dataProvider->getAggregations($entityStorage);
83 $maxPrice = $aggregations[
'max'];
84 $maxPrice = floor($maxPrice);
92 private function getMinRangePower()
94 $options = $this->options->get();
96 return $options[
'min_range_power'];
getItems(BucketInterface $bucket, array $dimensions, EntityStorage $entityStorage)
__construct(DataProviderInterface $dataProvider, OptionsInterface $options)