miduo_client/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargeManager.lua

209 lines
6.6 KiB
Lua

--[[
* @ClassName FirstRechargeManager
* @Description 首充管理
* @Date 2019/7/4 19:11
* @Author MagicianJoker, fengliudianshao@outlook.com
* @Copyright Copyright (c) 2019, MagicianJoker
--]]
FirstRechargeManager = {}
local this = FirstRechargeManager
local activityRewardConfig = ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)
local AccumRechargeValue
--充值
local rechargeTime
function this.Initialize()
end
function this.GetFirstRechargeRedPointStatus()
local redPoint = false
if ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FirstRecharge) then
redPoint = redPoint or this.GetRedPointStatus(1)
redPoint = redPoint or this.GetRedPointStatus(2)
redPoint = redPoint or this.GetRedPointStatus(3)
redPoint = redPoint or this.GetRedPointStatus(4)
end
return redPoint
end
function this.GetRedPointStatus(index)
local redPoint = false
--local money = FirstRechargeManager.GetFirstRechargeMoneyByIndex(index)
local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FirstRecharge)
for _, missionInfo in ipairs(activityInfo.mission) do
local rewardInfo = activityRewardConfig[missionInfo.missionId]
if rewardInfo and rewardInfo.Values[1][1] == index*10000 then
redPoint = missionInfo.state==1
if redPoint then
return true
end
end
end
return redPoint
end
function this.GetDayItemRedPoint(missionInfo, context)
return missionInfo.state==1
-- local AccumRecharge = missionInfo.progress
-- if AccumRecharge == 0 then
-- return false
-- else
-- --if this.GetAccumRechargeValue() >= context.Values[1][1] then
-- if AccumRecharge >= context.Values[1][1] then
-- if this.isFirstRecharge == 0 then
-- this.SetRechargeTime(math.floor(GetTimeStamp()))
-- this.isFirstRecharge = 1
-- end
-- local day = GetTimePass(this.GetRechargeTime())
-- --local day = GetTimePass(math.floor(GetTimeStamp()))
-- if context.Values[1][2] <= day then
-- local state = missionInfo.state
-- return state ~= 1
-- else
-- return false
-- end
-- else
-- return false
-- end
-- end
-- return false
end
function this.GetReceiveAll()
local condition = true
local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FirstRecharge)
if activityInfo then
for i = 1, #activityInfo.mission do
local rechargeInfo = activityInfo.mission[i]
condition = condition and rechargeInfo.state == 1
end
end
return condition
end
function this.GetFirstRechargeExist()
if this.GetReceiveAll() or ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FirstRecharge) == nil then
return false
end
return true
end
-----------首充,累充相关----------------------
this.isFirstRecharge = 0
--刷新累计充值金额
function this.RefreshAccumRechargeValue(goodsId)
-- 价格是0元的礼包不再算做充值
local rechargeConfig = ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig, goodsId)
if rechargeConfig.Price == 0 then return end
if this.isFirstRecharge == 0 then
this.SetRechargeTime(math.floor(GetTimeStamp()))
this.isFirstRecharge = 1
end
--this.SetAccumRechargeValue(rechargeConfig.Price, true)
if(LuckyCatManager.isOpenLuckyCat) then
--LuckyCatManager.SetAccumRechargeValue(rechargeConfig.Price)
LuckyCatManager.SetAccumRechargeValue()
end
CheckRedPointStatus(RedPointType.Expert_AccumulativeRecharge)
CheckRedPointStatus(RedPointType.DynamicActRecharge)
end
function this.SetAccumRechargeValue(value, flag)
-- Log("充值金额:"..value)
if flag then
AccumRechargeValue = AccumRechargeValue + value
CheckRedPointStatus(RedPointType.FirstRecharge)
else
AccumRechargeValue = value
end
end
function this.GetAccumRechargeValue()
return AccumRechargeValue
end
function this.SetRechargeTime(value)
rechargeTime = value
end
function this.GetRechargeTime()
return rechargeTime
end
--设置红点存储本地
function this.PlayerPrefsSetStrItemId(val)
PlayerPrefs.SetInt(PlayerManager.uid.."FirstRechatgePace", val)
end
--获得红点信息
function this.PlayerPrefsGetStrItemId()
return PlayerPrefs.GetInt(PlayerManager.uid.."FirstRechatgePace", 0)--1 已经查看过不需要显示新红点 0 显示红点
end
function this.IsShowFirstChatge()
if FirstRechargeManager.isFirstRecharge == 1 and FirstRechargeManager.PlayerPrefsGetStrItemId() == 0 and ActTimeCtrlManager.IsQualifiled(38) and FirstRechargeManager.GetFirstRechargeExist() then
return true
else
return false
end
end
--
function this.GetAnimFlag(key)
local lt = PlayerPrefs.GetInt(PlayerManager.uid..key)
return Util_Check_insameday(lt, GetTimeStamp())
end
function this.SetAnimFlag(key)
PlayerPrefs.SetInt(PlayerManager.uid..key, GetTimeStamp())
end
-- 获取充值配置数据
function this.GetFirstRechargeConfig()
if not this.IndexToMoney then
-- 获取首充配置数据
local firstRechargeConfig = ConfigManager.GetConfigData(ConfigName.SpecialConfig, 129)
if firstRechargeConfig then
local ml = string.split(firstRechargeConfig.Value, "|")
if not ml or not ml[MoneyUtil.MT] then
LogError("未找到对应币种的首充配置数据: "..tostring(MoneyUtil.MT))
return
end
local itm = string.split(ml[MoneyUtil.MT], "#")
if itm and #itm > 0 then
this.IndexToMoney = {}
for _, v in ipairs(itm) do
table.insert(this.IndexToMoney, tonumber(v))
end
end
else
LogError("未找到首充配置数据")
return
end
end
return this.IndexToMoney
end
-- 通过首充裆位获取该裆位所需的充值金额
function this.GetFirstRechargeMoneyByIndex(index)
local config = this.GetFirstRechargeConfig()
if not config then
LogError("未找到首充配置数据")
return
end
return config[index]
end
-- 根据裆位金额获取裆位
function this.GetFirstRechargeIndexByMoney(money)
local config = this.GetFirstRechargeConfig()
if not config then
LogError("未找到首充配置数据")
return
end
for i, m in ipairs(config) do
if m == money then
return i
end
end
end
return this