ai_event部分配置信息从数据库获取
This commit is contained in:
parent
c1b3191b9c
commit
9bbdeea0d5
22
apps/iot/src/database/ai_event_bo.erl
Normal file
22
apps/iot/src/database/ai_event_bo.erl
Normal file
@ -0,0 +1,22 @@
|
||||
%%%-------------------------------------------------------------------
|
||||
%%% @author aresei
|
||||
%%% @copyright (C) 2023, <COMPANY>
|
||||
%%% @doc
|
||||
%%%
|
||||
%%% @end
|
||||
%%% Created : 16. 5月 2023 12:48
|
||||
%%%-------------------------------------------------------------------
|
||||
-module(ai_event_bo).
|
||||
-author("aresei").
|
||||
-include("iot.hrl").
|
||||
|
||||
%% API
|
||||
-export([get_all_events/0, get_event_by_event_type/1]).
|
||||
|
||||
-spec get_all_events() -> {ok, Devices :: [map()]} | {error, Reason :: any()}.
|
||||
get_all_events() ->
|
||||
mysql_pool:get_all(mysql_iot, <<"SELECT * FROM ai_event">>).
|
||||
|
||||
-spec get_event_by_event_type(EventType :: integer()) -> {ok, EventInfo :: map()} | undefined.
|
||||
get_event_by_event_type(EventType) when is_integer(EventType) ->
|
||||
mysql_pool:get_row(mysql_iot, <<"SELECT * FROM ai_event WHERE event_type = ? LIMIT 1">>, [EventType]).
|
||||
@ -204,7 +204,9 @@ handle_cast({auth, false}, State = #state{device_uuid = DeviceUUID}) ->
|
||||
{noreply, State#state{auth_status = 0}};
|
||||
|
||||
%% ai事件的延迟整流逻辑, 保证在间隔事件内只发送一次
|
||||
handle_cast({ai_event, EventType, Params}, State = #state{device_uuid = DeviceUUID, ai_event_throttle = EventThrottle, ai_event_ttl = EventTTL}) ->
|
||||
handle_cast({ai_event, EventType, Params0}, State = #state{device_uuid = DeviceUUID, ai_event_throttle = EventThrottle, ai_event_ttl = EventTTL}) ->
|
||||
%% 查询数据库,覆盖params的部分信息
|
||||
Params = rewrite_ai_event(EventType, Params0),
|
||||
case maps:find(EventType, EventThrottle) of
|
||||
{ok, Interval} ->
|
||||
LastTimestamp = maps:get(EventType, EventTTL, 0),
|
||||
@ -321,3 +323,13 @@ extract_build_location_code(<<BuildLocationCode:9/binary, Suffix/binary>>) ->
|
||||
<<BuildLocationCode/binary, NSuffix/binary>>;
|
||||
extract_build_location_code(Code) when is_binary(Code) ->
|
||||
Code.
|
||||
|
||||
-spec rewrite_ai_event(EventType :: integer(), Params :: map()) -> NParams :: map().
|
||||
rewrite_ai_event(EventType, Params) when is_integer(EventType), is_map(Params) ->
|
||||
%% 查询数据库,覆盖params的部分信息
|
||||
case ai_event_bo:get_event_by_event_type(EventType) of
|
||||
{ok, #{<<"event_code">> := EventCode, <<"event_name">> := EventName}} ->
|
||||
Params#{<<"event_code">> => EventCode, <<"description">> => EventName};
|
||||
undefined ->
|
||||
Params
|
||||
end.
|
||||
Loading…
x
Reference in New Issue
Block a user