%%%------------------------------------------------------------------- %%% @author panse %%% @copyright (C) 2018, %%% @doc %%% %%% @end %%% Created : 06. 八月 2018 10:18 %%%------------------------------------------------------------------- -module(person_info). -author("panse"). %%% 底库人员信息 -record(person_info, {id, personName, age, sex, idCard, phoneNum, create_time, update_time, create_by}). -include_lib("stdlib/include/ms_transform.hrl"). -include_lib("stdlib/include/qlc.hrl"). %% API -export([create_personInfo/2, add_personInfo/7, del_personInfo/2]). -export([findAllpersonInfo/1, personInfoFormat2Mat/1, findPersonInfo/2]). -export([findPersonInfo/2]). %%% 人员信息 create_personInfo(Nodes, TableName) -> Ret = mnesia:create_table(TableName, [{disc_copies, Nodes}, {attributes, record_info(fields, person_info)}, {record_name, person_info} %% ,{index, [#device_info.id]} ]), io:format("create_personInfo Ret=~p~n", [Ret]), syncTool:changeTableConfig(Nodes, TableName), %% mnesia:change_table_copy_type(TableName, node(), disc_copies), Ret. add_personInfo(TableName, ID, PersonName, Age, Sex, IdCard, PhoneNum) -> CreateUser = node(), F = fun() -> mnesia:write(TableName, #person_info{id = ID, personName = PersonName, age = Age, sex = Sex, idCard = IdCard, phoneNum = PhoneNum, create_time = syncTool:getTimeStr(), update_time = syncTool:getTimeStr(), create_by = CreateUser}, write) end, Ret = mnesia:activity(transaction, F), if Ret == ok -> Result = ID; true -> Result = '' end, io:format("add_personInfo ~p~n", [Ret]), Result. %%根据id删除记录 del_personInfo(TableName, ID) -> mnesia:transaction( fun() -> mnesia:delete({TableName, ID}) end). findAllpersonInfo(TableName) -> F = fun() -> qlc:e(qlc:q([{ID, PersonName, Age, Sex, IdCard, PhoneNum, CreateTime, UpdateTime, CreateUser} || #person_info{id = ID, personName = PersonName, age = Age, sex = Sex, idCard = IdCard, phoneNum = PhoneNum, create_time = CreateTime, update_time = UpdateTime, create_by = CreateUser} <- mnesia:table(TableName)])) end, mnesia:activity(transaction, F). personInfoFormat2Mat([]) -> []; personInfoFormat2Mat(_ExpertiseList = [AREC | T]) -> %%id, personName, age, sex, idCard, phoneNum, create_time, update_time, create_by, del_flag TemMaps = #{"id" => element(1, AREC), "personName" => element(2, AREC), "age" => element(3, AREC), "sex" => element(4, AREC), "idCard" => element(5, AREC), "phoneNum" => element(6, AREC), "create_time" => element(7, AREC), "update_time" => element(8, AREC), "create_by" => element(9, AREC) }, [maps:to_list(TemMaps) | personInfoFormat2Mat(T)]. %%#todo return ->map ->list findPersonInfo(TableName, Expertise) -> F = fun() -> qlc:e(qlc:q([{ID, PersonName, Age, Sex, IdCard, PhoneNum, CreateTime, UpdateTime, CreateUser} || #person_info{id = ID, personName = PersonName, age = Age, sex = Sex, idCard = IdCard, phoneNum = PhoneNum, create_time = CreateTime, update_time = UpdateTime, create_by = CreateUser} <- mnesia:table(TableName), ID =:= Expertise])) end, mnesia:activity(transaction, F).