152 lines
5.9 KiB
Erlang
152 lines
5.9 KiB
Erlang
|
|
%%----------------------------------------------------
|
||
|
|
%% 数据配置文件相关数据结构
|
||
|
|
%% @author yeahoo2000@gmail.com
|
||
|
|
%% @end
|
||
|
|
%%----------------------------------------------------
|
||
|
|
-define(LANGUAGE, en). %% 当前语言
|
||
|
|
-define(LANGUAGE_ALL, ["en","cn", "qq", "zh_tw", "jp"]). %% 所有语言
|
||
|
|
-define(SRV_INC_PATH, "../../server/inc/"). %% 服务端inc目录
|
||
|
|
-define(SRV_PATH, "../../server_core_data/data/"). %% 服务端目录
|
||
|
|
%% -define(SRV_PATH, "./out/"). %% 服务端目录
|
||
|
|
-define(CLI_PATH, "../../client/src/config/"). %% 客户端目录
|
||
|
|
-define(CLI_H5_PATH, "../../client_h5/src/config/"). %% 客户端目录
|
||
|
|
-define(CLI_JSON_PATH, "../../client_h5/src/config/"). %% 客户端目录
|
||
|
|
-define(PHP_PATH, "./out/"). %% PHP配置文件目录
|
||
|
|
-define(DEF_PATH, "./json_data/"). %% 默认目录
|
||
|
|
-define(DEF_DATA, "./data/"). %% 默认数据目录
|
||
|
|
-define(DEF_LUA, "./lua_data/"). %% 默认目录
|
||
|
|
%% -define(DEF_DATA, "./template/"). %% 默认数据目录
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
-define(PROC_NUM, 3). %% 进程数
|
||
|
|
-define(LANG_COLS, [
|
||
|
|
#f_column{type = term, name = lang_white, desc = "语言白名单", mod = lang, comment = lists:concat(["空表示所有 格式:cn,jp\n所有项:", string:join(?LANGUAGE_ALL, ",")]), val = "[]"}
|
||
|
|
,#f_column{type = term, name = lang_black, desc = "语言黑名单", mod = lang, comment = lists:concat(["空表示所有 格式:cn,jp\n所有项:", string:join(?LANGUAGE_ALL, ",")]), val = "[]"}
|
||
|
|
]).
|
||
|
|
|
||
|
|
%% 指针加一
|
||
|
|
-define(inc_row, put(row_idx, get(row_idx) + 1)).
|
||
|
|
-define(inc_col, put(col_idx, get(col_idx) + 1)).
|
||
|
|
-define(inc_names, put(names_idx, get(names_idx) + 1)).
|
||
|
|
-define(inc_sheets, put(sheets_idx, get(sheets_idx) + 1)).
|
||
|
|
|
||
|
|
%% 重置指针
|
||
|
|
-define(reset_row, put(row_idx, 1), put(rows, [])).
|
||
|
|
-define(reset_col, put(col_idx, 1), put(cells, [])).
|
||
|
|
-define(reset_names, put(names_idx, 1), put(names, []), put(valid, []), put(names_def, [])).
|
||
|
|
-define(reset_sheets, put(sheets_idx, 1), put(sheets, [])).
|
||
|
|
|
||
|
|
%% 配置说明
|
||
|
|
-record(data_cfg, {
|
||
|
|
%% 配置名
|
||
|
|
name :: atom()
|
||
|
|
%% 描述
|
||
|
|
,desc = "" :: string()
|
||
|
|
%% 生成的对应record
|
||
|
|
,record :: atom()
|
||
|
|
%% 模板需要垂直方向需要拆分的列数
|
||
|
|
,splitv = 1 :: pos_integer()
|
||
|
|
%% 头部占用行数
|
||
|
|
,head_rows = 1 :: pos_integer()
|
||
|
|
%% 数据文件需要引入的头文件
|
||
|
|
,inc = [] :: [string()]
|
||
|
|
%% 数据源文件
|
||
|
|
,source = "" :: string()
|
||
|
|
%% 目标文件
|
||
|
|
,target = "" :: string()
|
||
|
|
%% LuaName
|
||
|
|
,lua_name = "" :: string()
|
||
|
|
%% JsName
|
||
|
|
,js_name = "" :: string()
|
||
|
|
%% 语言版本检查
|
||
|
|
,lang = false :: boolean()
|
||
|
|
%% 同时生成校验文件同来校验其它文件
|
||
|
|
,valid_file = false :: boolean()
|
||
|
|
%% 数据工作表描述
|
||
|
|
,sheet = [] :: list()
|
||
|
|
%% 数据列描述
|
||
|
|
,column = [] :: list()
|
||
|
|
%% 服务端回调
|
||
|
|
,callback = [] :: list()
|
||
|
|
,callback_hrl = [] :: list()
|
||
|
|
%% 客户端Lua回调函数
|
||
|
|
,callback_cli = [] :: list()
|
||
|
|
%% 客户端JS回调函数
|
||
|
|
,callback_js = [] :: list()
|
||
|
|
%% 客户端Json回调函数
|
||
|
|
,callback_json = [] :: list()
|
||
|
|
%% PHP配置生成回调
|
||
|
|
,callback_php = [] :: list()
|
||
|
|
%% 追加数据表
|
||
|
|
,add_data_xml = [] :: list()
|
||
|
|
%% 数据连接合并处理{Name新工作区名称, Name1工作区名称, Name2:查找工作区名称, Keys::合并连接键}
|
||
|
|
,merge_data = [] :: list()
|
||
|
|
}
|
||
|
|
).
|
||
|
|
|
||
|
|
%% 列定义
|
||
|
|
-record(f_column, {
|
||
|
|
%% 列类型
|
||
|
|
type = int :: int | float | str | bstr | nstr | term | list | tuple | single | rec | atom | kv | const | func
|
||
|
|
%% 特殊的列类型回调处理函数
|
||
|
|
,type_func
|
||
|
|
%% 列名称
|
||
|
|
,name :: atom()
|
||
|
|
%% record字段名 默认为name
|
||
|
|
,rec_name :: atom()
|
||
|
|
%% 取第几列内容
|
||
|
|
,col_pos = -1 :: pos_integer()
|
||
|
|
%% 是否主键 唯一值
|
||
|
|
,primary = false :: boolean()
|
||
|
|
%% 列表校验方式
|
||
|
|
,valid_list = [] :: false | list()
|
||
|
|
%% 是否需要外增加[]
|
||
|
|
,add_list_sign = true :: boolean()
|
||
|
|
%% 列显示宽度
|
||
|
|
,width = 0 :: non_neg_integer()
|
||
|
|
%% 最小值长度
|
||
|
|
,min = 0 :: integer()
|
||
|
|
%% 最大值长度
|
||
|
|
,max = 9999999999 :: integer()
|
||
|
|
%% 扩展数据校验方式
|
||
|
|
,ext_valid :: any()
|
||
|
|
%% 说明
|
||
|
|
,desc = "" :: string()
|
||
|
|
%% 子项目
|
||
|
|
,fields = [] :: list()
|
||
|
|
%% 模式
|
||
|
|
,mod = server :: all | desc | server | client | php | lang
|
||
|
|
%% 子项拆分符号
|
||
|
|
,spilt_str = "," :: string()
|
||
|
|
%% 行拆分符号
|
||
|
|
,spilt_line = "$$$" :: string()
|
||
|
|
%% 记录名
|
||
|
|
,rec :: atom()
|
||
|
|
%% 映射类型
|
||
|
|
,kv_type :: undefined | atom() | {m, f, a}
|
||
|
|
%% kv放在独立工作区
|
||
|
|
,kv_sheet = false :: false | true
|
||
|
|
%% 原值 未作任何处理
|
||
|
|
,cell_val :: term()
|
||
|
|
%% 值 服务端
|
||
|
|
,val :: term()
|
||
|
|
%% 值 客户端
|
||
|
|
,val_cli :: term()
|
||
|
|
%% 备注
|
||
|
|
,comment = "" :: string()
|
||
|
|
%% 默认值 (客户端使用)
|
||
|
|
,def_cli_val :: term()
|
||
|
|
%% 是否允许空值
|
||
|
|
,is_null = true :: false | true
|
||
|
|
%% 是否构造客户端kv值
|
||
|
|
,is_cli_kv = true :: false | true
|
||
|
|
%% 测试 false:不指印 true:指印所有行 pos_integer():指定行 {MinRow, MaxRow}
|
||
|
|
,debug = false :: false | true | pos_integer() | {pos_integer(), pos_integer()}
|
||
|
|
%% 转换处理(time)
|
||
|
|
,convert :: atom()
|
||
|
|
%% 字符替换处理
|
||
|
|
,replace = [] :: list()
|
||
|
|
}
|
||
|
|
).
|