local code = require "code" local machine = require "machine" local noticeUtil = require "utils.noticeUtil" local timeUtil = require "utils.timeUtil" local nodeMgr = require "nodeMgr" local loginPlatformModule = require "modules.loginPlatformModule" local chatUtil = require "utils.chatUtil" local util_user = require("utils.util_user") local util_mail = require("utils.util_mail") local lib_game_mysql = require("lib_game_mysql") local gameConst = require("const.gameConst") local baseAdapt = require("base.baseAdapt") local resAdapt = require "adapt.resAdapt" local shopAdapt = require "adapt.shopAdapt" local chatAdapt = require "adapt.chatAdapt" local moduleData = require("data.module") local sessionData = require("data.session") local payData = require("data.pay") local userData = require("data.user") local arenaData = require("data.arena") local battleData = require("data.battle") local resData = require("data.res") local playerData = require("data.player") local root = {} -- 获取玩家信息 function root.gm_get_player_info(msg) local uid = tonumber(msg.uid) log.info("gm_get_player_info msg[%s]", tostring(msg)) --.玩家id .玩家昵称 .国王等级 .竞技场等级 .玩家密码 -是否在线 .渠道号 .版本号 -账号状态 .注册时间 .最近登录时间 -状态 --.战斗局数 .广告次数 。金币 。钻石 .充值金额 -充值次数 .当前城市 .UUID .UDID local _, items = root.getBagInfo({uid = uid}) local userInfo = userData:user_get_info(uid) userInfo.lv = playerData:get_level(uid) userInfo.status = "" userInfo.gold = resData:get_item_count(uid, gameConst.ITEM_ID.GOLD) -- 金币 userInfo.diamond = resData:get_item_count(uid, gameConst.ITEM_ID.DIAMOND) -- 钻石 userInfo.RechargeAmount = payData:user_get_total_pay_count(uid) -- 充值总额 integer userInfo.RechargeCount = 0 -- 充值次数 integer return code.OK, {user = userInfo, bag = {items = items}} end -- 背包信息 function root.gm_get_player_bag_info(msg) local uid = tonumber(msg.uid) local itemList = {} local itemInfo = moduleData:hget_json(uid, "bag", "itemInfo") for k, v in ipairs(itemInfo) do if v.count > 0 then table.insert(itemList, {id = v.id, count = v.count, endTime = v.endTime}) end end for i, v in pairs(itemList) do v.name = resAdapt:get_item_name(v.id) if v.sceneLv then v.name = string.format("%s-%s", v.name, v.sceneLv) v.sceneLv = nil elseif v.endTime then v.name = string.format("%s(%s)", v.name, timeUtil.toString(v.endTime)) v.endTime = nil end end return code.OK, itemList end -- 获取道具配置 function root.gm_get_conf_items(msg) local items = {} local conf = resAdapt:get_item_conf_list() for _, v in ipairs(conf) do table.insert(items, {id = v.id, name = v.name, price = v.price}) end return code.OK, {list = items} end -- 获取商品配置 function root.gm_get_conf_goods(msg) local list = {} local shConf = baseAdapt:getConfig("GoodsConfig") for k, v in ipairs(shConf) do table.insert(list, {id = v.id, name = v.name, rmb = v.rmb}) end return code.OK, {goods = list} end -- 对某个玩家发送邮件 function root.send_mail(msg) local uid = tonumber(msg.uid) for i, v in pairs(msg.items) do if not resAdapt:get_item_conf(v.id) then return code.RES.ID_ERROR end end local ok = util_mail:add_mail(uid, 0, msg.title, msg.message, msg.items, msg.type, nil, nil, "GM后台") do -- 埋点 local keyEvent = "message" for _, value in ipairs(msg.items or {}) do local text = string.format("%s,%s,%s", tostring(1), tostring(value.id), tostring(value.count)) util_user:log_event(uid, keyEvent, text) end end if not ok then return code.UNKNOWN end return code.OK, {} end -- 玩家状态 function root.update_player_status(msg) log.info("update_player_status msg[%s]", tostring(msg)) if msg == nil then return code.PARAMTER_ERROR end local uid = tonumber(msg.uid) local status = msg.status if uid == nil or status == nil then return code.PARAMTER_ERROR end if util_user:user_is_online_game(uid) then util_user:user_call_game_agent(uid, "user.updateStatus", msg) else moduleData:hset(uid, "user", "status", status) end return code.OK end return root