diff --git a/apps/iot/src/model/terminal_model.erl b/apps/iot/src/model/terminal_model.erl index 395ba95..74284cf 100644 --- a/apps/iot/src/model/terminal_model.erl +++ b/apps/iot/src/model/terminal_model.erl @@ -12,6 +12,7 @@ -include_lib("stdlib/include/qlc.hrl"). %% API +-export([get_all_terminals/0, get_status_stat/0]). %% 获取app信息 get_all_terminals() -> @@ -26,11 +27,22 @@ get_all_terminals() -> {error, Reason} end. -get_status_groups() -> - - - ok. +%% 获取状态分组统计信息 +-spec get_status_stat() -> {ok, #{}} | {error, Reason :: any()}. +get_status_stat() -> + Fun = fun() -> + mnesia:foldl(fun(#terminal{status = Status}, Acc) -> + Num = maps:get(Status, Acc, 0), + Acc#{Status => Num + 1} + end, #{}, terminal) + end, + case mnesia:transaction(Fun) of + {atomic, Stat} -> + {ok, Stat}; + {aborted, Reason} -> + {error, Reason} + end. insert(Id, HostId, Name, ProductId, VendorId, Model, CellId) -> Terminal = #terminal{