gm.lua 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. local code = require "code"
  2. local timeUtil = require "utils.timeUtil"
  3. local util_user = require("utils.util_user")
  4. local util_mail = require("utils.util_mail")
  5. local gameConst = require("const.gameConst")
  6. local nodeMgr = require "nodeMgr"
  7. local baseAdapt = require("base.baseAdapt")
  8. local resAdapt = require("adapt.resAdapt")
  9. local moduleData = require("data.module")
  10. local payData = require("data.pay")
  11. local userData = require("data.user")
  12. local bagData = require("data.bag")
  13. local root = {}
  14. -- 获取玩家信息
  15. function root.gm_get_player_info(msg)
  16. local uid = tonumber(msg.uid)
  17. log.info("gm_get_player_info msg[%s]", tostring(msg))
  18. --.玩家id .玩家昵称 .国王等级 .竞技场等级 .玩家密码 -是否在线 .渠道号 .版本号 -账号状态 .注册时间 .最近登录时间 -状态
  19. --.战斗局数 .广告次数 。金币 。钻石 .充值金额 -充值次数 .当前城市 .UUID .UDID
  20. local _, items = root.getBagInfo({uid = uid})
  21. local userInfo = userData:user_get_info(uid)
  22. userInfo.status = ""
  23. userInfo.gold = bagData:get_item_count(uid, gameConst.ITEM_ID.GOLD) -- 金币
  24. userInfo.diamond = bagData:get_item_count(uid, gameConst.ITEM_ID.DIAMOND) -- 钻石
  25. userInfo.RechargeAmount = payData:user_get_total_pay_count(uid) -- 充值总额 integer
  26. userInfo.RechargeCount = 0 -- 充值次数 integer
  27. return code.OK, {user = userInfo, bag = {items = items}}
  28. end
  29. -- 背包信息
  30. function root.gm_get_player_bag_info(msg)
  31. local uid = tonumber(msg.uid)
  32. local itemList = {}
  33. local itemInfo = moduleData:hget_json(uid, "bag", "itemInfo")
  34. for k, v in ipairs(itemInfo) do
  35. if v.count > 0 then
  36. table.insert(itemList, {id = v.id, count = v.count, endTime = v.endTime})
  37. end
  38. end
  39. for i, v in pairs(itemList) do
  40. v.name = resAdapt:get_item_name(v.id)
  41. if v.sceneLv then
  42. v.name = string.format("%s-%s", v.name, v.sceneLv)
  43. v.sceneLv = nil
  44. elseif v.endTime then
  45. v.name = string.format("%s(%s)", v.name, timeUtil.toString(v.endTime))
  46. v.endTime = nil
  47. end
  48. end
  49. return code.OK, itemList
  50. end
  51. -- 获取道具配置
  52. function root.gm_get_conf_items(msg)
  53. local items = {}
  54. local conf = resAdapt:get_item_conf_list()
  55. for _, v in ipairs(conf) do
  56. table.insert(items, {id = v.id, ty = v.type, name = v.name, price = v.price})
  57. end
  58. log.info("gm_get_conf_items items[%s]", tostring(items))
  59. return code.OK, {items = items}
  60. end
  61. -- 获取商品配置
  62. function root.gm_get_conf_goods(msg)
  63. local list = {}
  64. local shConf = baseAdapt:getConfig("GoodsConfig")
  65. for k, v in ipairs(shConf) do
  66. table.insert(list, {id = v.id, name = v.name, rmb = v.rmb})
  67. end
  68. return code.OK, {goodsList = list}
  69. end
  70. -- 对某个玩家发送邮件
  71. function root.gm_send_mail(msg)
  72. local uid = tonumber(msg.uid)
  73. for i, v in pairs(msg.items) do
  74. if not resAdapt:get_item_conf(v.id) then
  75. return code.RES.ID_ERROR
  76. end
  77. end
  78. local ok = util_mail:add_mail(uid, 0, msg.title, msg.message, msg.items, msg.type, nil, nil, "GM后台")
  79. do
  80. -- 埋点
  81. local keyEvent = "message"
  82. for _, value in ipairs(msg.items or {}) do
  83. local text = string.format("%s,%s,%s", tostring(1), tostring(value.id), tostring(value.count))
  84. util_user:log_event(uid, keyEvent, text)
  85. end
  86. end
  87. if not ok then
  88. return code.UNKNOWN
  89. end
  90. return code.OK, {}
  91. end
  92. -- 玩家状态
  93. function root.gm_update_player_status(msg)
  94. log.info("update_player_status msg[%s]", tostring(msg))
  95. if msg == nil then
  96. return code.PARAMTER_ERROR
  97. end
  98. local uid = tonumber(msg.uid)
  99. local status = msg.status
  100. if uid == nil or status == nil then
  101. return code.PARAMTER_ERROR
  102. end
  103. if util_user:user_is_online_game(uid) then
  104. util_user:user_call_game_agent(uid, "user.updateStatus", msg)
  105. else
  106. moduleData:hset(uid, "user", "status", status)
  107. end
  108. return code.OK
  109. end
  110. ----------------------------------------
  111. -- roll房
  112. ----------------------------------------
  113. -- 新增
  114. function root.gm_add_roll(msg)
  115. local id = msg.id
  116. if is_empty(id) then
  117. return code.PARAMTER_ERROR
  118. end
  119. nodeMgr.send("global", ".rollSrv", "add_roll", id)
  120. return code.OK
  121. end
  122. -- 更新
  123. function root.gm_update_roll(msg)
  124. local id = msg.id
  125. if is_empty(id) then
  126. return code.PARAMTER_ERROR
  127. end
  128. nodeMgr.send("global", ".rollSrv", "update_roll", id)
  129. return code.OK
  130. end
  131. -- 删除
  132. function root.gm_del_roll(msg)
  133. local id = msg.id
  134. if is_empty(id) then
  135. return code.PARAMTER_ERROR
  136. end
  137. nodeMgr.send("global", ".rollSrv", "del_roll", id)
  138. return code.OK
  139. end
  140. return root