进出入完善组织机构并加入导入人员和机构功能
554325746@qq.com
2019-08-07 07a66e53d2b4126c2004870d81a379d8ef0071da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
%%%-------------------------------------------------------------------
%%% @author panse
%%% @copyright (C) 2018, <COMPANY>
%%% @doc
%%%
%%% @end
%%% Created : 06. 八月 2018 10:28
%%%-------------------------------------------------------------------
-module(tableType).
-author("panse").
 
 
%%% 黑白名单
-record(tableType, {tableName, id, bwType, create_time, update_time, create_by}).
 
-include_lib("stdlib/include/ms_transform.hrl").
-include_lib("stdlib/include/qlc.hrl").
 
%% API
-compile(export_all).
%%% 创建 黑白名单管理表
%%% 应仅在集群初始化的时候调用一次
%%% 默认值为tableType
create_tableType(Nodes, TableName) ->
  %%tableType
  Ret = mnesia:create_table(TableName,
    [{disc_copies, Nodes},
      {attributes,
        record_info(fields, tableType)}
%%      ,{index, [#device_info.id]}
    ]),
  io:format("create_tableType Ret=~p~n", [Ret]),
%%  changeTableConfig(nodes(), TableName),
  mnesia:change_table_copy_type(TableName, node(), disc_copies),
  Ret.
 
%%% 设置
add_tableType(Uuid, TableName, TabBWType) ->
  if
    Uuid == "" ->
      ID = syncTool:getUUIDStr();
    true ->
      ID = Uuid
  end,
  CreateTime = syncTool:getTimeStr(),
  UpdateTime = syncTool:getTimeStr(),
  CreateUser = node(),
  F = fun() ->
    mnesia:write(#tableType{tableName = TableName, id = ID, bwType = TabBWType,
      create_time = CreateTime, update_time = UpdateTime, create_by = CreateUser})
      end,
  Ret = mnesia:activity(transaction, F),
  if
    Ret == ok ->
      Result = ID;
    true ->
      Result = ""
  end,
  Result.
 
%%% 删除表后应删除记录
%%% 物理删除
del_TableTypeInfo(TableName) ->
  mnesia:transaction(
    fun() ->
      mnesia:delete({tableType, TableName})
    end).
 
%%% 查找所有信息
findAllTableTypeInfo(TableName) ->
%%  Q = qlc:q([[E#y_account.id, E#y_account.account] || E <- mnesia:table(y_account)]),
%%qlc:e(Q)
  F = fun() ->
    qlc:e(qlc:q([{TabName, ID, TabBWType, CreateTime, UpdateTime, CreateUser}
      || #tableType{tableName = TabName, id = ID, bwType = TabBWType, create_time = CreateTime,
        update_time = UpdateTime, create_by = CreateUser} <- mnesia:table(TableName)]))
      end,
  mnesia:activity(transaction, F).
 
tableTypeformat2Mat([]) ->
  [];
tableTypeformat2Mat(_ExpertiseList = [OnlineNodes | T]) ->
  OnlineNode = OnlineNodes,
  TemMaps = #{"tableName" => element(1, OnlineNode), "uuid" => element(2, OnlineNode), "bwType" => element(3, OnlineNode),
    "create_time" => element(4, OnlineNode), "update_time" => element(5, OnlineNode), "create_by" => element(6, OnlineNode)
  },
  io:format("~p~n~n~n", [TemMaps]),
  [maps:to_list(TemMaps) | tableTypeformat2Mat(T)].
 
 
%%% 查找信息
findTableTypeInfo(TableName, Expertise) ->
  F = fun() ->
    qlc:e(qlc:q([{TabName, ID, TabBWType, CreateTime, UpdateTime, CreateUser}
      || #tableType{tableName = TabName, id = ID, bwType = TabBWType, create_time = CreateTime,
        update_time = UpdateTime, create_by = CreateUser} <- mnesia:table(TableName),
      TabName =:= Expertise]))
      end,
  mnesia:activity(transaction, F).