Ejemplo n.º 1
0
 /**
  * @param string $zone
  * @param string $date_start
  * @param string $date_end
  */
 public function actionGetRegistrantTableStatistic($zone = 'ru', $date_start = 'NOW', $date_end = 'NOW')
 {
     $controller_statistic = new StatisticController(StatisticController::STATISTIC_REGISTRANT, 1);
     $data = $controller_statistic->getDateToTable($zone, $date_start, $date_end);
     $return_array = [];
     foreach ($data as $item) {
         $provider_info = array('id' => $item['id'], 'registrant' => $item['item'], 'start_value' => $item['start_count'], 'end_count' => $item['end_count'], 'zone' => $zone);
         array_push($return_array, $provider_info);
     }
     print_r($return_array);
 }
Ejemplo n.º 2
0
 /**
  *
  * @param string $zone
  * @param string $date_start
  * @param string $date_end
  * @return array
  * @throws Exception
  */
 public function getDateToTable($zone, $date_start, $date_end)
 {
     $date = StatisticController::checkDate($date_start, $date_end, $this->default_interval);
     $order_column = 'count DESC';
     if ($this->statisic_type == StatisticController::STATISTIC_REGRU) {
         $order_column = 'value DESC';
     }
     $start_info = $this->getQuery()->getZone($zone)->getNotMoreDate($date['start_date'])->all();
     $end_info = $this->getQuery()->getZone($zone)->getNotMoreDate($date['end_date'])->orderBy($order_column)->all();
     $start_count_array = [];
     /**
      * @var AbstractStatistic $start_info_item
      */
     foreach ($start_info as $start_info_item) {
         $start_count_array[$start_info_item->getAggregateItem()] = $start_info_item->count;
     }
     $return_array = [];
     $i = 1;
     /**
      * @var AbstractStatistic $end_info_item
      */
     foreach ($end_info as $end_info_item) {
         $start_value = 0;
         if (array_key_exists($end_info_item->getAggregateItem(), $start_count_array)) {
             $start_value = $start_count_array[$end_info_item->getAggregateItem()];
         }
         $provider_info = array('id' => $i++, 'item' => $end_info_item->getAggregateItem(), 'start_count' => $start_value, 'end_count' => $end_info_item->count, 'end_item' => $end_info_item, 'zone' => $zone);
         array_push($return_array, $provider_info);
     }
     return $return_array;
 }