mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
update user statistics
This commit is contained in:
parent
217dede358
commit
0e847e3fad
@ -2,6 +2,7 @@
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Controller\AppController;
|
||||
use Cake\Datasource\ConnectionManager;
|
||||
use Cake\I18n\Time;
|
||||
|
||||
/**
|
||||
@ -27,6 +28,7 @@ class UsersController extends AppController
|
||||
|
||||
public function statistics()
|
||||
{
|
||||
$startTime = microtime(true);
|
||||
$this->viewBuilder()->setLayout('frontend_ripple');
|
||||
$users = $this->Users->find('all')->select(['id']);
|
||||
|
||||
@ -42,7 +44,26 @@ class UsersController extends AppController
|
||||
$newUsersLastMonth = $this->Users->find('all')
|
||||
->select(['id'])
|
||||
->where(['created >=' => $prevSortDate[0], 'created <' => $prevSortDate[1]]);
|
||||
$this->set(compact('users', 'newUsersThisMonth', 'newUsersLastMonth'));
|
||||
|
||||
// new user sorted after date
|
||||
$connection = ConnectionManager::get('loginServer');
|
||||
$newAccountsPerDay = $connection->execute('SELECT count(id) as count, created FROM users GROUP BY CAST(created as DATE) ORDER BY created DESC ')->fetchAll('assoc');
|
||||
|
||||
$newAccountsTree = [];
|
||||
foreach($newAccountsPerDay as $entry) {
|
||||
$created = new Time($entry['created']);
|
||||
if(!isset($newAccountsTree[$created->year])) {
|
||||
$newAccountsTree[$created->year] = [];
|
||||
}
|
||||
if(!isset($newAccountsTree[$created->year][$created->month])) {
|
||||
$newAccountsTree[$created->year][$created->month] = ['count' => 0, 'days' => []];
|
||||
}
|
||||
array_push($newAccountsTree[$created->year][$created->month]['days'], $entry);
|
||||
$newAccountsTree[$created->year][$created->month]['count'] += intval($entry['count']);
|
||||
}
|
||||
|
||||
$timeUsed = microtime(true) - $startTime;
|
||||
$this->set(compact('users', 'newUsersThisMonth', 'newUsersLastMonth', 'timeUsed', 'newAccountsTree'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -56,4 +56,36 @@ if($users->count() > 0 && $newUsersLastMonth->count()) {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-8 equel-grid">
|
||||
<div class="grid">
|
||||
<div class="grid-body py-3">
|
||||
<p class="card-title ml-n1"><?= __('Anmeldungen detailliert'); ?></p>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover table-sm">
|
||||
<thead>
|
||||
<tr class="solid-header">
|
||||
<th class="pl-4"><?= __('Jahr')?></th>
|
||||
<th><?= __('Monat') ?></th>
|
||||
<th><?= __('Anzahl Anmeldungen') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($newAccountsTree as $year => $yearEntrys) : ?>
|
||||
<?php foreach($yearEntrys as $month => $monthEntrys): ?>
|
||||
<tr class="collapsed" data-toggle="collapse" aria-expanded="false">
|
||||
<td><?= $year ?></td>
|
||||
<td><?= $month ?></td>
|
||||
<td><?= $monthEntrys['count'] ?></td>
|
||||
</tr>
|
||||
<tr class="collapse"><td>Tage</td></tr>
|
||||
<?php endforeach; ?>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?= $this->Html->script(['core', 'vendor.addons']); ?>
|
||||
Loading…
x
Reference in New Issue
Block a user