Commit ae3753b1461df207bf43a503c317b13ee7078bdb
1 parent
7356e583
feat: 增加 role_by_uid http接口和查询所有服的角色信息的协议
Showing
4 changed files
with
56 additions
and
0 deletions
 
Show diff stats
src/ProtocolCode.lua
| @@ -66,6 +66,7 @@ actionCodes = { | @@ -66,6 +66,7 @@ actionCodes = { | ||
| 66 | Role_worldLineRewardRpc = 147, -- 世界线一键领取奖励 | 66 | Role_worldLineRewardRpc = 147, -- 世界线一键领取奖励 | 
| 67 | Role_itemConvertDevilTicketRpc = 148, -- 兑换魔鬼训练营门票 | 67 | Role_itemConvertDevilTicketRpc = 148, -- 兑换魔鬼训练营门票 | 
| 68 | Role_unRegisterRpc = 149, --注销账号 | 68 | Role_unRegisterRpc = 149, --注销账号 | 
| 69 | + Role_searchAllRoleRpc = 150, --查询所有服的角色信息 | ||
| 69 | 70 | ||
| 70 | Adv_startAdvRpc = 151, | 71 | Adv_startAdvRpc = 151, | 
| 71 | Adv_startHangRpc = 152, | 72 | Adv_startHangRpc = 152, | 
src/actions/HttpAction.lua
| 1 | +require "utils.MysqlUtil" | ||
| 1 | 2 | ||
| 2 | local _M = {} | 3 | local _M = {} | 
| 3 | 4 | ||
| @@ -264,4 +265,20 @@ function _M.hero_draw_pro(query) | @@ -264,4 +265,20 @@ function _M.hero_draw_pro(query) | ||
| 264 | return gmFuncs[query.cmd]() | 265 | return gmFuncs[query.cmd]() | 
| 265 | end | 266 | end | 
| 266 | 267 | ||
| 268 | +function _M.role_by_uid(query) | ||
| 269 | + local res = roleByUid(query.uid) | ||
| 270 | + local rsp = {} | ||
| 271 | + rsp.code = 0 | ||
| 272 | + if not res then | ||
| 273 | + rsp.code = -1 | ||
| 274 | + return json.encode(rsp) | ||
| 275 | + end | ||
| 276 | + | ||
| 277 | + rsp.id = res["id"] | ||
| 278 | + rsp.name = res["name"] | ||
| 279 | + rsp.level = res["level"] | ||
| 280 | + rsp.code = 0 | ||
| 281 | + return json.encode(rsp) | ||
| 282 | +end | ||
| 283 | + | ||
| 267 | return _M | 284 | return _M | 
| 268 | \ No newline at end of file | 285 | \ No newline at end of file | 
src/actions/RoleAction.lua
| @@ -520,6 +520,36 @@ function _M.unRegisterRpc(agent, data) | @@ -520,6 +520,36 @@ function _M.unRegisterRpc(agent, data) | ||
| 520 | return true | 520 | return true | 
| 521 | end | 521 | end | 
| 522 | 522 | ||
| 523 | +function _M.searchAllRoleRpc(agent, data) | ||
| 524 | + local role = agent.role | ||
| 525 | + local uid = role:getProperty("uid") | ||
| 526 | + if not uid then return 0 end | ||
| 527 | + | ||
| 528 | + local res = roleByUid(uid) | ||
| 529 | + if not res then return 1 end | ||
| 530 | + | ||
| 531 | + | ||
| 532 | + local serverId = skynet.getenv("servId") | ||
| 533 | + local codeurl = skynet.getenv("codeurl") | ||
| 534 | + local content = { | ||
| 535 | + serverid = serverId, | ||
| 536 | + uid = uid, | ||
| 537 | + } | ||
| 538 | + | ||
| 539 | + local status, body = httpc.get(codeurl, "/search_role?" .. httpGetFormatData(content), {}) | ||
| 540 | + if status ~= 200 then return 2 end | ||
| 541 | + | ||
| 542 | + local result = json.decode(body) | ||
| 543 | + local ret = tonum(result.code) | ||
| 544 | + if ret ~= 0 then return 3 end | ||
| 545 | + | ||
| 546 | + local rsp = result.data | ||
| 547 | + table.insert(rsp, {serverId=serverId, name=res.name, level=res.level} ) | ||
| 548 | + SendPacket(actionCodes.Role_unRegisterRpc, MsgPack.pack(rsp)) | ||
| 549 | + return true | ||
| 550 | +end | ||
| 551 | + | ||
| 552 | + | ||
| 523 | function _M.changeNameRpc(agent, data) | 553 | function _M.changeNameRpc(agent, data) | 
| 524 | local role = agent.role | 554 | local role = agent.role | 
| 525 | local roleId = role:getProperty("id") | 555 | local roleId = role:getProperty("id") | 
src/utils/MysqlUtil.lua
| @@ -74,4 +74,12 @@ function roleUnRegister(roleId) | @@ -74,4 +74,12 @@ function roleUnRegister(roleId) | ||
| 74 | return false | 74 | return false | 
| 75 | end | 75 | end | 
| 76 | return true | 76 | return true | 
| 77 | +end | ||
| 78 | + | ||
| 79 | +function roleByUid(uid) | ||
| 80 | + local res = mysqlproxy:query(string.format("SELECT id, name, level, FROM `Role` WHERE `del` = 0 and `uid` = %s", uid)) | ||
| 81 | + if res["errno"] or not next(res) then | ||
| 82 | + return false | ||
| 83 | + end | ||
| 84 | + return true, res[1] | ||
| 77 | end | 85 | end | 
| 78 | \ No newline at end of file | 86 | \ No newline at end of file |