Start Algorithm for Match creation (incremental version)
This commit is contained in:
parent
7c9d5eef1e
commit
82e60df35f
6 changed files with 8619 additions and 3 deletions
|
|
@ -14,6 +14,7 @@ use App\Round;
|
|||
use App\User;
|
||||
|
||||
use App\leagues\League;
|
||||
use App\leagues\LeagueMember;
|
||||
use Log;
|
||||
use DB;
|
||||
|
||||
|
|
@ -80,7 +81,7 @@ class LeagueController extends Controller
|
|||
$neededLeagues = League::neededLeagues($active_member_count, $round_count);
|
||||
Log::info("Benötigte Quali-Gruppen: ".$neededLeagues);
|
||||
|
||||
// Todo: Erzeugen der Ligen. Beachten: Matchup-Generierung in separater Method, da inkrementell.
|
||||
$league_ids=array();
|
||||
if ($league_mode=="Qualifikation") {
|
||||
for ($league_nr=1; $league_nr<=$neededLeagues; $league_nr+=1) {
|
||||
$league = League::create([
|
||||
|
|
@ -93,10 +94,30 @@ class LeagueController extends Controller
|
|||
'start_round_id' => $start_round_id
|
||||
]);
|
||||
$league->save();
|
||||
$league_ids[$league_nr-1] = $league->id;
|
||||
}
|
||||
|
||||
// Distribute members
|
||||
$users = User::getActives();
|
||||
shuffle($users);
|
||||
$league_index=0;
|
||||
while(sizeof($users)>0) {
|
||||
$user = array_pop($users);
|
||||
|
||||
$leagueMember = LeagueMember::create([
|
||||
'user_id' => $user->id,
|
||||
'league_id' => $league_ids[$league_index]
|
||||
]);
|
||||
$leagueMember->save();
|
||||
|
||||
$league_index+=1;
|
||||
if (sizeof($league_ids)==$league_index) { $league_index=0; }
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// ToDo: Achtel-, Viertel-, Halb-, Finale require additional leagues; Same with Pokal, so createMissingLeagues method will be needed in the future
|
||||
|
||||
$league_size1= min(22,$active_member_count);
|
||||
$league1 = League::create([
|
||||
'is_qualification' => false,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue