Расширена статистика для разделов #22

This commit is contained in:
2026-05-28 13:49:08 +03:00
parent 2dac5e5102
commit 1986fd4694
20 changed files with 1189 additions and 71 deletions
+12 -9
View File
@@ -1,10 +1,3 @@
%%%-------------------------------------------------------------------
%%% @doc Модуль сбора статистики для административной панели.
%%%
%%% Предоставляет функции `get_stats/2` и `get_stats/4`, возвращающие
%%% агрегированные показатели в зависимости от роли администратора.
%%% @end
%%%-------------------------------------------------------------------
-module(logic_stats).
-export([get_stats/2, get_stats/4]).
-include("records.hrl").
@@ -53,9 +46,14 @@ build_superadmin_stats(From, To) ->
events_total => core_event:count_events(),
calendars_total => core_calendar:count_calendars(),
reviews_total => core_review:count_reviews(),
reports_total => core_report:count_reports_by_status(pending),
reports_total => core_report:count_reports(), % все жалобы
reports_pending => core_report:count_reports_by_status(pending),
reports_reviewed => core_report:count_reports_by_status(reviewed),
reports_dismissed => core_report:count_reports_by_status(dismissed),
tickets_open => core_ticket:count_tickets_by_status(open),
tickets_total => length(core_ticket:list_all()),
subscriptions_total => core_subscription:count_subscriptions(),
trial_subscriptions => core_subscription:count_trial_subscriptions(),
avg_ticket_resolution_h => trunc_hours(core_ticket:avg_resolution_time()),
registrations_by_day => date_list_to_json(core_user:count_users_by_date(From, To)),
events_by_day => date_list_to_json(core_event:count_events_by_date(From, To)),
@@ -80,9 +78,14 @@ build_admin_stats(From, To) ->
events_total => core_event:count_events(),
calendars_total => core_calendar:count_calendars(),
reviews_total => core_review:count_reviews(),
reports_total => core_report:count_reports_by_status(pending),
reports_total => core_report:count_reports(),
reports_pending => core_report:count_reports_by_status(pending),
reports_reviewed => core_report:count_reports_by_status(reviewed),
reports_dismissed => core_report:count_reports_by_status(dismissed),
tickets_open => core_ticket:count_tickets_by_status(open),
tickets_total => length(core_ticket:list_all()),
subscriptions_total => core_subscription:count_subscriptions(),
trial_subscriptions => core_subscription:count_trial_subscriptions(),
avg_ticket_resolution_h => trunc_hours(core_ticket:avg_resolution_time()),
registrations_by_day => date_list_to_json(core_user:count_users_by_date(From, To)),
events_by_day => date_list_to_json(core_event:count_events_by_date(From, To)),