local ServerGameData = require "app/server/server_game_data" local ServerDataManager = {} function ServerDataManager:init() end function ServerDataManager:saveData() end function ServerDataManager:randomReward(weightArr, callback) local maxWeight = 0 for i, v in ipairs(weightArr) do maxWeight = maxWeight + v end local randomWeight if callback then randomWeight = callback(1, maxWeight) else randomWeight = math.random(1, maxWeight) end local idx for i, v in ipairs(weightArr) do if randomWeight <= v then idx = i break else randomWeight = randomWeight - v end end return idx end function ServerDataManager:dataOperate(behavior, params, callback) local opFunc = ServerDataManager.OP_FUNC[behavior] if opFunc then opFunc(params, function(result) if callback then callback(result) end end) else Logger.logError("Undefined data operation function, please check :%s", behavior) end end function ServerDataManager:onSyncData(params, callback) -- 初始化本地数据 ServerGameData:initData() local data = ServerGameData:getData() if callback then callback(data) end end ServerDataManager.OP_FUNC = { [GConst.ServerDataConst.DATA_OP_BEHAVIOR.SYNC_DATA] = function (...) ServerDataManager:onSyncData(...) end, } return ServerDataManager