Статистика для дашборда, расширенная #7

This commit is contained in:
2026-04-28 23:04:17 +03:00
parent c87d56bb49
commit 3da4ee28d4
11 changed files with 261 additions and 70 deletions
+17 -1
View File
@@ -6,7 +6,7 @@
-export([generate_id/0]).
-export([list_users/0]).
-export([block/1, unblock/1]).
-export([count_users/0]).
-export([count_users/0, count_users_by_date/2]).
%% Создание пользователя
create(Email, Password) ->
@@ -126,6 +126,22 @@ unblock(Id) ->
count_users() ->
mnesia:table_info(user, size).
count_users_by_date(From, To) ->
All = mnesia:dirty_match_object(#user{_ = '_'}),
Filtered = lists:filter(fun(U) ->
U#user.created_at >= From andalso U#user.created_at =< To
end, All),
Counts = lists:foldl(fun(U, Acc) ->
Day = date_part(U#user.created_at),
case lists:keyfind(Day, 1, Acc) of
false -> [{Day, 1} | Acc];
{Day, C} -> lists:keyreplace(Day, 1, Acc, {Day, C+1})
end
end, [], Filtered),
lists:sort(Counts).
date_part({{Y,M,D}, _}) -> {Y,M,D}.
%% Внутренние функции
generate_id() ->
base64:encode(crypto:strong_rand_bytes(16), #{mode => urlsafe, padding => false}).