From 25d166d4f812e65f20de4af9bd59d6c978cc51a6 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer <paul-christian.volkmer@mni.thm.de> Date: Fri, 30 May 2014 16:41:34 +0200 Subject: [PATCH] Add logged in user count to statistics --- .../java/de/thm/arsnova/entities/Statistics.java | 12 +++++++++++- .../de/thm/arsnova/services/StatisticsService.java | 10 +++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/thm/arsnova/entities/Statistics.java b/src/main/java/de/thm/arsnova/entities/Statistics.java index d1faaa10..c0bb4d71 100644 --- a/src/main/java/de/thm/arsnova/entities/Statistics.java +++ b/src/main/java/de/thm/arsnova/entities/Statistics.java @@ -7,6 +7,7 @@ public class Statistics { private int openSessions; private int closedSessions; private int activeUsers; + private int loggedinUsers; public int getAnswers() { return answers; @@ -43,6 +44,13 @@ public class Statistics { this.activeUsers = activeUsers; } + public int getLoggedinUsers() { + return loggedinUsers; + } + public void setLoggedinUsers(final int loggedinUsers) { + this.loggedinUsers = loggedinUsers; + } + @Override public int hashCode() { return (this.getClass().getName() @@ -50,7 +58,9 @@ public class Statistics { + answers + closedSessions + openSessions - + questions).hashCode(); + + questions + + loggedinUsers + ).hashCode(); } @Override diff --git a/src/main/java/de/thm/arsnova/services/StatisticsService.java b/src/main/java/de/thm/arsnova/services/StatisticsService.java index 6f96824b..f4727b9d 100644 --- a/src/main/java/de/thm/arsnova/services/StatisticsService.java +++ b/src/main/java/de/thm/arsnova/services/StatisticsService.java @@ -20,25 +20,29 @@ public class StatisticsService implements IStatisticsService { @Override public final int countActiveUsers() { - long since = System.currentTimeMillis() - DURATION_IN_MILLIS; + final long since = System.currentTimeMillis() - DURATION_IN_MILLIS; return databaseDao.countActiveUsers(since); } @Override public int countLoggedInUsers() { + if (sessionRegistry == null) { + return 0; + } return sessionRegistry.getAllPrincipals().size(); } @Override public final Statistics getStatistics() { - long since = System.currentTimeMillis() - DURATION_IN_MILLIS; + final long since = System.currentTimeMillis() - DURATION_IN_MILLIS; - Statistics statistics = new Statistics(); + final Statistics statistics = new Statistics(); statistics.setOpenSessions(databaseDao.countOpenSessions()); statistics.setClosedSessions(databaseDao.countClosedSessions()); statistics.setAnswers(databaseDao.countAnswers()); statistics.setQuestions(databaseDao.countQuestions()); statistics.setActiveUsers(databaseDao.countActiveUsers(since)); + statistics.setLoggedinUsers(countLoggedInUsers()); return statistics; } } -- GitLab