%%%------------------------------------------------------------------- %%% @author panse %%% @copyright (C) 2018, %%% @doc %%% %%% @end %%% Created : 06. 八月 2018 10:21 %%%------------------------------------------------------------------- -module(person_info_feature). -author("panse"). %%% 底库 -record(person_info_feature, {id, feature, create_time, update_time, create_by, img, idcard}). -include_lib("stdlib/include/ms_transform.hrl"). -include_lib("stdlib/include/qlc.hrl"). %% API -export([create_personFeature/2, add_personFea/5, del_personFea/2]). -export([findAllPersonFea/1, personFeaFormat2Mat/1, personNoFeaFormat2Mat/1, findPersonFea/2]). %%% 人员特征信息 create_personFeature(Nodes, TableName) -> Ret = mnesia:create_table(TableName, [{disc_copies, Nodes}, {attributes, record_info(fields, person_info_feature)}, {record_name, person_info_feature} %% ,{index, [#device_info.id]} ]), io:format("create_personFea Ret=~p~n", [Ret]), syncTool:changeTableConfig(Nodes, TableName), %% mnesia:change_table_copy_type(TableName, node(), disc_copies), Ret. add_personFea(ID, TableName, Feature, Img, Idcard) -> io:format("TableName ~p, Feature ~p ~n", [TableName, Feature]), CreateUser = node(), F = fun() -> mnesia:write(TableName, #person_info_feature{id = ID, feature = Feature, create_time = syncTool:getTimeStr(), update_time = syncTool:getTimeStr(), create_by = CreateUser, img = Img, idcard = Idcard}, write) end, %%#todo try catch Ret = mnesia:activity(transaction, F), io:format("add_personFea ~p~n", [Ret]), if Ret == ok -> Result = ID; true -> Result = '' end, Result. %%根据id删除记录 del_personFea(TableName, ID) -> mnesia:transaction( fun() -> mnesia:delete({TableName, ID}) end). findAllPersonFea(TableName) -> F = fun() -> qlc:e(qlc:q([{ID, Feature, CreateTime, UpdateTime, CreateUser, Img, Idcard} || #person_info_feature{id = ID, feature = Feature, create_time = CreateTime, update_time = UpdateTime, create_by = CreateUser, img = Img, idcard = Idcard} <- mnesia:table(TableName)])) end, mnesia:activity(transaction, F). personFeaFormat2Mat([]) -> []; personFeaFormat2Mat(_ExpertiseList = [AREC | T]) -> TemMaps = #{"id" => element(1, AREC), "feature" => element(2, AREC), "create_time" => element(3, AREC), "update_time" => element(4, AREC), "create_by" => element(5, AREC), "img" => element(6, AREC), "idcard" => element(7, AREC) }, [maps:to_list(TemMaps) | personFeaFormat2Mat(T)]. personNoFeaFormat2Mat([]) -> []; personNoFeaFormat2Mat(_ExpertiseList = [AREC | T]) -> TemMaps = #{"id" => element(1, AREC), "create_time" => element(3, AREC), "update_time" => element(4, AREC), "create_by" => element(5, AREC), "img" => element(6, AREC), "idcard" => element(7, AREC) }, [maps:to_list(TemMaps) | personNoFeaFormat2Mat(T)]. %%#todo return ->map ->list findPersonFea(TableName, Expertise) -> F = fun() -> qlc:e(qlc:q([{ID, Feature, CreateTime, UpdateTime, CreateUser, Img, Idcard} || #person_info_feature{id = ID, feature = Feature, create_time = CreateTime, update_time = UpdateTime, create_by = CreateUser, img = Img, idcard = Idcard} <- mnesia:table(TableName), ID =:= Expertise])) end, mnesia:activity(transaction, F).