public function actionIndex() { $formatter = Yii::$app->formatter; $query = FinanceRecord::find()->today()->exceptCancelled(); $data = $query->asArray()->orderBy(['ID' => SORT_ASC, 'EventTime' => SORT_ASC])->all(); $usersPerHour = []; if (count($data)) { /** @var FinanceRecord $finance */ $usersPerHourData = ArrayHelper::map($data, function ($finance) use($formatter) { return $finance['ID']; }, function ($finance) { return $finance; }, function ($finance) use($formatter) { return $formatter->asDate($finance['EventTime'], 'php:H:00'); }); if (count($usersPerHourData) > 0) { $usersPerHour = ['labels' => array_keys($usersPerHourData), 'datasets' => [['label' => 'Количество уникальных посетителей в час', 'fillColor' => "rgba(250,100,0,0.8)", 'pointColor' => "rgba(220,220,220,1)", 'pointStrokeColor' => "#0f0", 'data' => []]]]; foreach ($usersPerHourData as $day => $hFin) { $objectUses = []; foreach ($hFin as $id => $f) { if ($f['ClassID'] == 1) { $objectUses[] = $f['ContractorID']; } } $usersPerHour['datasets'][0]['data'][] = count(array_unique($objectUses)); unset($objectUses); } } } $dataProvider = (new ActionsSearch(['attributes' => ['deleted' => 0]]))->search(Yii::$app->request->queryParams); return $this->render('index', ['usersPerHour' => $usersPerHour, 'dataProvider' => $dataProvider, 'cashBoxCash' => \common\models\cf\FinanceRecord::todayStats()]); }