wip watten
This commit is contained in:
1 parent
8ace316cbf
commit
afc8a6e1f5
93 files changed
+14369
-1
No files matched your search
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use stdClass;
|
||||
|
||||
class GstrichenRepository extends Repository
|
||||
{
|
||||
public static function loadGstrichenliste($activeTournament)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$user = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$user[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
if ($activeTournament < 0) {
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->execute();
|
||||
} else {
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where($queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament))
|
||||
->execute();
|
||||
}
|
||||
|
||||
$arr = [];
|
||||
foreach ($ergebnisse as $key => $value) {
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
$gs = $value['gstrichen'];
|
||||
|
||||
if (!isset($arr[$s1]['s'])) {
|
||||
$arr[$s1]['s'] = 0;
|
||||
$arr[$s1]['v'] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['s'])) {
|
||||
$arr[$s2]['s'] = 0;
|
||||
$arr[$s2]['v'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['v'])) {
|
||||
$arr[$v1]['v'] = 0;
|
||||
$arr[$v1]['s'] = 0;
|
||||
}
|
||||
if (!isset($arrv[$v2]['v'])) {
|
||||
$arr[$v2]['v'] = 0;
|
||||
$arr[$v2]['s'] = 0;
|
||||
}
|
||||
if ($gs) {
|
||||
$arr[$s1]['s']++;
|
||||
$arr[$s2]['s']++;
|
||||
$arr[$v1]['v']++;
|
||||
$arr[$v2]['v']++;
|
||||
}
|
||||
}
|
||||
|
||||
$sieger = [];
|
||||
$verlierer = [];
|
||||
$i = 1;
|
||||
foreach ($arr as $userid => $value) {
|
||||
$sieger[$i]['sieger'] = $user[$userid];
|
||||
$sieger[$i]['gewonnen'] = $value['s'];
|
||||
|
||||
$verlierer[$i]['verlierer'] = $user[$userid];
|
||||
$verlierer[$i]['verloren'] = $value['v'];
|
||||
|
||||
$i++;
|
||||
}
|
||||
$gewonnen = array_column($sieger, 'gewonnen');
|
||||
array_multisort($gewonnen, SORT_NUMERIC, SORT_DESC, $sieger);
|
||||
$verloren = array_column($verlierer, 'verloren');
|
||||
array_multisort($verloren, SORT_NUMERIC, SORT_DESC, $verlierer);
|
||||
|
||||
$return = [];
|
||||
$s = 0;
|
||||
$v = 0;
|
||||
foreach ($gewonnen as $key => $value) {
|
||||
$return[$key] = array_merge($sieger[$key], $verlierer[$key]);
|
||||
$return[$key]['platz'] = $key + 1;
|
||||
|
||||
if ($return[$key]['gewonnen'] == 0) {
|
||||
$return[$key]['sieger'] = '';
|
||||
$return[$key]['gewonnen'] = '';
|
||||
$s = 1;
|
||||
}
|
||||
if ($return[$key]['verloren'] == 0) {
|
||||
$return[$key]['verloren'] = '';
|
||||
$return[$key]['verlierer'] = '';
|
||||
$v = 1;
|
||||
}
|
||||
if ($s and $v) {
|
||||
unset($return[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user