From 425cb4c7bf38d6f38394dce3b1912e9260ee224a Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 14 Dec 2011 13:03:53 +0000 Subject: [PATCH] Adding games played to league results. --- .../gempukku/lotro/db/LeaguePointsDAO.java | 35 ++++++++++++++++--- .../gempukku/lotro/server/LeagueResource.java | 14 ++++---- .../src/main/webapp/js/leagueResultsUi.js | 9 +++-- 3 files changed, 44 insertions(+), 14 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/LeaguePointsDAO.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/LeaguePointsDAO.java index 4f2a2c532..b22f9b695 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/LeaguePointsDAO.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/LeaguePointsDAO.java @@ -8,6 +8,8 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; public class LeaguePointsDAO { @@ -69,21 +71,22 @@ public class LeaguePointsDAO { } } - public Map getSerieStandings(League league, LeagueSerie serie) { + public List getSerieStandings(League league, LeagueSerie serie) { try { Connection conn = _dbAccess.getDataSource().getConnection(); try { - PreparedStatement statement = conn.prepareStatement("select player_name, sum(points) from league_points where league_type=? and season_type=? group by player_name order by 2 desc"); + PreparedStatement statement = conn.prepareStatement("select player_name, sum(points), count(*) from league_points where league_type=? and season_type=? group by player_name order by 2 desc, 3 asc"); try { statement.setString(1, league.getType()); statement.setString(2, serie.getType()); ResultSet rs = statement.executeQuery(); try { - Map result = new LinkedHashMap(); + List result = new LinkedList(); while (rs.next()) { String playerName = rs.getString(1); int sumPoints = rs.getInt(2); - result.put(playerName, sumPoints); + int gamesPlayed = rs.getInt(3); + result.add(new Standing(playerName, sumPoints, gamesPlayed)); } return result; } finally { @@ -99,4 +102,28 @@ public class LeaguePointsDAO { throw new RuntimeException(exp); } } + + public static class Standing { + private String _player; + private int _points; + private int _gamesPlayed; + + public Standing(String player, int points, int gamesPlayed) { + _player = player; + _points = points; + _gamesPlayed = gamesPlayed; + } + + public int getGamesPlayed() { + return _gamesPlayed; + } + + public String getPlayer() { + return _player; + } + + public int getPoints() { + return _points; + } + } } diff --git a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/LeagueResource.java b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/LeagueResource.java index 2eb4c282f..61aac3ef8 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/LeagueResource.java +++ b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/LeagueResource.java @@ -16,7 +16,6 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import java.util.List; -import java.util.Map; @Singleton @Path("/league") @@ -51,12 +50,13 @@ public class LeagueResource extends AbstractResource { serieElem.setAttribute("start", String.valueOf(serie.getStart())); serieElem.setAttribute("end", String.valueOf(serie.getEnd())); - Map standings = _leaguePointsDao.getSerieStandings(league, serie); - for (Map.Entry playerPoints : standings.entrySet()) { - Element standing = doc.createElement("standing"); - standing.setAttribute("player", playerPoints.getKey()); - standing.setAttribute("points", playerPoints.getValue().toString()); - serieElem.appendChild(standing); + final List standings = _leaguePointsDao.getSerieStandings(league, serie); + for (LeaguePointsDAO.Standing standing : standings) { + Element standingElem = doc.createElement("standing"); + standingElem.setAttribute("player", standing.getPlayer()); + standingElem.setAttribute("points", String.valueOf(standing.getPoints())); + standingElem.setAttribute("gamesPlayed", String.valueOf(standing.getGamesPlayed())); + serieElem.appendChild(standingElem); } leagueElem.appendChild(serieElem); diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/leagueResultsUi.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/leagueResultsUi.js index 9fd0ee2ad..2b51d601c 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/leagueResultsUi.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/leagueResultsUi.js @@ -50,21 +50,24 @@ var LeagueResultsUI = Class.extend({ if (standings.length > 0) { var standingsTable = $("
"); - standingsTable.append("StandingPlayerPoints"); + standingsTable.append("StandingPlayerPointsGames played"); var lastPoints = -1; + var lastGamesPlayed = -1; var currentStanding = -1; for (var k = 0; k < standings.length; k++) { var standing = standings[k]; var player = standing.getAttribute("player"); var points = parseInt(standing.getAttribute("points")); - if (points != lastPoints) { + var gamesPlayed = parseInt(standing.getAttribute("gamesPlayed")); + if (points != lastPoints || gamesPlayed != lastGamesPlayed) { lastPoints = points; + lastGamesPlayed = gamesPlayed; currentStanding = k + 1; } - standingsTable.append("" + currentStanding + "" + player + "" + points + ""); + standingsTable.append("" + currentStanding + "" + player + "" + points + "" + gamesPlayed + ""); } $("#leagueResults").append(standingsTable);