Ejemplo n.º 1
0
 /**
  * @param BucketInterface $bucket
  * @param array $dimensions
  * @param int[] $entityIds
  * @return number
  */
 private function getRange($bucket, array $dimensions, EntityStorage $entityStorage)
 {
     $maxPrice = $this->getMaxPriceInt($entityStorage);
     $index = 1;
     do {
         $range = pow(10, strlen(floor($maxPrice)) - $index);
         $items = $this->dataProvider->getAggregation($bucket, $dimensions, $range, $entityStorage);
         $index++;
     } while ($range > $this->getMinRangePower() && count($items) < 2);
     return $range;
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function getItems(BucketInterface $bucket, array $dimensions, EntityStorage $entityStorage)
 {
     $range = $this->dataProvider->getRange();
     $options = $this->options->get();
     if (!$range) {
         $range = $options['range_step'];
     }
     $dbRanges = $this->dataProvider->getAggregation($bucket, $dimensions, $range, $entityStorage);
     $dbRanges = $this->processRange($dbRanges, $options['max_intervals_number']);
     $data = $this->dataProvider->prepareData($range, $dbRanges);
     return $data;
 }