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,395 @@
|
||||
<?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 StatistikRepository extends Repository
|
||||
{
|
||||
public static function loadStatistikRangliste($activeTournament)
|
||||
{
|
||||
/*
|
||||
[punkte] => 5.9
|
||||
[spiele] => 13
|
||||
[name] => Gerhard
|
||||
[platz] => 1
|
||||
[s1] => 9
|
||||
[s2] =>
|
||||
[s4] =>
|
||||
[v1] => 4
|
||||
[v2] =>
|
||||
[v4] =>
|
||||
*/
|
||||
$arr = RanglisteRepository::loadRangliste($activeTournament);
|
||||
$return = [];
|
||||
$tmp = [];
|
||||
foreach ($arr as $key => $value) {
|
||||
$return['labels'][] = $value['name'] . " " . $value['platz'] . ". Platz";
|
||||
$tmp['s1']['label'] = "Gewonnen";
|
||||
$tmp['s1']['data'][] = $value['s1'] ? $value['s1'] : 0;
|
||||
$tmp['s2']['label'] = "Schneider";
|
||||
$tmp['s2']['data'][] = $value['s2'] ? $value['s2'] : 0;
|
||||
$tmp['s4']['label'] = "Retour Schneider";
|
||||
$tmp['s4']['data'][] = $value['s4'] ? $value['s4'] : 0;
|
||||
$tmp['v1']['label'] = "Verloren";
|
||||
$tmp['v1']['data'][] = $value['v1'] ? $value['v1'] * -1 : 0;
|
||||
$tmp['v2']['label'] = "Schneider Verloren";
|
||||
$tmp['v2']['data'][] = $value['v2'] ? $value['v2'] * -1 : 0;
|
||||
$tmp['v4']['label'] = "Retour Schneider Verloren";
|
||||
$tmp['v4']['data'][] = $value['v4'] ? $value['v4'] * -1 : 0;
|
||||
}
|
||||
$datasets = [];
|
||||
foreach ($tmp as $key => $value) {
|
||||
if (array_sum($value['data']) != false) {
|
||||
$value['borderWidth'] = 1;
|
||||
$datasets[] = $value;
|
||||
}
|
||||
}
|
||||
$return['datasets'] = $datasets;
|
||||
// print_r($return);
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
public static function loadStatistik($event_id)
|
||||
{
|
||||
$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();
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('uid', 's1', 's2', 'v1', 'v2', 'bumid')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where($queryBuilder->expr()->eq('event_id', (int) $event_id))
|
||||
->execute();
|
||||
|
||||
$usr = [];
|
||||
$data = [];
|
||||
foreach ($ergebnisse as $value) {
|
||||
$usr[] = $value['s1'];
|
||||
$usr[] = $value['s2'];
|
||||
$usr[] = $value['v1'];
|
||||
$usr[] = $value['v2'];
|
||||
$data[] = $value;
|
||||
}
|
||||
$usr = array_unique($usr);
|
||||
|
||||
$arr = [];
|
||||
$datasets = [];
|
||||
foreach ($data as $value) {
|
||||
$arr['labels'][] = $value['uid'];
|
||||
$bum = $value['bumid'];
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
|
||||
foreach ($usr as $key => $uid) {
|
||||
if (isset($datasets[$uid])) {
|
||||
$punkte = 0;
|
||||
if ($s1 == $uid or $s2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = 1.1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = 2.1;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = 4.1;
|
||||
break;
|
||||
}
|
||||
} elseif ($v1 == $uid or $v2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = -1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = -2;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = -4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$datasets[$uid]['stand'] = round($datasets[$uid]['stand'] + $punkte, 2);
|
||||
$datasets[$uid]['data'][] = $datasets[$uid]['stand'];
|
||||
} else {
|
||||
$datasets[$uid]['label'] = $user[$uid];
|
||||
|
||||
$punkte = 0;
|
||||
if ($s1 == $uid or $s2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = 1.1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = 2.1;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = 4.1;
|
||||
break;
|
||||
}
|
||||
} elseif ($v1 == $uid or $v2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = -1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = -2;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = -4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$datasets[$uid]['stand'] = $punkte;
|
||||
$datasets[$uid]['data'][] = $punkte;
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($datasets as $value) {
|
||||
unset($value['stand']);
|
||||
$value['pointRadius'] = 2;
|
||||
$value['tension'] = 0;
|
||||
$value['borderWidth'] = 0.5;
|
||||
$arr['datasets'][] = $value;
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
|
||||
public static function loadPaarlauf($activeTournament, $athlet_1)
|
||||
{
|
||||
$athlet_1 = (int) $athlet_1;
|
||||
$athlet_2 = 3;
|
||||
|
||||
$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) {
|
||||
$res = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->execute();
|
||||
} else {
|
||||
$res = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where($queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament))
|
||||
->execute();
|
||||
}
|
||||
|
||||
$_names = [
|
||||
'spiele' => 0,
|
||||
'siege' => 0,
|
||||
'verloren' => 0,
|
||||
'sn' => 0,
|
||||
'ss' => 0,
|
||||
'srs' => 0,
|
||||
'sg' => 0,
|
||||
'vn' => 0,
|
||||
'vs' => 0,
|
||||
'vrs' => 0,
|
||||
'vg' => 0,
|
||||
];
|
||||
$_data = [];
|
||||
foreach ($res as $row) {
|
||||
if ($row['s1'] == $athlet_1 or $row['s2'] == $athlet_1) {
|
||||
if ($row['s1'] == $athlet_1)
|
||||
$partner = (int) $row['s2'];
|
||||
else
|
||||
$partner = (int) $row['s1'];
|
||||
$gegner1 = (int) $row['v1'];
|
||||
$gegner2 = (int) $row['v2'];
|
||||
$bummalen = (int) $row['bumid'];
|
||||
$gstrichen = (int) $row['gstrichen'];
|
||||
|
||||
if (!isset($_data[$partner])) {
|
||||
$_data[$partner] = $_names;
|
||||
}
|
||||
$_data[$partner]['spiele']++;
|
||||
$_data[$partner]['siege']++;
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['sn']++;
|
||||
else if ($bummalen == 2)
|
||||
$_data[$partner]['ss']++;
|
||||
else if ($bummalen == 4)
|
||||
$_data[$partner]['srs']++;
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['sg']++;
|
||||
|
||||
|
||||
if ($gegner1 < $gegner2) {
|
||||
$team = "$gegner1:$gegner2";
|
||||
} else {
|
||||
$team = "$gegner2:$gegner1";
|
||||
}
|
||||
if (!isset($_data[$partner]['gegner'][$team])) {
|
||||
$_data[$partner]['gegner'][$team] = $_names;
|
||||
}
|
||||
$_data[$partner]['gegner'][$team]['spiele']++;
|
||||
$_data[$partner]['gegner'][$team]['siege']++;
|
||||
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['gegner'][$team]['sn']++;
|
||||
else if ($bummalen == 2)
|
||||
$_data[$partner]['gegner'][$team]['ss']++;
|
||||
else if ($bummalen == 4)
|
||||
$_data[$partner]['gegner'][$team]['srs']++;
|
||||
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['gegner'][$team]['sg']++;
|
||||
|
||||
} else if ($row['v1'] == $athlet_1 or $row['v2'] == $athlet_1) {
|
||||
if ($row['v1'] == $athlet_1)
|
||||
$partner = $row['v2'];
|
||||
else
|
||||
$partner = (int) $row['v1'];
|
||||
$gegner1 = (int) $row['s1'];
|
||||
$gegner2 = (int) $row['s2'];
|
||||
$bummalen = (int) $row['bumid'];
|
||||
$gstrichen = (int) $row['gstrichen'];
|
||||
|
||||
if (!isset($_data[$partner])) {
|
||||
$_data[$partner] = $_names;
|
||||
}
|
||||
$_data[$partner]['spiele']++;
|
||||
$_data[$partner]['verloren']++;
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['vn']++;
|
||||
if ($bummalen == 2)
|
||||
$_data[$partner]['vs']++;
|
||||
if ($bummalen == 4)
|
||||
$_data[$partner]['vrs']++;
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['vg']++;
|
||||
|
||||
if ($gegner1 < $gegner2) {
|
||||
$team = "$gegner1:$gegner2";
|
||||
} else {
|
||||
$team = "$gegner2:$gegner1";
|
||||
}
|
||||
if (!isset($_data[$partner]['gegner'][$team])) {
|
||||
$_data[$partner]['gegner'][$team] = $_names;
|
||||
}
|
||||
$_data[$partner]['gegner'][$team]['spiele']++;
|
||||
$_data[$partner]['gegner'][$team]['verloren']++;
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['gegner'][$team]['vn']++;
|
||||
if ($bummalen == 2)
|
||||
$_data[$partner]['gegner'][$team]['vs']++;
|
||||
if ($bummalen == 4)
|
||||
$_data[$partner]['gegner'][$team]['vrs']++;
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['gegner'][$team]['vg']++;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$return = [];
|
||||
if(isset($user[$athlet_1])){
|
||||
$athlet = $user[$athlet_1];
|
||||
foreach ($_data as $partnerid => $row) {
|
||||
$tmp = [];
|
||||
$partner = $user[$partnerid];
|
||||
$tmp['head'] = 1;
|
||||
$tmp['teams'] = $athlet . ' & ' . $partner . ' ';
|
||||
$tmp['spiele'] = $row['spiele'];
|
||||
$tmp['siege'] = $row['siege'];
|
||||
$tmp['verloren'] = $row['verloren'];
|
||||
$tmp['sn'] = $row['sn'];
|
||||
$tmp['ss'] = $row['ss'];
|
||||
$tmp['srs'] = $row['srs'];
|
||||
$tmp['sg'] = $row['sg'];
|
||||
$tmp['vn'] = $row['vn'];
|
||||
$tmp['vs'] = $row['vs'];
|
||||
$tmp['vrs'] = $row['vrs'];
|
||||
$tmp['vg'] = $row['vg'];
|
||||
$return[] = $tmp;
|
||||
|
||||
foreach ($row['gegner'] as $team => $value) {
|
||||
$tmp = [];
|
||||
$tmp['head'] = 0;
|
||||
$tmp['teams'] = $athlet . ' & ' . $partner . ' <img src="/typo3conf/ext/watten/Resources/Public/Icons/Degen.svg" class="iconsizesm"> ' . self::getnames($user, $team);
|
||||
$tmp['spiele'] = $value['spiele'];
|
||||
$tmp['siege'] = $value['siege'];
|
||||
$tmp['verloren'] = $value['verloren'];
|
||||
$tmp['sn'] = $value['sn'];
|
||||
$tmp['ss'] = $value['ss'];
|
||||
$tmp['srs'] = $value['srs'];
|
||||
$tmp['sg'] = $value['sg'];
|
||||
$tmp['vn'] = $value['vn'];
|
||||
$tmp['vs'] = $value['vs'];
|
||||
$tmp['vrs'] = $value['vrs'];
|
||||
$tmp['vg'] = $value['vg'];
|
||||
$return[] = $tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($return as $key1 => $row) {
|
||||
foreach ($row as $key2 => $value) {
|
||||
if ($key2 != 'teams' and $value == 0)
|
||||
$return[$key1][$key2] = '';
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function getnames(&$user, $team)
|
||||
{
|
||||
$_gegner = explode(':', $team);
|
||||
$g1 = $_gegner[0];
|
||||
$g2 = $_gegner[1];
|
||||
return $user[$g1] . " & " . $user[$g2];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Array
|
||||
// (
|
||||
// [26] => Array
|
||||
// (
|
||||
// [spiele] => 11
|
||||
// [siege] => 6
|
||||
// [verloren] => 5
|
||||
// [sn] => 0
|
||||
// [ss] => 0
|
||||
// [srs] => 0
|
||||
// [gs] => 0
|
||||
// [vn] => 0
|
||||
// [vs] => 0
|
||||
// [vrs] => 0
|
||||
// [vg] => 0
|
||||
// [6:31] => Array
|
||||
// (
|
||||
// [spiele] => 1
|
||||
// [siege] => 1
|
||||
// [verloren] => 0
|
||||
// [sn] => 1
|
||||
// [ss] => 0
|
||||
// [srs] => 0
|
||||
// [gs] => 0
|
||||
// [vn] => 0
|
||||
// [vs] => 0
|
||||
// [vrs] => 0
|
||||
Reference in new issue
Block a user