1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- --[[
- Descripttion:基础模块类
- version:
- Author: Neo,Huang
- Date: 2022-07-04 19:07:54
- LastEditors: Neo,Huang
- LastEditTime: 2022-07-04 19:13:19
- --]]
- local lib_game_redis = require("lib_game_redis")
- local lib_game_mysql = require("lib_game_mysql")
- local root = class("base")
- function root:ctor(uid, mdlName, keyName)
- self.uid = uid
- self.mdlName = mdlName
- self.keyName = keyName
- end
- -- 模块sql属性
- function root:mysql_get_init_columns()
- return {}
- end
- -- 初始化模块表
- function root:mysql_get_table_info()
- return {
- mdlName = self.mdlName,
- keyName = self.keyName,
- columnNameOptions = self:mysql_get_init_columns()
- }
- end
- -- 字段类型 - json
- function root:is_json(column)
- return string.match(string.upper(column), "JSON")
- end
- -- 字段类型 - int
- function root:is_number(column)
- return string.match(string.upper(column), "INT")
- end
- -- 字段值
- function root:get_column_db_value(column)
- if is_empty(column) then
- return
- end
- local key = string.format("mdl:%s:%s", tostring(self.mdlName), tostring(self.uid))
- local val = lib_game_redis:hget(key, column)
- if self:is_json(column) then
- val = string.format("'%s'", cjson_encode(val))
- elseif self:is_number(column) then
- val = tonumber(val or 0)
- else
- val = string.format("'%s'", val)
- end
- return val
- end
- -- 备份模块数据
- function root:backup_to_db()
- local options = self:mysql_get_init_columns()
- if is_empty(options) then
- return false
- end
- local colums = {}
- local values = {}
- for k, v in ipairs(options) do
- table.insert(colums, k)
- table.include(values, self:get_column_db_value(k))
- end
- local tbName = string.format("mdl_%s", tostring(self.mdlName))
- local sql =
- string.format("replace into %s (%s) value (%s);", tbName, table.concat(colums, ","), table.concat(values, ","))
- lib_game_mysql:query(sql)
- end
- return root
|