/* int[][] -> erstes Feld ist für die Heimmanschaft und zweites Feld für Auswärtsteam die jeweils vier Felder stehen für die Punkte, tore, Gegentore und das Torverhältnis */ @Override public int[][] getWerteMatchAus(Matches match) { int[][] rc = new int[2][4]; Team heim = match.getHeimteam(); ArrayList<Goal> goalList = (ArrayList<Goal>) em.createNativeQuery("select * from goal where match_id = " + match.getId(), Goal.class) .getResultList(); for (Goal goal : goalList) { if (heim.getPlayerList().contains(goal.getPlayerId())) { rc[0][1] += 1; rc[1][2] += 1; // Gegentor für die Auswärtsmannschaft } else { rc[1][1] += 1; rc[0][2] += 1; // Gegentor für die Heimmannschaft } } if (rc[0][1] > rc[1][1]) { // Sieg Heimmanschaft rc[0][0] += 3; } else if (rc[0][1] < rc[1][1]) { // Sieg Auswärtsmannschaft rc[1][0] += +3; } else { // Unentschieden rc[0][0] += 1; rc[1][0] += 1; } rc[0][3] = rc[0][1] - rc[0][2]; rc[1][3] = rc[1][1] - rc[1][2]; return rc; }
@Override public ArrayList<Spielergebnis> getBerechneTabelle() { HashMap<Integer, Spielergebnis> spielErgebnisHashMap = new HashMap<>(); List<Matches> matchesListe = em.createNativeQuery("select * from matches", Matches.class).getResultList(); List<Team> teamListe = em.createNativeQuery("select * from team", Team.class).getResultList(); for (Team team : teamListe) { spielErgebnisHashMap.put(team.getId(), new Spielergebnis(team)); } for (Matches match : matchesListe) { int[][] ergebnis = this.getWerteMatchAus(match); Spielergebnis heim = spielErgebnisHashMap.get(match.getHeimteam().getId()); Spielergebnis aus = spielErgebnisHashMap.get(match.getAuswaertsteam().getId()); heim.addPunkte(ergebnis[0][0]); heim.addTore(ergebnis[0][1]); heim.addGegentore(ergebnis[0][2]); heim.addTorverhaeltnis(ergebnis[0][3]); aus.addPunkte(ergebnis[1][0]); aus.addTore(ergebnis[1][1]); aus.addGegentore(ergebnis[1][2]); aus.addTorverhaeltnis(ergebnis[1][3]); } ArrayList<Spielergebnis> rc = new ArrayList<>(); for (Integer i : spielErgebnisHashMap.keySet()) { rc.add(spielErgebnisHashMap.get(i)); } Collections.sort(rc); return rc; }