diff --git a/apps/iot/src/influxdb/influx_client.erl b/apps/iot/src/influxdb/influx_client.erl index 359ef60..1bf2b4e 100644 --- a/apps/iot/src/influxdb/influx_client.erl +++ b/apps/iot/src/influxdb/influx_client.erl @@ -54,15 +54,9 @@ get_precision(Timestamp) when is_integer(Timestamp) -> -spec write_data(Measurement :: binary(), Tags :: map(), FieldsList :: list(), Timestamp :: integer()) -> no_return(). write_data(Measurement, Tags, FieldsList, Timestamp) when is_binary(Measurement), is_map(Tags), is_list(FieldsList), is_integer(Timestamp) -> %% 按照设备的uuid进行分组 - Points = lists:map(fun(Fields) -> - NFields = case Fields of - #{<<"key">> := Key, <<"value">> := Value, <<"unit">> := Unit, <<"name">> := Name, <<"label">> := Label} -> - #{Key => jiffy:encode(#{<<"value">> => Value, <<"unit">> => Unit, <<"name">> => Name, <<"label">> => Label}, [force_utf8])}; - #{<<"key">> := Key, <<"value">> := Value, <<"unit">> := Unit} -> - #{Key => jiffy:encode(#{<<"value">> => Value, <<"unit">> => Unit}, [force_utf8])}; - #{<<"key">> := Key, <<"value">> := Value} -> - #{Key => #{<<"value">> => Value}} - end, + Points = lists:map(fun(Fields = #{<<"key">> := Key}) -> + Values = maps:remove(<<"key">>, Fields), + NFields = #{Key => jiffy:encode(Values, [force_utf8])}, influx_point:new(Measurement, Tags, NFields, Timestamp) end, FieldsList), Precision = influx_client:get_precision(Timestamp),