58 lines
1.7 KiB
PHP
58 lines
1.7 KiB
PHP
<?php
|
|
|
|
|
|
namespace Tps\Reklama\Controllers;
|
|
use Backend\Classes\Controller;
|
|
use Backend\Facades\BackendMenu;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Tps\Reklama\Models\Reklama;
|
|
use Tps\Reklama\Models\Statistika;
|
|
use Tps\Reklama\Widgets\Stats;
|
|
|
|
class StatisticsController extends Controller
|
|
{
|
|
public $requiredPermissions = ['tps.reklama.statistics'];
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
|
|
BackendMenu::setContext('Tps.Reklama', 'main-menu-item', 'side-menu-item3');
|
|
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
// $config = $this->makeConfig('$/tps/reklama/models/statistika/fields.yaml');
|
|
$this->pageTitle = 'Statistics';
|
|
|
|
$this->vars['stats'] = Statistika::groupBy('item_id')
|
|
->selectRaw('tps_reklama_item.id, tps_reklama_item.title, sum(view) as views, sum(click) as clicks')
|
|
->leftJoin('tps_reklama_item','tps_reklama_item.id','=','tps_reklama_statistika.item_id')
|
|
->take(20)
|
|
->get()
|
|
->toArray();
|
|
|
|
}
|
|
|
|
public function onLoad(){
|
|
$item_id = input('item_id');
|
|
|
|
if($item_id){
|
|
$stats = Db::table('tps_reklama_statistika')
|
|
->select(Db::raw("item_id,sum(view) as v, sum(click) as c, extract(year from date) as y, extract(month from date) as m"))
|
|
->where('item_id',$item_id)
|
|
->whereNotNull('date')
|
|
->groupBy(Db::raw("item_id, extract(year from date), extract(month from date)"))
|
|
->orderBy('y')
|
|
->orderBy('m')
|
|
->get()
|
|
->toArray();
|
|
return [
|
|
'result' => $stats
|
|
];
|
|
}
|
|
}
|
|
|
|
}
|