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 |