diff -r 3d16ad54b3dc -r 0a658e53177c src/main/java/de/uapcore/lightpit/dao/postgres/PGVersionDao.java --- a/src/main/java/de/uapcore/lightpit/dao/postgres/PGVersionDao.java Sat May 30 18:12:38 2020 +0200 +++ b/src/main/java/de/uapcore/lightpit/dao/postgres/PGVersionDao.java Mon Jun 01 14:46:58 2020 +0200 @@ -29,7 +29,9 @@ package de.uapcore.lightpit.dao.postgres; import de.uapcore.lightpit.dao.VersionDao; -import de.uapcore.lightpit.entities.*; +import de.uapcore.lightpit.entities.Project; +import de.uapcore.lightpit.entities.Version; +import de.uapcore.lightpit.entities.VersionStatus; import java.sql.Connection; import java.sql.PreparedStatement; @@ -42,7 +44,6 @@ public final class PGVersionDao implements VersionDao { private final PreparedStatement insert, update, list, find; - private final PreparedStatement issuesAffected, issuesScheduled, issuesResolved; public PGVersionDao(Connection connection) throws SQLException { list = connection.prepareStatement( @@ -64,54 +65,19 @@ update = connection.prepareStatement( "update lpit_version set name = ?, ordinal = ?, status = ?::version_status where versionid = ?" ); - - issuesAffected = connection.prepareStatement( - "select category, status, count(*) as issuecount " + - "from lpit_issue_affected_version " + - "join lpit_issue using (issueid) " + - "where versionid = ? " + - "group by category, status" - ); - issuesScheduled = connection.prepareStatement( - "select category, status, count(*) as issuecount " + - "from lpit_issue_scheduled_version " + - "join lpit_issue using (issueid) " + - "where versionid = ? " + - "group by category, status" - ); - issuesResolved = connection.prepareStatement( - "select category, status, count(*) as issuecount " + - "from lpit_issue_resolved_version " + - "join lpit_issue using (issueid) " + - "where versionid = ? " + - "group by category, status" - ); } private Version mapColumns(ResultSet result) throws SQLException { final var project = new Project(result.getInt("project")); project.setName(result.getString("projectname")); - final var version = new Version(result.getInt("versionid"), project); + final var version = new Version(result.getInt("versionid")); + version.setProject(project); version.setName(result.getString("name")); version.setOrdinal(result.getInt("ordinal")); version.setStatus(VersionStatus.valueOf(result.getString("status"))); return version; } - private VersionStatistics versionStatistics(Version version, PreparedStatement stmt) throws SQLException { - stmt.setInt(1, version.getId()); - final var result = stmt.executeQuery(); - final var stats = new VersionStatistics(version); - while (result.next()) { - stats.setIssueCount( - IssueCategory.valueOf(result.getString("category")), - IssueStatus.valueOf(result.getString("status")), - result.getInt("issuecount") - ); - } - return stats; - } - @Override public void save(Version instance) throws SQLException { Objects.requireNonNull(instance.getName()); @@ -159,19 +125,4 @@ } } } - - @Override - public VersionStatistics statsOpenedIssues(Version version) throws SQLException { - return versionStatistics(version, issuesAffected); - } - - @Override - public VersionStatistics statsScheduledIssues(Version version) throws SQLException { - return versionStatistics(version, issuesScheduled); - } - - @Override - public VersionStatistics statsResolvedIssues(Version version) throws SQLException { - return versionStatistics(version, issuesResolved); - } }