--[[
  彩票奖励库测试接口
]]
local skynet = require "skynet"
local codecache = require "skynet.codecache"
require "skynet.manager"
local logger = require "logger"
local stringify = require "stringify"
local cjson = require "cjson"
local assetcenter
local watchdog
local traceback = debug.traceback
local md5 = require "md5"

local authz = {
  acc="yytx",
  pwd="lee@YY-Games.520"
}
  -- Generate request data
local content = {
  acc = authz.acc,
  pwd = authz.pwd,
  sign = false
}
content.sign = string.sub(md5.sumhexa(content.acc .. content.pwd),9,24)
local whitelist = {
  ["192.168.1.23"] = true,
  ["192.168.1.127"] = true,
  ["192.168.1.50"] = true,
  ["14.29.136.211"] = true,
  ["192.168.1.41"] = true,
  ["222.212.88.4"] = true,
}

--[[
example:
  参数说明:
    sid         奖励id
    times       奖励生成多少份
    begin       第几次生成奖励
    nameconf    具体使用那个彩票奖励库
  http://192.168.1.102:9002/produce?code=xxx&vjson=[
    sid = 701003,
    nameconf = "lottery_proto",
    begin = 1,
    times = 3,
    ]
]]
local function produce(args, ipaddr, header)
  logger.warn("处理来自主机 %s 的 produce 请求,:%s", ipaddr,stringify(args))

  -- 验证gm账号
  local code = string.sub(args.code, 1, 16)
  if code ~= content.sign then
    return cjson.encode({state = 403, msg = "账号或密码错误"})
  end
  logger.trace(" === %s", cjson.encode({
    sid = 701003,
    nameconf = "lottery_proto",
    begin = 1,
    times = 3,
  }))
  local para = cjson.decode(args.vjson)
  local produce_award = require "produce_award"
  local ok, info = xpcall(produce_award, traceback, tonumber(para.sid), tonumber(para.times), tonumber(para.begin), para.nameconf)
  if not ok then
    logger.trace(" 奖励库生成异常 %s:%s", stringify(para), info)
    return cjson.encode({state = 403, info = info})
  end

  logger.warn("hotfix (%s, %s)", args.user, ipaddr)
  return  cjson.encode({errno = 0, info = info})
end
return produce