/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
backend/controllers/ReportController.php
60 строк
2 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace backend\controllers; use common\controllers\base\DashboardController; use common\generator\report\DepartmentTokenGenerator; use common\generator\report\GlobalTokenGenerator; use common\generator\report\UserTokenGenerator; use common\generator\report\UseTokenGenerator; use common\helpers\ArrayHelper; use common\helpers\FileHelper; use common\kdf\KReportType; use Yii; use yii\helpers\Json; /** * Формирование отчёта * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2025 */ class ReportController extends DashboardController { /** * Главная страница административной части * @return mixed */ public function actionDownload($q) { Yii::$app->request->validateSig(); $json = base64_decode($q); $array = Json::decode($json); $type_id = (int)ArrayHelper::getValue($array, 'type_id'); switch ($type_id) { default: case KReportType::USER_TOKEN_USAGE: $g = new UserTokenGenerator(); break; case KReportType::GLOBAL_TOKEN_USAGE: $g = new GlobalTokenGenerator(); break; case KReportType::DEPARTMENT_TOKEN_USAGE: $g = new DepartmentTokenGenerator(); break; } $g->params($array); $g->execute(); $path = $g->getOutput(); $mimeType = FileHelper::getMimeType($path); $filename = Yii::t('app', 'Export-{0}.xlsx', [ time() ]); return Yii::$app->response->sendFile($path, $filename, ['mimeType' => $mimeType]); } }