wip watten

This commit is contained in:
salam committed 2026-10-18 17:49:22 +02:00
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;
}
}