|
@@ -10,95 +10,133 @@ import java.util.Optional;
|
|
|
|
|
|
|
|
import data.GuiMysql;
|
|
import data.GuiMysql;
|
|
|
|
|
|
|
|
-public class SoccerMatchAnalysis {
|
|
|
|
|
|
|
+public class SoccerMatchAnalysis extends SoccerMatch {
|
|
|
|
|
|
|
|
- SoccerMatch match;
|
|
|
|
|
GuiMysql database;
|
|
GuiMysql database;
|
|
|
private List<TeamStanding> leagueTable;
|
|
private List<TeamStanding> leagueTable;
|
|
|
private LocalDate leagueTableUpdated;
|
|
private LocalDate leagueTableUpdated;
|
|
|
|
|
+ private int scoringDiffValue;
|
|
|
|
|
+ private int scoringTotal;
|
|
|
|
|
+ private int winCount;
|
|
|
|
|
+ private int winLossRatio;
|
|
|
|
|
|
|
|
public SoccerMatchAnalysis(SoccerMatch match) {
|
|
public SoccerMatchAnalysis(SoccerMatch match) {
|
|
|
- this.match = match;
|
|
|
|
|
|
|
+ setMatchData(match);
|
|
|
database = GuiMysql.getInstance();
|
|
database = GuiMysql.getInstance();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public int getWinLossRatio() {
|
|
|
|
|
+ return winLossRatio;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void setWinLossRatio(int winLossRatio) {
|
|
|
|
|
+ this.winLossRatio = winLossRatio;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public int getWinCount() {
|
|
|
|
|
+ return winCount;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void setWinCount(int winCount) {
|
|
|
|
|
+ this.winCount = winCount;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public int getScoringTotal() {
|
|
|
|
|
+ return scoringTotal;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void setScoringTotal(int scoringTotal) {
|
|
|
|
|
+ this.scoringTotal = scoringTotal;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public int getScoringDiffValue() {
|
|
|
|
|
+ return scoringDiffValue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void setScoringDiffValue(int scoringDiffValue) {
|
|
|
|
|
+ this.scoringDiffValue = scoringDiffValue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* Antalet mål som hemma laget gjort de senaste "gamesLookback" matcherna -
|
|
* Antalet mål som hemma laget gjort de senaste "gamesLookback" matcherna -
|
|
|
* antalet mål för bortalaget under samma period
|
|
* antalet mål för bortalaget under samma period
|
|
|
- *
|
|
|
|
|
|
|
+ *
|
|
|
* @param gamesLookback - hur många matcher bakåt i tiden som ska kontrolleras
|
|
* @param gamesLookback - hur många matcher bakåt i tiden som ska kontrolleras
|
|
|
* @return Float med skillnaden i mål mellan lagen hemma/borta
|
|
* @return Float med skillnaden i mål mellan lagen hemma/borta
|
|
|
*/
|
|
*/
|
|
|
public int getScoringDiffLastGames(int gamesLookback) {
|
|
public int getScoringDiffLastGames(int gamesLookback) {
|
|
|
int result = 0;
|
|
int result = 0;
|
|
|
|
|
|
|
|
- String sql = "SELECT * FROM "
|
|
|
|
|
- + "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) ht "
|
|
|
|
|
- + "UNION DISTINCT "
|
|
|
|
|
- + "(SELECT * FROM SoccerResults WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?);";
|
|
|
|
|
|
|
+ String sql = "SELECT * FROM " +
|
|
|
|
|
+ "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE" +
|
|
|
|
|
+ "(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) ht " +
|
|
|
|
|
+ "UNION " +
|
|
|
|
|
+ "(SELECT * FROM SoccerResults WHERE " +
|
|
|
|
|
+ "awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? " +
|
|
|
|
|
+ "ORDER BY gameDate DESC " +
|
|
|
|
|
+ "LIMIT ?);";
|
|
|
|
|
|
|
|
int homeRes = 0;
|
|
int homeRes = 0;
|
|
|
int awayRes = 0;
|
|
int awayRes = 0;
|
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
|
- stat.setInt(1, match.getHomeTeam().getTeamId());
|
|
|
|
|
- stat.setInt(2, match.getHomeTeam().getTeamLeagueId());
|
|
|
|
|
- stat.setString(3, match.getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
+ stat.setInt(1, getHomeTeam().getTeamId());
|
|
|
|
|
+ stat.setInt(2, getHomeTeam().getTeamLeagueId());
|
|
|
|
|
+ stat.setString(3, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
stat.setInt(4, gamesLookback);
|
|
stat.setInt(4, gamesLookback);
|
|
|
|
|
|
|
|
- stat.setInt(5, match.getAwayTeam().getTeamId());
|
|
|
|
|
- stat.setInt(6, match.getAwayTeam().getTeamLeagueId());
|
|
|
|
|
- stat.setString(7, match.getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
+ stat.setInt(5, getAwayTeam().getTeamId());
|
|
|
|
|
+ stat.setInt(6, getAwayTeam().getTeamLeagueId());
|
|
|
|
|
+ stat.setString(7, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
stat.setInt(8, gamesLookback);
|
|
stat.setInt(8, gamesLookback);
|
|
|
|
|
|
|
|
ResultSet rs = stat.executeQuery();
|
|
ResultSet rs = stat.executeQuery();
|
|
|
|
|
|
|
|
while (rs.next()) {
|
|
while (rs.next()) {
|
|
|
- if (match.getHomeTeam().getTeamId() == rs.getInt("homeTeamId")) {
|
|
|
|
|
|
|
+ if (getHomeTeam().getTeamId() == rs.getInt("homeTeamId")) {
|
|
|
homeRes += rs.getInt("homeScore");
|
|
homeRes += rs.getInt("homeScore");
|
|
|
}
|
|
}
|
|
|
- if (match.getAwayTeam().getTeamId() == rs.getInt("awayTeamId")) {
|
|
|
|
|
|
|
+ if (getAwayTeam().getTeamId() == rs.getInt("awayTeamId")) {
|
|
|
awayRes += rs.getInt("awayScore");
|
|
awayRes += rs.getInt("awayScore");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
} catch (SQLException e) {
|
|
} catch (SQLException e) {
|
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- return homeRes - awayRes;
|
|
|
|
|
|
|
+ scoringDiffValue = homeRes - awayRes;
|
|
|
|
|
+ return scoringDiffValue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- *
|
|
|
|
|
* Plocka fram antalet mål som ett specifikt lag gjort under de senaste
|
|
* Plocka fram antalet mål som ett specifikt lag gjort under de senaste
|
|
|
* <gamesLookback> matcherna
|
|
* <gamesLookback> matcherna
|
|
|
- *
|
|
|
|
|
|
|
+ *
|
|
|
* @param gamesLookback - hur många matcher bakåt i tiden som ska kontrolleras
|
|
* @param gamesLookback - hur många matcher bakåt i tiden som ska kontrolleras
|
|
|
* @param homeTeam - är det hemma laget som ska kontrolleras i matchen
|
|
* @param homeTeam - är det hemma laget som ska kontrolleras i matchen
|
|
|
* @return antalet mål som är gjorda av bestämt lag.
|
|
* @return antalet mål som är gjorda av bestämt lag.
|
|
|
*/
|
|
*/
|
|
|
public int scoringTotal(int gamesLookback, boolean homeTeam) {
|
|
public int scoringTotal(int gamesLookback, boolean homeTeam) {
|
|
|
int result = 0;
|
|
int result = 0;
|
|
|
- String sql = "SELECT * FROM "
|
|
|
|
|
- + "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) ht "
|
|
|
|
|
- + "UNION DISTINCT "
|
|
|
|
|
- + "(SELECT * FROM SoccerResults WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?)";
|
|
|
|
|
|
|
+ String sql = "SELECT * FROM " + "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE" +
|
|
|
|
|
+ "(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) ht " + "UNION DISTINCT " + "(SELECT * FROM " +
|
|
|
|
|
+ "SoccerResults WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC " +
|
|
|
|
|
+ "LIMIT ?)";
|
|
|
|
|
|
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
|
final Team team;
|
|
final Team team;
|
|
|
if (homeTeam) {
|
|
if (homeTeam) {
|
|
|
- team = match.getHomeTeam();
|
|
|
|
|
|
|
+ team = getHomeTeam();
|
|
|
} else {
|
|
} else {
|
|
|
- team = match.getAwayTeam();
|
|
|
|
|
|
|
+ team = getAwayTeam();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
stat.setInt(1, team.getTeamId());
|
|
stat.setInt(1, team.getTeamId());
|
|
|
stat.setInt(2, team.getTeamLeagueId());
|
|
stat.setInt(2, team.getTeamLeagueId());
|
|
|
- stat.setString(3, match.getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
+ stat.setString(3, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
stat.setInt(4, gamesLookback);
|
|
stat.setInt(4, gamesLookback);
|
|
|
|
|
|
|
|
stat.setInt(5, team.getTeamId());
|
|
stat.setInt(5, team.getTeamId());
|
|
|
stat.setInt(6, team.getTeamLeagueId());
|
|
stat.setInt(6, team.getTeamLeagueId());
|
|
|
- stat.setString(7, match.getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
+ stat.setString(7, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
stat.setInt(8, gamesLookback);
|
|
stat.setInt(8, gamesLookback);
|
|
|
|
|
|
|
|
ResultSet rs = stat.executeQuery();
|
|
ResultSet rs = stat.executeQuery();
|
|
@@ -119,17 +157,15 @@ public class SoccerMatchAnalysis {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* Hämta tabell positionen för hemma eller borta laget
|
|
* Hämta tabell positionen för hemma eller borta laget
|
|
|
- *
|
|
|
|
|
|
|
+ *
|
|
|
* @param homeTeam - är det hemma laget som ska kontrolleras för matchen?
|
|
* @param homeTeam - är det hemma laget som ska kontrolleras för matchen?
|
|
|
* @return position för specifierat lag
|
|
* @return position för specifierat lag
|
|
|
*/
|
|
*/
|
|
|
public int getTablePosition(boolean homeTeam) {
|
|
public int getTablePosition(boolean homeTeam) {
|
|
|
int result = 0;
|
|
int result = 0;
|
|
|
updateLeagueTable();
|
|
updateLeagueTable();
|
|
|
- Optional<TeamStanding> standingOptional = leagueTable.stream()
|
|
|
|
|
- .filter(p -> p.getTeamName()
|
|
|
|
|
- .equals(homeTeam ? match.getHomeTeam().getTeamName() : match.getAwayTeam().getTeamName()))
|
|
|
|
|
- .findFirst();
|
|
|
|
|
|
|
+ Optional<TeamStanding> standingOptional = leagueTable.stream().filter(p -> p.getTeamName().equals(homeTeam ?
|
|
|
|
|
+ getHomeTeam().getTeamName() : getAwayTeam().getTeamName())).findFirst();
|
|
|
|
|
|
|
|
if (standingOptional.isPresent()) {
|
|
if (standingOptional.isPresent()) {
|
|
|
TeamStanding standing = standingOptional.get();
|
|
TeamStanding standing = standingOptional.get();
|
|
@@ -139,30 +175,26 @@ public class SoccerMatchAnalysis {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void updateLeagueTable() {
|
|
private void updateLeagueTable() {
|
|
|
- if (!leagueTableUpdated.isEqual(match.getGameDate().toLocalDate())) {
|
|
|
|
|
- leagueTable = database.getLeagueTable(match.getHomeTeam().getTeamLeagueId(), match.getSeason(),
|
|
|
|
|
- match.getHomeTeam().getCountryId(),
|
|
|
|
|
- match.getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
+ if (!leagueTableUpdated.isEqual(getGameDate().toLocalDate())) {
|
|
|
|
|
+ leagueTable = database.getLeagueTable(getHomeTeam().getTeamLeagueId(), getSeason(),
|
|
|
|
|
+ getHomeTeam().getCountryId(), getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
|
- leagueTableUpdated = match.getGameDate().toLocalDate();
|
|
|
|
|
|
|
+ leagueTableUpdated = getGameDate().toLocalDate();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- *
|
|
|
|
|
* @return Integer - hur många platser det är mellan hemma och borta laget
|
|
* @return Integer - hur många platser det är mellan hemma och borta laget
|
|
|
*/
|
|
*/
|
|
|
public int diffInStanding() {
|
|
public int diffInStanding() {
|
|
|
int result = 0;
|
|
int result = 0;
|
|
|
updateLeagueTable();
|
|
updateLeagueTable();
|
|
|
|
|
|
|
|
- Optional<TeamStanding> homeTeamStandingOptional = leagueTable.stream()
|
|
|
|
|
- .filter(p -> p.getTeamName().equals(match.getHomeTeam().getTeamName()))
|
|
|
|
|
- .findFirst();
|
|
|
|
|
|
|
+ Optional<TeamStanding> homeTeamStandingOptional =
|
|
|
|
|
+ leagueTable.stream().filter(p -> p.getTeamName().equals(getHomeTeam().getTeamName())).findFirst();
|
|
|
|
|
|
|
|
- Optional<TeamStanding> awayTeamStandingOptional = leagueTable.stream()
|
|
|
|
|
- .filter(p -> p.getTeamName().equals(match.getAwayTeam().getTeamName()))
|
|
|
|
|
- .findFirst();
|
|
|
|
|
|
|
+ Optional<TeamStanding> awayTeamStandingOptional =
|
|
|
|
|
+ leagueTable.stream().filter(p -> p.getTeamName().equals(getAwayTeam().getTeamName())).findFirst();
|
|
|
|
|
|
|
|
if (homeTeamStandingOptional.isPresent() && awayTeamStandingOptional.isPresent()) {
|
|
if (homeTeamStandingOptional.isPresent() && awayTeamStandingOptional.isPresent()) {
|
|
|
TeamStanding homeStanding = homeTeamStandingOptional.get();
|
|
TeamStanding homeStanding = homeTeamStandingOptional.get();
|
|
@@ -174,9 +206,8 @@ public class SoccerMatchAnalysis {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- *
|
|
|
|
|
* Vinst förlust ratio för om man är enbart hemma eller bortalag.
|
|
* Vinst förlust ratio för om man är enbart hemma eller bortalag.
|
|
|
- *
|
|
|
|
|
|
|
+ *
|
|
|
* @param gamesLookback
|
|
* @param gamesLookback
|
|
|
* @param homeTeam
|
|
* @param homeTeam
|
|
|
* @return Integer där vinst ger +1 lika ger 0 och förlust get -1
|
|
* @return Integer där vinst ger +1 lika ger 0 och förlust get -1
|
|
@@ -184,16 +215,16 @@ public class SoccerMatchAnalysis {
|
|
|
public int winLossRatio(int gamesLookback, boolean homeTeam) {
|
|
public int winLossRatio(int gamesLookback, boolean homeTeam) {
|
|
|
int result = 0;
|
|
int result = 0;
|
|
|
|
|
|
|
|
- Team team = homeTeam ? match.getHomeTeam() : match.getAwayTeam();
|
|
|
|
|
|
|
+ Team team = homeTeam ? getHomeTeam() : getAwayTeam();
|
|
|
|
|
|
|
|
String teamSql = homeTeam ? "homeTeamId = ? " : "awayTeamId = ? ";
|
|
String teamSql = homeTeam ? "homeTeamId = ? " : "awayTeamId = ? ";
|
|
|
- String sql = "SELECT * FROM SoccerResults WHERE " + teamSql
|
|
|
|
|
- + "AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?";
|
|
|
|
|
|
|
+ String sql = "SELECT * FROM SoccerResults WHERE " + teamSql + "AND leagueId = ? AND DATE(gameDate) < ? ORDER " +
|
|
|
|
|
+ "BY gameDate DESC LIMIT ?";
|
|
|
|
|
|
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
|
stat.setInt(1, team.getTeamId());
|
|
stat.setInt(1, team.getTeamId());
|
|
|
stat.setInt(2, team.getTeamLeagueId());
|
|
stat.setInt(2, team.getTeamLeagueId());
|
|
|
- stat.setString(3, match.getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
+ stat.setString(3, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
stat.setInt(4, gamesLookback);
|
|
stat.setInt(4, gamesLookback);
|
|
|
|
|
|
|
|
ResultSet rs = stat.executeQuery();
|
|
ResultSet rs = stat.executeQuery();
|
|
@@ -225,22 +256,20 @@ public class SoccerMatchAnalysis {
|
|
|
public int winLossRationHomeAndAway(boolean homeTeam, int gamesLookback) {
|
|
public int winLossRationHomeAndAway(boolean homeTeam, int gamesLookback) {
|
|
|
int result = 0;
|
|
int result = 0;
|
|
|
|
|
|
|
|
- String sql = "SELECT * FROM "
|
|
|
|
|
- + "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) a "
|
|
|
|
|
- + "UNION DISTINCT "
|
|
|
|
|
- + "(SELECT * FROM SoccerResults WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) "
|
|
|
|
|
- + "ORDER BY gameDate DESC "
|
|
|
|
|
- + "LIMIT ?";
|
|
|
|
|
- Team team = homeTeam ? match.getHomeTeam() : match.getAwayTeam();
|
|
|
|
|
|
|
+ String sql = "SELECT * FROM " + "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE" +
|
|
|
|
|
+ "(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) a " + "UNION DISTINCT " + "(SELECT * FROM " +
|
|
|
|
|
+ "SoccerResults WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC " +
|
|
|
|
|
+ "LIMIT ?) " + "ORDER BY gameDate DESC " + "LIMIT ?";
|
|
|
|
|
+ Team team = homeTeam ? getHomeTeam() : getAwayTeam();
|
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
|
stat.setInt(1, team.getTeamId());
|
|
stat.setInt(1, team.getTeamId());
|
|
|
stat.setInt(2, team.getTeamLeagueId());
|
|
stat.setInt(2, team.getTeamLeagueId());
|
|
|
- stat.setString(3, match.getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
+ stat.setString(3, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
stat.setInt(4, gamesLookback);
|
|
stat.setInt(4, gamesLookback);
|
|
|
|
|
|
|
|
stat.setInt(5, team.getTeamId());
|
|
stat.setInt(5, team.getTeamId());
|
|
|
stat.setInt(6, team.getTeamLeagueId());
|
|
stat.setInt(6, team.getTeamLeagueId());
|
|
|
- stat.setString(7, match.getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
+ stat.setString(7, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
stat.setInt(8, gamesLookback);
|
|
stat.setInt(8, gamesLookback);
|
|
|
|
|
|
|
|
stat.setInt(9, gamesLookback);
|
|
stat.setInt(9, gamesLookback);
|
|
@@ -250,8 +279,8 @@ public class SoccerMatchAnalysis {
|
|
|
while (rs.next()) {
|
|
while (rs.next()) {
|
|
|
if (rs.getInt("homeTeamId") == team.getTeamId() && rs.getInt("homeScore") > rs.getInt("awayScore")) {
|
|
if (rs.getInt("homeTeamId") == team.getTeamId() && rs.getInt("homeScore") > rs.getInt("awayScore")) {
|
|
|
result++;
|
|
result++;
|
|
|
- } else if (rs.getInt("awayTeamId") == team.getTeamId()
|
|
|
|
|
- && rs.getInt("awayScore") > rs.getInt("homeScore")) {
|
|
|
|
|
|
|
+ } else if (rs.getInt("awayTeamId") == team.getTeamId() && rs.getInt("awayScore") > rs.getInt(
|
|
|
|
|
+ "homeScore")) {
|
|
|
result++;
|
|
result++;
|
|
|
} else {
|
|
} else {
|
|
|
result--;
|
|
result--;
|
|
@@ -266,23 +295,21 @@ public class SoccerMatchAnalysis {
|
|
|
|
|
|
|
|
public int goalsScoredHomeAndAway(boolean homeTeam, int gameLookback) {
|
|
public int goalsScoredHomeAndAway(boolean homeTeam, int gameLookback) {
|
|
|
int result = 0;
|
|
int result = 0;
|
|
|
- Team team = homeTeam ? match.getHomeTeam() : match.getAwayTeam();
|
|
|
|
|
|
|
+ Team team = homeTeam ? getHomeTeam() : getAwayTeam();
|
|
|
|
|
|
|
|
- String sql = "SELECT * FROM "
|
|
|
|
|
- + "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) a "
|
|
|
|
|
- + "UNION ALL "
|
|
|
|
|
- + "(SELECT * FROM SoccerResults WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) "
|
|
|
|
|
- + "ORDER BY gameDate DESC "
|
|
|
|
|
- + "LIMIT ?";
|
|
|
|
|
|
|
+ String sql = "SELECT * FROM " + "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE" +
|
|
|
|
|
+ "(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) a " + "UNION ALL " + "(SELECT * FROM SoccerResults " +
|
|
|
|
|
+ "WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) " +
|
|
|
|
|
+ "ORDER BY gameDate DESC " + "LIMIT ?";
|
|
|
|
|
|
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
|
stat.setInt(1, team.getTeamId());
|
|
stat.setInt(1, team.getTeamId());
|
|
|
stat.setInt(2, team.getTeamLeagueId());
|
|
stat.setInt(2, team.getTeamLeagueId());
|
|
|
- stat.setString(3, match.getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
+ stat.setString(3, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
stat.setInt(4, gameLookback);
|
|
stat.setInt(4, gameLookback);
|
|
|
stat.setInt(5, team.getTeamId());
|
|
stat.setInt(5, team.getTeamId());
|
|
|
stat.setInt(6, team.getTeamLeagueId());
|
|
stat.setInt(6, team.getTeamLeagueId());
|
|
|
- stat.setString(7, match.getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
+ stat.setString(7, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
stat.setInt(8, gameLookback);
|
|
stat.setInt(8, gameLookback);
|
|
|
stat.setInt(9, gameLookback);
|
|
stat.setInt(9, gameLookback);
|
|
|
|
|
|
|
@@ -304,17 +331,15 @@ public class SoccerMatchAnalysis {
|
|
|
|
|
|
|
|
public int goalsScoredHomeOrAway(boolean homeTeam, int gameLookback) {
|
|
public int goalsScoredHomeOrAway(boolean homeTeam, int gameLookback) {
|
|
|
int result = 0;
|
|
int result = 0;
|
|
|
- Team team = homeTeam ? match.getHomeTeam() : match.getAwayTeam();
|
|
|
|
|
|
|
+ Team team = homeTeam ? getHomeTeam() : getAwayTeam();
|
|
|
String homeOrAway = homeTeam ? "home" : "away";
|
|
String homeOrAway = homeTeam ? "home" : "away";
|
|
|
- String sql = "SELECT SUM(" + homeOrAway
|
|
|
|
|
- + "Score) FROM SoccerResults WHERE " + homeOrAway
|
|
|
|
|
- + "TeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ? "
|
|
|
|
|
- + "ORDER BY gameDate DESC";
|
|
|
|
|
|
|
+ String sql = "SELECT SUM(" + homeOrAway + "Score) FROM SoccerResults WHERE " + homeOrAway + "TeamId = ? AND " +
|
|
|
|
|
+ "leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ? " + "ORDER BY gameDate DESC";
|
|
|
|
|
|
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
|
|
|
stat.setInt(1, team.getTeamId());
|
|
stat.setInt(1, team.getTeamId());
|
|
|
stat.setInt(2, team.getTeamLeagueId());
|
|
stat.setInt(2, team.getTeamLeagueId());
|
|
|
- stat.setString(3, match.getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
|
|
|
|
+ stat.setString(3, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
|
|
stat.setInt(4, gameLookback);
|
|
stat.setInt(4, gameLookback);
|
|
|
|
|
|
|
|
ResultSet rs = stat.executeQuery();
|
|
ResultSet rs = stat.executeQuery();
|
|
@@ -327,5 +352,4 @@ public class SoccerMatchAnalysis {
|
|
|
}
|
|
}
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|