diff --git a/src/main/java/de/thm/arsnova/controller/StatisticsController.java b/src/main/java/de/thm/arsnova/controller/StatisticsController.java index 37074be6f1013dd24c8e571a7efc19070a7db039..4d152fda559c4e87f899748d362f2fbf6794b961 100644 --- a/src/main/java/de/thm/arsnova/controller/StatisticsController.java +++ b/src/main/java/de/thm/arsnova/controller/StatisticsController.java @@ -31,6 +31,14 @@ public class StatisticsController { return Integer.toString(statisticsService.countActiveUsers()); } + @RequestMapping(method = RequestMethod.GET, value = "/statistics/loggedinusercount", produces = "text/plain") + @ResponseBody + public final String countLoggedInUsers(HttpServletResponse response) { + response.addHeader("X-Deprecated-API", "1"); + + return Integer.toString(statisticsService.countLoggedInUsers()); + } + @RequestMapping(method = RequestMethod.GET, value = "/statistics/sessioncount", produces = "text/plain") @ResponseBody public final String countSessions(HttpServletResponse response) { diff --git a/src/main/java/de/thm/arsnova/services/IStatisticsService.java b/src/main/java/de/thm/arsnova/services/IStatisticsService.java index 76b8374e76d576731b31631e6bb9d1f930416207..e6a30b07a561d4289d4de519a1a631e6e447f014 100644 --- a/src/main/java/de/thm/arsnova/services/IStatisticsService.java +++ b/src/main/java/de/thm/arsnova/services/IStatisticsService.java @@ -6,5 +6,7 @@ public interface IStatisticsService { int countActiveUsers(); + int countLoggedInUsers(); + Statistics getStatistics(); } diff --git a/src/main/java/de/thm/arsnova/services/IUserService.java b/src/main/java/de/thm/arsnova/services/IUserService.java index f0f01359239d886d62fc18a4e7d25d20972dc05a..8146edd11d648581425fbf833fbe32815c29b650 100644 --- a/src/main/java/de/thm/arsnova/services/IUserService.java +++ b/src/main/java/de/thm/arsnova/services/IUserService.java @@ -52,4 +52,6 @@ public interface IUserService { int getUsersInSessionCount(String keyword); void removeUserFromMaps(User user); + + int loggedInUsers(); } diff --git a/src/main/java/de/thm/arsnova/services/StatisticsService.java b/src/main/java/de/thm/arsnova/services/StatisticsService.java index 6064498b9ee8d53700d7092423c211f1f1e226a4..67a6f58da24ecabcd9e29da4bdbcd408d1ef96e7 100644 --- a/src/main/java/de/thm/arsnova/services/StatisticsService.java +++ b/src/main/java/de/thm/arsnova/services/StatisticsService.java @@ -14,12 +14,20 @@ public class StatisticsService implements IStatisticsService { @Autowired private IDatabaseDao databaseDao; + @Autowired + private IUserService userService; + @Override public final int countActiveUsers() { long since = System.currentTimeMillis() - DURATION_IN_MILLIS; return databaseDao.countActiveUsers(since); } + @Override + public int countLoggedInUsers() { + return userService.loggedInUsers(); + } + @Override public final Statistics getStatistics() { long since = System.currentTimeMillis() - DURATION_IN_MILLIS; diff --git a/src/main/java/de/thm/arsnova/services/UserService.java b/src/main/java/de/thm/arsnova/services/UserService.java index 0324606d0d206236318c38814ec3d26606fc5651..57460a1724da774aa0b0289e4e0c7ab70ea801ab 100644 --- a/src/main/java/de/thm/arsnova/services/UserService.java +++ b/src/main/java/de/thm/arsnova/services/UserService.java @@ -284,4 +284,9 @@ public class UserService implements IUserService, InitializingBean, DisposableBe user2sessionLegacy.remove(user); } } + + @Override + public int loggedInUsers() { + return user2session.size(); + } }