Class StatisticsService
java.lang.Object
com.anticafe.service.StatisticsService
Сервис статистики антикафе.
Предоставляет методы для получения текущей и архивной статистики
по работе заведения: занятость столиков, заработок, популярность.
-
Constructor Summary
ConstructorsConstructorDescriptionStatisticsService(AnticafeService anticafeService) Создает экземпляр сервиса статистики. -
Method Summary
Modifier and TypeMethodDescriptiondoubleВычисляет среднее время занятости столика за всю историю посещений.doubleВычисляет общую сумму, которую гости должны заплатить, если покинут антикафе прямо сейчас.intОпределяет номер самого популярного столика.intОпределяет номер столика, который принес наибольший доход.intВозвращает количество занятых столиков в данный момент.Формирует карту с суммарным доходом для каждого столика.doublegetTableTotalEarnings(int tableNumber) Возвращает общий доход, полученный с конкретного столика.intgetTableVisitCount(int tableNumber) Возвращает количество посещений для конкретного столика.Формирует карту с количеством посещений для каждого столика.doubleВозвращает общий заработок антикафе за всё время работы приложения.
-
Constructor Details
-
StatisticsService
Создает экземпляр сервиса статистики.- Parameters:
anticafeService- сервис антикафе, предоставляющий доступ к данным
-
-
Method Details
-
getOccupiedTablesCount
public int getOccupiedTablesCount()Возвращает количество занятых столиков в данный момент. Подсчитывает столики, у которых установлен флаг занятости.- Returns:
- количество занятых столиков (от 0 до 10)
-
getCurrentTotalCost
public double getCurrentTotalCost()Вычисляет общую сумму, которую гости должны заплатить, если покинут антикафе прямо сейчас. Сумма рассчитывается для всех занятых столиков на основе текущего времени пребывания.- Returns:
- общая текущая сумма к оплате в рублях
-
getTotalEarnings
public double getTotalEarnings()Возвращает общий заработок антикафе за всё время работы приложения. Суммирует стоимость всех завершенных посещений из истории.- Returns:
- общий заработок в рублях
-
getAverageOccupationTime
public double getAverageOccupationTime()Вычисляет среднее время занятости столика за всю историю посещений. Рассчитывается как среднее арифметическое продолжительности всех визитов.- Returns:
- среднее время в минутах или 0, если история посещений пуста
-
getMostPopularTable
public int getMostPopularTable()Определяет номер самого популярного столика. Популярным считается столик, который выбирали наибольшее количество раз.- Returns:
- номер самого популярного столика или -1, если история посещений пуста
-
getTableVisitCounts
-
getMostProfitableTable
public int getMostProfitableTable()Определяет номер столика, который принес наибольший доход. Суммирует стоимость всех посещений для каждого столика и выбирает максимальную.- Returns:
- номер самого доходного столика или -1, если история посещений пуста
-
getTableEarnings
-
getTableVisitCount
public int getTableVisitCount(int tableNumber) Возвращает количество посещений для конкретного столика.- Parameters:
tableNumber- номер столика- Returns:
- количество посещений указанного столика (0, если посещений не было)
-
getTableTotalEarnings
public double getTableTotalEarnings(int tableNumber) Возвращает общий доход, полученный с конкретного столика.- Parameters:
tableNumber- номер столика- Returns:
- сумма дохода с указанного столика в рублях
-