174 lines
6.2 KiB
Lua
174 lines
6.2 KiB
Lua
MonthCardManager = {}
|
|
local this = MonthCardManager
|
|
|
|
--初始化月卡数据
|
|
local monthCardData = {}
|
|
function this.InitMonthCardData(data)
|
|
monthCardData = {}
|
|
--LogError("月卡信息初始化 "..#data)
|
|
for i = 1, #data do
|
|
--LogError("月卡信息初始化 "..data[i].id.." "..data[i].endingTime.." "..data[i].state)
|
|
local singleMonthCard = {}
|
|
singleMonthCard.id = data[i].id
|
|
singleMonthCard.endingTime = data[i].endingTime
|
|
singleMonthCard.state = data[i].state
|
|
singleMonthCard.totleAmt = data[i].totleAmt
|
|
-- LogError("月卡信息初始化 "..i.." 月卡累计充值 "..data[i].totleAmt)
|
|
table.insert(monthCardData,singleMonthCard)
|
|
end
|
|
CheckRedPointStatus(RedPointType.MonthCard)
|
|
end
|
|
--推送更新月卡数据
|
|
function this.UpdateMonthCardData(msg)
|
|
--LogError("月卡信息推送 "..#msg.monthinfos)
|
|
--当我数据没有 后端推过来的有数据 此时需要弹窗
|
|
this.showStr = ""
|
|
for i = 1, #msg.monthinfos do
|
|
if monthCardData[i].endingTime <= 0 then
|
|
this.showStr = Language[11384]
|
|
end
|
|
end
|
|
monthCardData = {}
|
|
local _CurActive = {}
|
|
for i = 1, #msg.monthinfos do
|
|
--LogError("月卡信息推送 "..msg.monthinfos[i].id.." "..msg.monthinfos[i].endingTime.." "..msg.monthinfos[i].state)
|
|
local singleMonthCard = {}
|
|
singleMonthCard.id = msg.monthinfos[i].id
|
|
singleMonthCard.endingTime = msg.monthinfos[i].endingTime
|
|
singleMonthCard.state = msg.monthinfos[i].state--0 未领取 1 已领取
|
|
singleMonthCard.totleAmt = msg.monthinfos[i].totleAmt
|
|
_CurActive[i] = true
|
|
table.insert(monthCardData,singleMonthCard)
|
|
end
|
|
-- 检测红点
|
|
CheckRedPointStatus(RedPointType.MonthCard)
|
|
|
|
-- 判断是否需要发送埋点数据
|
|
if this.showStr ~= "" then
|
|
if ActTimeCtrlManager.SingleFuncState(JumpType.Welfare) then
|
|
if _CurActive[MONTH_CARD_TYPE.MONTHCARD] then
|
|
--发送埋点数据
|
|
CustomEventManager.SendCustomEvents(FBSDKCustomEventType.FirstBuyMonthCard,0)
|
|
end
|
|
if _CurActive[MONTH_CARD_TYPE.LUXURYMONTHCARD] then
|
|
--发送埋点数据
|
|
CustomEventManager.SendCustomEvents(FBSDKCustomEventType.FirstBuyHeightMonthCard,0)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
-- 检测月卡激活提示是否需要拍脸
|
|
function this.CheckMonthCardPatFace()
|
|
if this.showStr and this.showStr ~= "" then
|
|
MsgPanel.ShowTwo(this.showStr, function()
|
|
JumpManager.GoJump(36004)
|
|
end,
|
|
function()
|
|
UIManager.ClosePanel()
|
|
end,Language[10586],Language[11385])
|
|
-- 拍过后不再提示
|
|
this.showStr = ""
|
|
return true
|
|
end
|
|
end
|
|
|
|
function this.RefreshMonthCardChargeMoney(msg)
|
|
-- LogError("月卡金额信息推送 "..msg.monthSaveAmt.." "..msg.smonthSaveAmt)
|
|
monthCardData[MONTH_CARD_TYPE.MONTHCARD].totleAmt = msg.monthSaveAmt--月卡累计总额
|
|
monthCardData[MONTH_CARD_TYPE.LUXURYMONTHCARD].totleAmt = msg.smonthSaveAmt--豪华月卡累计总额
|
|
monthCardData[MONTH_CARD_TYPE.GIFT].totleAmt = msg.sincereMonth--挚礼月卡累计总额
|
|
|
|
end
|
|
-- 月卡累计总额
|
|
function this.GetmonthSaveAmt(index)
|
|
if monthCardData[index] and monthCardData[index].totleAmt then
|
|
return monthCardData[index].totleAmt
|
|
end
|
|
return 0
|
|
end
|
|
-- 豪华月卡累计总额
|
|
function this.GetsmonthSaveAmt()
|
|
return smonthSaveAmt
|
|
end
|
|
--前端设置月卡领取状态数据
|
|
function this.SetMonthCardGetStateData(type,state)
|
|
if monthCardData[type] then
|
|
monthCardData[type].state = state--0 未领取 1 已领取
|
|
end
|
|
CheckRedPointStatus(RedPointType.MonthCard)
|
|
end
|
|
--后端设置月卡领取状态数据 datas已领取的月卡id 五点刷新
|
|
function this.BackSetMonthCardGetStateData(datas)
|
|
for i = 1, #monthCardData do
|
|
if monthCardData[i] then--0 未领取 1 已领取
|
|
if datas[i] then
|
|
monthCardData[i].state = 1
|
|
else
|
|
monthCardData[i].state = 0
|
|
end
|
|
end
|
|
end
|
|
--事件
|
|
CheckRedPointStatus(RedPointType.MonthCard)
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.MonthCard.OnMonthCardUpdate)
|
|
end
|
|
--获取月卡数据
|
|
function this.GetMonthCardData()
|
|
if monthCardData then
|
|
return monthCardData
|
|
else
|
|
return nil
|
|
end
|
|
end
|
|
function this.IsMonthCardActive()
|
|
local curAllMonthCardData = this.GetMonthCardData()
|
|
local curMonthCardOpenState = curAllMonthCardData[MONTH_CARD_TYPE.MONTHCARD] and curAllMonthCardData[MONTH_CARD_TYPE.MONTHCARD].endingTime ~= 0
|
|
local curLuxuryMonthCardOpenState = curAllMonthCardData[MONTH_CARD_TYPE.LUXURYMONTHCARD] and curAllMonthCardData[MONTH_CARD_TYPE.LUXURYMONTHCARD].endingTime ~= 0
|
|
local isMonthCardActive = curLuxuryMonthCardOpenState
|
|
return isMonthCardActive
|
|
end
|
|
|
|
--月卡到期
|
|
local addTimeNum = 30 * 24 * 60 * 60
|
|
function this.RefreshMonthCardEnd()
|
|
for i = 1, #monthCardData do
|
|
if monthCardData[i] and monthCardData[i].endingTime > 0 then--0 未领取 1 已领取
|
|
local dayLuxuryNum = math.floor((monthCardData[i].endingTime + addTimeNum - GetTimeStamp()) / (24 * 3600))
|
|
if dayLuxuryNum < 0 then
|
|
monthCardData[i].endingTime = 0
|
|
monthCardData[i].state = 0 --0 未领取 1 已领取
|
|
monthCardData[i].totleAmt = 0
|
|
end
|
|
end
|
|
end
|
|
CheckRedPointStatus(RedPointType.MonthCard)
|
|
end
|
|
--单种月卡红点检测
|
|
function this.RefreshMonthCardRedPoint(type)
|
|
if monthCardData[type] then
|
|
if monthCardData[type].endingTime ~= 0 and monthCardData[type].state == 0 then
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
--所有月卡红点检测
|
|
function this.AllRefreshMonthCardRedPoint()
|
|
for i = 1, #monthCardData do
|
|
if monthCardData[i].endingTime ~= 0 and monthCardData[i].state == 0 then
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
--所有月卡激活状态
|
|
function this.GetMonthCardIsOpen(type)
|
|
if monthCardData[type] then
|
|
if monthCardData[type].endingTime ~= 0 then
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|