209 lines
6.6 KiB
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 |