You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.4 KiB
Lua

--成就系统
local skynet = require "skynet"
local redishelper = require "redishelper"
local keysutils = require "keysutils"
local dateutils = require "dateutils"
local utils = require "utils"
local settings = require "settings"
local skynet_node_name = ...
require "skynet.manager"
local CMD = {}
function CMD.incrcomplete(uid, kid, val)
local k = keysutils.user_achievement_complete_key(settings.appname, uid)
return redishelper.exec("zincrby", uid, k, val, kid)
end
function CMD.setcomplete(uid, kid, val)
local k = keysutils.user_achievement_complete_key(settings.appname, uid)
return redishelper.exec("zadd", uid, k, val, kid)
end
function CMD.get(uid)
local k = keysutils.user_achievement_complete_key(settings.appname, uid)
local res = redishelper.exec("zrevrange", uid, k, 0, -1, "WITHSCORES")
local d1 = utils.redis_pack(res)
local k = keysutils.user_achievement_key(settings.appname, uid)
local res = redishelper.exec("zrevrange", uid, k, 0, -1, "WITHSCORES")
local d2 = utils.redis_pack(res)
return d1, d2
end
function CMD.receive(uid, id)
local k = keysutils.user_achievement_key(settings.appname, uid)
return redishelper.exec("zadd", uid, k, os.time(), id)
end
skynet.start(function()
skynet.dispatch("lua", function(_, _, command, ...)
local f = assert(CMD[command])
skynet.retpack(f(...))
end)
skynet.register('.' .. SERVICE_NAME)
end)