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.
77 lines
2.3 KiB
Lua
77 lines
2.3 KiB
Lua
local skynet = require "skynet"
|
|
local redishelper = require "redishelper"
|
|
local keysutils = require "keysutils"
|
|
local dateutils = require "dateutils"
|
|
local utils = require "utils"
|
|
local blackmarketlogic = require "blackmarketlogic"
|
|
local settings = require "settings"
|
|
local cjson = require "cjson"
|
|
|
|
local appname = settings.appname
|
|
local skynet_node_name = ...
|
|
require "skynet.manager"
|
|
local CMD = {}
|
|
|
|
|
|
local function getdayex()
|
|
local overtime = dateutils.onedayover(os.time())
|
|
return overtime - os.time()
|
|
end
|
|
|
|
local function save(uid, t)
|
|
local data = {}
|
|
for k, v in pairs(t) do
|
|
table.insert(data, v)
|
|
table.insert(data, k)
|
|
end
|
|
local k = keysutils.user_blackmarket_discount_key(appname, uid, dateutils.getday())
|
|
redishelper.exec("zadd", uid, k, table.unpack(data))
|
|
redishelper.exec("expire", uid, k, getdayex())
|
|
return "ok"
|
|
end
|
|
|
|
function CMD.save(uid, num, t)
|
|
local k = keysutils.user_blackmarket_refresh_num_key(appname, uid, dateutils.getday())
|
|
redishelper.exec("set", uid, k, num, "ex", getdayex())
|
|
save(uid, t)
|
|
return "ok"
|
|
end
|
|
|
|
function CMD.savediscount(uid, t)
|
|
save(uid, t)
|
|
return "ok"
|
|
end
|
|
|
|
|
|
function CMD.loaddiscount(uid)
|
|
local k1 = keysutils.user_blackmarket_refresh_num_key(appname, uid, dateutils.getday())
|
|
local num = redishelper.exec("get", uid, k1)
|
|
num = checkint(num)
|
|
-- if num <= 0 then
|
|
-- local rews = blackmarketlogic.randomdiscount()
|
|
-- CMD.savediscount(uid, rews)
|
|
-- end
|
|
local k2 = keysutils.user_blackmarket_discount_key(appname, uid, dateutils.getday())
|
|
local res = redishelper.exec("zrange", uid, k2, 0, -1, "WITHSCORES")
|
|
local discount = utils.redis_pack(res)
|
|
local k3 = keysutils.user_blackmarket_buy_key(appname, uid, dateutils.getday(), num)
|
|
local res = redishelper.exec("zrange", uid, k3, 0, -1, "WITHSCORES")
|
|
local buy = utils.redis_pack(res)
|
|
return num, discount, buy
|
|
end
|
|
|
|
function CMD.buy(uid, num, id)
|
|
local k = keysutils.user_blackmarket_buy_key(appname, uid, dateutils.getday(), num)
|
|
redishelper.exec("zadd", uid, k, 1, id)
|
|
redishelper.exec("expire", uid, k, getdayex())
|
|
return "ok"
|
|
end
|
|
|
|
skynet.start(function()
|
|
skynet.dispatch("lua", function(_, _, command, ...)
|
|
local f = assert(CMD[command])
|
|
skynet.retpack(f(...))
|
|
end)
|
|
skynet.register('.' .. SERVICE_NAME)
|
|
end)
|