--累计充值

local Msg = require("core.Msg")
local SceneHandler = require("scene.Handler")
local CommonDB = require("common.CommonDB")
local BagLogic = require("bag.BagLogic")
local Grid = require("bag.Grid")
local YunYingLogic = require("yunying.YunYingLogic")
local PanelDefine = require("broadcast.PanelDefine")
local LeijiChongzhiExcel = require("excel.leijiChongzhi")

initFlag = false
local function getConfig()
	local now = os.time()
	if not initFlag then
		for k,v in pairs(LeijiChongzhiExcel.define) do
			v.startDate.hour = 0
			v.startDate.min = 0
			v.startDate.sec = 0
			v.startTime = os.time(v.startDate)
			v.endDate.hour = 0
			v.endDate.min = 0
			v.endDate.sec = 0
			v.endTime = os.time(v.endDate) + 86400
		end
		initFlag = true
	end

	for k,v in pairs(LeijiChongzhiExcel.define) do
		if now >= v.startTime and now <= v.endTime then
			return LeijiChongzhiExcel[v.confID],v.startTime,v.endTime
		end
	end
end

local function checkDB(human)
	local leichongExcel,startTime,endTime = getConfig()
	if not leichongExcel then
		return
	end
	human.db.leijiChongzhi = human.db.leijiChongzhi or {startTime = 0,endTime = 0,get = {},cnt = 0}
	local leichongDB = human.db.leijiChongzhi
	if leichongDB.startTime ~= startTime or leichongDB.endTime ~= endTime then
		leichongDB.startTime = startTime
		leichongDB.endTime = endTime
		leichongDB.get = {}
		leichongDB.cnt = 0
	end
	return leichongExcel,leichongDB
end

STATE0 = 0	--不可领取
STATE1 = 1	--未领取
STATE2 = 2	--已经领取

local function getState(leichongDB,id,need)
	if leichongDB.cnt < need then
		return STATE0
	end
	if leichongDB.get[id] then
		return STATE2
	else
		return STATE1
	end
end

function query(human)
	local leichongExcel,leichongDB = checkDB(human)
	if not leichongExcel then
		assert()
	end
	local msgRet = Msg.gc.GC_LEIJICHONGZHI_QUERY
	local len = 0
	local len1
	for k,v in ipairs(leichongExcel) do
		len = len + 1
		local net = msgRet.list[len]
		net.id = k
		net.maxCnt = v.maxCnt
		len1 = 0
		for k1,v1 in ipairs(v.items) do
			len1 = len1 + 1
			Grid.makeItem(net.reward[len1], v1[1], v1[2])
		end
		net.reward[0] = len1
		net.state = getState(leichongDB,k,v.cnt)
	end
	msgRet.list[0] = len
end

function get(human,id)
	local leichongExcel,leichongDB = checkDB(human)
	if not leichongExcel then
		assert()
	end
	local conf = leichongExcel[id]
	if getState(leichongDB,id,conf.cnt) ~= STATE1 then
		return
	end

	leichongDB.get[id] = 1

	--发放奖励 
	BagLogic.sendItemGetList(human, conf.items, "leijiChongzhi")

	local msgRet = Msg.gc.GC_LEIJICHONGZHI_GET
	msgRet.id = id
	Msg.send(msgRet,human.fd)
end

function isOpen(human)
	if true then
		return
	end

	if not SceneHandler.canCharge(human) then
		return
	end

	if not CommonDB.getServerOpenDay() then
		return 
	end
	local leichongExcel = getConfig()
	if not leichongExcel then
		return
	end
	return true
end


function isRed(human)
	local leichongExcel,leichongDB = checkDB(human)
	if not leichongExcel then return end
	for k,v in ipairs(leichongExcel) do
		if getState(leichongDB,k,v.cnt) == STATE1 then
			return true
		end
	end
end

function onAddMoney(human,money)
	if isOpen(human) ~= true then
		return
	end

	local leichongExcel,leichongDB = checkDB(human)
	if not leichongExcel then
		return
	end	
	leichongDB.cnt = leichongDB.cnt + money
	for k, v in pairs(funcID) do
        YunYingLogic.updateIcon(YYInfo[k], human)
	    YunYingLogic.sendGroupUpdate(YYInfo[k], human, PanelDefine.PANEL_ID_3303)
        break
    end
end