-- 每日累充
local Util = require("common.Util")
local CommonDB = require("common.CommonDB")
local Log = require("common.Log")
local PresentExcel = require("excel.present")
local MailExcel = require("excel.mail")
local MailManager = require("mail.MailManager")
local Msg = require("core.Msg")
local ObjHuman = require("core.ObjHuman")
local BagLogic = require("bag.BagLogic")
local Grid = require("bag.Grid")
local SceneHandler = require("scene.Handler")

local function getConfig()
    local subDay = CommonDB.getServerOpenDay()
	if subDay == nil then
		return 
	end	
	if subDay <= 7 then
	    -- 开服首周
	    return PresentExcel.dailyLeichong[1]
	else
		-- 开服第二周和以后
		return PresentExcel.dailyLeichong[2]
	end
end

function isOpen(human)
	if true then
		return
	end

	if not SceneHandler.canCharge(human) then
		return
	end

	local config = getConfig()
	if config == nil then return end
	
	return true
end

function query(human)
	local config = getConfig()
	if config == nil then return end

    local now = os.time()	
	local msgRet = Msg.gc.GC_DAILY_LEICHONG_QUERY
	msgRet.sec = Util.getDayStartTime(now) + 24 * 3600 - now
	
	-- 今日累充金额
	ObjHuman.updateDaily(human)
	local nowDailyCharge = human.db.topupAcountDaily or 0
	
	for i = 1, #config.pay do
		msgRet.weekPay[i].id = i
		msgRet.weekPay[i].cur = nowDailyCharge
		msgRet.weekPay[i].max = config.pay[i]
		msgRet.weekPay[i].desc = Util.format(config.desc, config.pay[i])
		msgRet.weekPay[i].reward[0] = #(config.reward[i])
		for j = 1, msgRet.weekPay[i].reward[0] do
			local itemID = config.reward[i][j][1]
			local itemCnt = config.reward[i][j][2]
			Grid.makeItem(msgRet.weekPay[i].reward[j], itemID, itemCnt)
		end
	end
	msgRet.weekPay[0] = #config.pay
	Msg.send(msgRet, human.fd)
end


function charge(human, price)
	if isOpen(human) ~= true then
		return
	end

    active(human, price)
end

function active(human, price)
	local config = getConfig()
	if config == nil then return end
	
	local nowDailyCharge = human.db.topupAcountDaily
	local lastDailyCharge = nowDailyCharge - price

	local dailyLeiChong = human.db.dailyLeiChong
	for i = 1, #config.pay do
		if not dailyLeiChong or not dailyLeiChong[i] then
			local needPay = config.pay[i]
			if needPay <= nowDailyCharge and needPay > lastDailyCharge then
				human.db.dailyLeiChong = human.db.dailyLeiChong or {}
				human.db.dailyLeiChong[i] = i
				
				-- 发放奖励
				local items = { }
				for z, v in ipairs(config.reward[i])  do
				   items[z] = { v[1],  v[2] }
				end
					
				--[[local title = MailExcel.mail[62].title
				local content = Util.format(MailExcel.mail[62].content, config.pay[i]) 
				local senderName = MailExcel.mail[62].senderName
				MailManager.add(MailManager.SYSTEM, human.db._id, title, content, items, senderName)]]
			end
		end
	end	
end


