|
SakuraGiftModel = SakuraGiftModel or BaseClass(BaseVo, true)
|
|
local SakuraGiftModel = SakuraGiftModel
|
|
|
|
SakuraGiftModel.REQUEST_CCMD_EVENT = "SakuraGiftModel.REQUEST_CCMD_EVENT"
|
|
SakuraGiftModel.REFRESH_ACT_INFO = "SakuraGiftModel.REFRESH_ACT_INFO"--基础信息更新
|
|
SakuraGiftModel.REFRESH_RECORD_INFO = "SakuraGiftModel.REFRESH_RECORD_INFO"--记录信息
|
|
|
|
SakuraGiftModel.REFRESH_SHOP_INFO = "SakuraGiftModel.REFRESH_SHOP_INFO" -- 刷新商店信息
|
|
SakuraGiftModel.OPEN_BASE_VIEW = "SakuraGiftModel.OPEN_BASE_VIEW"--主界面
|
|
-- SakuraGiftModel.OPEN_EXCHANGE_VIEW = "SakuraGiftModel.OPEN_EXCHANGE_VIEW"--兑换商城界面
|
|
SakuraGiftModel.OPEN_SHOP_VIEW = "SakuraGiftModel.OPEN_SHOP_VIEW"--兑换商城界面
|
|
SakuraGiftModel.OPEN_EXCHANGE_REQ_VIEW = "SakuraGiftModel.OPEN_EXCHANGE_REQ_VIEW"--兑换数目界面
|
|
SakuraGiftModel.OPEN_MESSAGE_VIEW = "SakuraGiftModel.OPEN_MESSAGE_VIEW" -- 打开滚屏界面
|
|
SakuraGiftModel.OPEN_REWARD_VIEW = "SakuraGiftModel.OPEN_REWARD_VIEW" -- 打开奖励预览
|
|
SakuraGiftModel.UPDATE_CHUANWEN = "SakuraGiftModel.UPDATE_CHUANWEN" -- 更新记录
|
|
|
|
SakuraGiftModelRedType = {
|
|
Login = 1, -- 每天首次登陆
|
|
Exchange = 2, -- 最后5小时可兑换红点
|
|
CanGo = 3, -- 抽奖红点
|
|
LoginExchange = 4, -- 首次登陆兑换红点
|
|
}
|
|
|
|
local NeedCheckExchangeRedTime = 18000
|
|
|
|
function SakuraGiftModel:__init()
|
|
SakuraGiftModel.Instance = self
|
|
self:Reset()
|
|
end
|
|
|
|
function SakuraGiftModel:Reset()
|
|
self.act_info = {}
|
|
self.shop_info = {}
|
|
self.base_type = CustomActivityModel.CustomActBaseType.SAKURA_GIFT
|
|
self.exchange_red = {}
|
|
self.login_exchange_red = {}
|
|
self.login_red = {}
|
|
self.can_go_red = {}
|
|
self.sub_type_list = {}
|
|
self.time_id_list = {}
|
|
end
|
|
|
|
function SakuraGiftModel:getInstance()
|
|
if SakuraGiftModel.Instance == nil then
|
|
SakuraGiftModel.Instance = SakuraGiftModel.New()
|
|
end
|
|
return SakuraGiftModel.Instance
|
|
end
|
|
|
|
function SakuraGiftModel:GetKeyValueConf( suit,key )
|
|
if not self.Sakuragiftkey_Cfg then
|
|
self:InitSakuragiftkeyCfg( )
|
|
end
|
|
return (self.Sakuragiftkey_Cfg[suit] and self.Sakuragiftkey_Cfg[suit][key])
|
|
and self.Sakuragiftkey_Cfg[suit][key].value or nil
|
|
end
|
|
|
|
function SakuraGiftModel:InitSakuragiftkeyCfg( )
|
|
self.Sakuragiftkey_Cfg = {}
|
|
for k,v in pairs(Config.Sakuragiftkey) do
|
|
self.Sakuragiftkey_Cfg[v.suit] = self.Sakuragiftkey_Cfg[v.suit] or {}
|
|
self.Sakuragiftkey_Cfg[v.suit][Trim(v.key)] = v
|
|
end
|
|
end
|
|
|
|
--获取套装id
|
|
function SakuraGiftModel:GetSuitIdBySubType( sub_type )
|
|
local suit_id = 0
|
|
local act_list = CustomActivityModel:getInstance():getActList(self.base_type, sub_type)
|
|
if act_list and act_list.condition_list then
|
|
for k,v in ipairs(act_list.condition_list) do
|
|
if v[1] == "suit" then
|
|
suit_id = v[2]
|
|
break
|
|
end
|
|
end
|
|
end
|
|
if suit_id == 0 then
|
|
--找不到条件的话就取最小值
|
|
suit_id = 99999
|
|
for k,v in pairs(Config.Sakuragiftkey) do
|
|
suit_id = suit_id > v.suit and v.suit or suit_id
|
|
end
|
|
end
|
|
return tonumber(suit_id)
|
|
end
|
|
|
|
function SakuraGiftModel:GetShowModelData( sub_type )
|
|
local act_list = CustomActivityModel:getInstance():getActList(self.base_type, sub_type)
|
|
if act_list and act_list.condition_list then
|
|
for k,v in ipairs(act_list.condition_list) do
|
|
if v[1] == "show" then
|
|
return v
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function SakuraGiftModel:GetActInfo( sub_type )
|
|
return self.act_info[sub_type]
|
|
end
|
|
|
|
function SakuraGiftModel:SetActInfo( value )
|
|
self.act_info[value.sub_type] = value
|
|
if value.score then -- 更新积分
|
|
self.shop_info[value.sub_type].score = value.score
|
|
end
|
|
end
|
|
|
|
function SakuraGiftModel:GetShopInfo( sub_type )
|
|
return self.shop_info[sub_type]
|
|
end
|
|
|
|
function SakuraGiftModel:SetShopInfo( value )
|
|
self.shop_info[value.sub_type] = value
|
|
if value.goods_list then
|
|
local sort_func = function ( a, b )
|
|
local conf_a = Config.Sakuragiftpointreward[a.reward_id]
|
|
local conf_b = Config.Sakuragiftpointreward[b.reward_id]
|
|
|
|
if conf_a and conf_b and conf_a.limit and conf_a.limit then
|
|
local release_num_a = conf_a.limit - a.times
|
|
local release_num_b = conf_b.limit - b.times
|
|
if release_num_a == 0 and release_num_b ~= 0 then
|
|
return false
|
|
elseif release_num_b == 0 and release_num_a ~= 0 then
|
|
return true
|
|
else
|
|
return a.reward_id < b.reward_id
|
|
end
|
|
end
|
|
end
|
|
table.sort(value.goods_list, sort_func)
|
|
end
|
|
end
|
|
|
|
function SakuraGiftModel:RefreshShopOneInfo( data )
|
|
local is_find = false
|
|
if self.shop_info[data.sub_type] then
|
|
self.shop_info[data.sub_type].score = data.score
|
|
for k,v in pairs(self.shop_info[data.sub_type].goods_list) do
|
|
if v.reward_id == data.reward_id then
|
|
local conf = Config.Sakuragiftpointreward[v.reward_id]
|
|
if conf.limit - data.times > 0 then -- 还有兑换次数就才直接刷数目
|
|
v.times = data.times
|
|
is_find = true
|
|
end
|
|
break
|
|
end
|
|
end
|
|
end
|
|
return is_find
|
|
end
|
|
|
|
--检测活动图标是否需要开启
|
|
function SakuraGiftModel:CheckIconBoolOpen(sub_type)
|
|
local base_type = self.base_type
|
|
local sub_type = sub_type
|
|
local level = RoleManager.Instance.mainRoleInfo.level
|
|
local act_list = CustomActivityModel:getInstance():getActList(base_type, sub_type)
|
|
local icon_sub_type = base_type*1000 + sub_type
|
|
if sub_type >= 10001 then
|
|
icon_sub_type = base_type*100000 + sub_type
|
|
end
|
|
|
|
if act_list and act_list.etime then
|
|
local end_time = 0
|
|
end_time = act_list.etime - TimeUtil:getServerTime()
|
|
local open_lv = 0
|
|
for k,v in pairs(act_list.condition_list) do
|
|
if v[1] == "role_lv" then
|
|
open_lv = tonumber(v[2])
|
|
end
|
|
end
|
|
is_open = end_time > 0 and level >= open_lv
|
|
if GetModuleIsOpen(331,base_type) then
|
|
if end_time > 0 and is_open then
|
|
self:SetDelayTimeList(sub_type) -- 活动结束前5小时红点
|
|
ActivityIconManager:getInstance():addIcon(icon_sub_type, end_time)
|
|
-- 检查一下活动期间首次登陆红点
|
|
-- local list = self:GetFirstLoginCookie( )
|
|
-- if not list[sub_type] or list[sub_type] ~= act_list.etime then -- 没缓存或缓存的不是这次活动
|
|
-- self:SetFirstLoginRed( true ) -- 首次登陆
|
|
-- end
|
|
table.insert(self.sub_type_list, sub_type)
|
|
else
|
|
ActivityIconManager:getInstance():deleteIcon(icon_sub_type)
|
|
end
|
|
end
|
|
else
|
|
ActivityIconManager:getInstance():deleteIcon(icon_sub_type)
|
|
end
|
|
end
|
|
|
|
--获取当前免费次数
|
|
function SakuraGiftModel:GetFreeTime( sub_type )
|
|
local free_num = 0
|
|
local act_info = self:GetActInfo( sub_type )
|
|
if act_info then
|
|
local use_time = act_info.use_free_times
|
|
local max_free = self:GetKeyValueConf( self:GetSuitIdBySubType(sub_type), "free_time" )
|
|
free_num = max_free - use_time
|
|
free_num = free_num > 0 and free_num or 0
|
|
end
|
|
return free_num
|
|
end
|
|
|
|
-- 获取展示在主界面的奖励数据
|
|
-- 奖励物品展示去奖池奖励,极品奖励取2个,珍稀奖励取4个,普通奖励取4个
|
|
-- 同奖池内根据奖励ID取数字小的,如数量不足,则极品奖励取珍稀奖励补充,珍稀奖励取普通奖励补充
|
|
-- tag--标签 2-极品 1-珍稀 0-普通
|
|
function SakuraGiftModel:GetMainShowRewardList( sub_type )
|
|
local show_list = {}
|
|
local temp_list = {}
|
|
if not sub_type then return show_list end
|
|
if self.main_show_list and self.main_show_list[sub_type] then -- 拿过了就拿缓存
|
|
return self.main_show_list[sub_type]
|
|
end
|
|
-- 先数据处理
|
|
for k,v in pairs(Config.Sakuragiftreward) do
|
|
if v.act_id == sub_type then
|
|
temp_list[v.tag] = temp_list[v.tag] or {}
|
|
table.insert( temp_list[v.tag], v)
|
|
end
|
|
end
|
|
-- 同奖池内根据奖励ID取数字小的
|
|
local function sort_call( a,b )
|
|
return a.id < b.id
|
|
end
|
|
for k,v in pairs(temp_list) do
|
|
table.sort( v, sort_call )
|
|
end
|
|
|
|
-- 开始拿展示的数据
|
|
for i=1, 10 do
|
|
if i >= 1 and i <= 2 then -- 两个极品
|
|
start_tag = 2
|
|
elseif i >= 3 and i <= 6 then -- 四个珍稀
|
|
start_tag = 1
|
|
else
|
|
start_tag = 0
|
|
end
|
|
|
|
for tag=start_tag, 0, -1 do
|
|
if temp_list[tag] then
|
|
for ii, v in ipairs(temp_list[tag]) do
|
|
show_list[i] = table.remove(temp_list[tag], ii)
|
|
break
|
|
end
|
|
end
|
|
if show_list[i] then
|
|
break
|
|
end
|
|
end
|
|
-- 遍历完都没有奖励 奖励数量都不够10个 撤退
|
|
if not show_list[i] then
|
|
break
|
|
end
|
|
end
|
|
self.main_show_list = self.main_show_list or {}
|
|
self.main_show_list[sub_type] = show_list
|
|
return show_list
|
|
end
|
|
|
|
-- 获取奖励展示里面
|
|
-- TIPS: main_show_list2 是奖励详情里展示的 main_show_list 是主界面展示的
|
|
function SakuraGiftModel:GetAwardListBySubtype( sub_type )
|
|
local show_list = {}
|
|
local temp_list = {}
|
|
if not sub_type then return show_list end
|
|
if self.main_show_list2 and self.main_show_list2[sub_type] then -- 拿过了就拿缓存
|
|
-- for k,v in ipairs(self.main_show_list2[sub_type]) do
|
|
-- table.insert(show_list, stringtotable(v.awards)[1])
|
|
-- end
|
|
-- return show_list
|
|
for k,v in pairs(self.main_show_list2[sub_type]) do
|
|
for ii,vv in ipairs(v) do
|
|
show_list[k] = show_list[k] or {}
|
|
table.insert(show_list[k], stringtotable(vv.awards)[1])
|
|
end
|
|
end
|
|
return show_list
|
|
end
|
|
for k,v in pairs(Config.Sakuragiftreward) do
|
|
if v.act_id == sub_type then
|
|
-- table.insert(temp_list, v)
|
|
temp_list[v.tag] = temp_list[v.tag] or {}
|
|
table.insert(temp_list[v.tag], v)
|
|
end
|
|
end
|
|
|
|
-- 同奖池内根据奖励ID取数字小的
|
|
local function sort_call( a,b )
|
|
return a.id < b.id
|
|
end
|
|
for k,v in pairs(temp_list) do
|
|
table.sort( v, sort_call )
|
|
end
|
|
|
|
-- local sort_func = function ( a, b )
|
|
-- if a.tag == b.tag then
|
|
-- return a.tag > b.tag
|
|
-- else
|
|
-- return a.id < b.id
|
|
-- end
|
|
-- end
|
|
-- table.sort(temp_list, sort_func)
|
|
self.main_show_list2 = self.main_show_list2 or {}
|
|
self.main_show_list2[sub_type] = temp_list
|
|
|
|
for k,v in pairs(self.main_show_list2[sub_type]) do
|
|
for ii,vv in ipairs(v) do
|
|
show_list[k] = show_list[k] or {}
|
|
table.insert(show_list[k], stringtotable(vv.awards)[1])
|
|
end
|
|
end
|
|
|
|
return show_list
|
|
end
|
|
|
|
-- tag 1珍稀 2极品
|
|
function SakuraGiftModel:GetTagByItemId(item_id )
|
|
if not self.tag_item_id_cache then
|
|
self.tag_item_id_cache = {}
|
|
for k,v in pairs(Config.Sakuragiftreward) do
|
|
if v.tag ~= 0 then
|
|
self.tag_item_id_cache[v.tag] = self.tag_item_id_cache[v.tag] or {}
|
|
local awards = stringtotable(v.awards)
|
|
self.tag_item_id_cache[v.tag][tonumber(awards[1][2])] = true
|
|
end
|
|
end
|
|
end
|
|
local item_id = tonumber(item_id)
|
|
if self.tag_item_id_cache[1][item_id] then
|
|
return 27
|
|
elseif self.tag_item_id_cache[2][item_id] then
|
|
return 28
|
|
end
|
|
end
|
|
|
|
-- 展示获得界面 33401
|
|
function SakuraGiftModel:ShowGetRewardView( scmd_reward_list )
|
|
local temp_list = {}
|
|
for i,v in ipairs(scmd_reward_list) do
|
|
local state = self:GetTagByItemId(v.reward_id)
|
|
temp_list[#temp_list + 1] = {100, v.reward_id, v.num, state}
|
|
end
|
|
if #temp_list > 0 then
|
|
GiftModel:getInstance():Fire(GiftModel.OPEN_SHOW_ACT_GOODS_VIEW, temp_list)
|
|
end
|
|
|
|
end
|
|
|
|
----------红点-start---------
|
|
function SakuraGiftModel:GoodsChangeCheck( )
|
|
if #self.sub_type_list > 0 then
|
|
for k,v in pairs(self.sub_type_list) do
|
|
self:CheckRedByType(SakuraGiftModelRedType.CanGo, v)
|
|
end
|
|
end
|
|
end
|
|
|
|
function SakuraGiftModel:CheckSakuraGiftMainRedDot( sub_type )
|
|
local base_type = CustomActivityModel.CustomActBaseType.SAKURA_GIFT
|
|
if not sub_type then return end
|
|
local icon_sub_type = base_type*1000 + sub_type
|
|
if sub_type >= 10001 then
|
|
icon_sub_type = base_type*100000 + sub_type
|
|
end
|
|
local act_list = CustomActivityModel:getInstance():getActList(base_type, sub_type)
|
|
if not act_list then
|
|
return
|
|
else
|
|
local bool = self:GetAllRed( sub_type )
|
|
GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, icon_sub_type, bool)
|
|
end
|
|
end
|
|
|
|
-- 这个拿红点会顺便刷一遍红点缓存
|
|
function SakuraGiftModel:CheckAllRed( sub_type )
|
|
local bool1 = self:CheckLoginRed(sub_type) -- 首次登陆红点
|
|
local bool2 = self:CheckExchangeRed(sub_type) -- 最后5小时可兑换红点
|
|
local bool3 = self:CheckCanGoRed(sub_type) -- 抽奖红点
|
|
local bool4 = self:CheckLoginExchangeRed(sub_type) -- 首次登陆兑换红点
|
|
self:CheckSakuraGiftMainRedDot( sub_type ) -- 刷新一下总按钮红点
|
|
return bool1 or bool2 or bool3 or bool4
|
|
end
|
|
|
|
-- 这个是拿总红点缓存 不会刷新的
|
|
function SakuraGiftModel:GetAllRed( sub_type )
|
|
local bool1 = self:GetLoginRed(sub_type) -- 首次登陆红点
|
|
local bool2 = self:GetExchangeRed(sub_type) -- 最后5小时可兑换红点
|
|
local bool3 = self:GetCanGoRed(sub_type) -- 抽奖红点
|
|
local bool4 = self:GetLoginExchangeRed(sub_type) -- 首次登陆兑换红点
|
|
return bool1 or bool2 or bool3 or bool4
|
|
end
|
|
|
|
-- 根据红点类型单个更新红点缓存
|
|
function SakuraGiftModel:CheckRedByType(red_type, sub_type)
|
|
local bool
|
|
if red_type == SakuraGiftModelRedType.Login then
|
|
bool = self:CheckLoginRed(sub_type)
|
|
elseif red_type == SakuraGiftModelRedType.Exchange then
|
|
bool = self:CheckExchangeRed(sub_type)
|
|
elseif red_type == SakuraGiftModelRedType.CanGo then
|
|
bool = self:CheckCanGoRed(sub_type)
|
|
elseif red_type == SakuraGiftModelRedType.LoginExchange then
|
|
bool = self:CheckLoginExchangeRed(sub_type)
|
|
end
|
|
self:CheckSakuraGiftMainRedDot( sub_type ) -- 刷新一下总按钮红点
|
|
self:Fire(SakuraGiftModel.REFRESH_ACT_INFO)
|
|
return bool
|
|
end
|
|
----------------------------------------------
|
|
|
|
-- 抽奖红点 (有免费次数 或 有道具)
|
|
function SakuraGiftModel:CheckCanGoRed( sub_type )
|
|
local suit_id = self:GetSuitIdBySubType(sub_type)
|
|
local conf = stringtotable(self:GetKeyValueConf( suit_id, "pray_one" ))[1]
|
|
local good_num = GoodsModel:getInstance():GetTypeGoodsNum(conf[2])
|
|
self.can_go_red[sub_type] = good_num > 0 or self:GetFreeTime( sub_type ) > 0
|
|
return self.can_go_red[sub_type] == true
|
|
end
|
|
|
|
function SakuraGiftModel:GetCanGoRed( sub_type )
|
|
return self.can_go_red[sub_type]
|
|
end
|
|
-------------------------------------------------
|
|
-- 检查是否有可以兑换的物品
|
|
function SakuraGiftModel:CheckCanExchange( sub_type )
|
|
local shop_info = self:GetShopInfo( sub_type )
|
|
if not shop_info then return end
|
|
local score = shop_info.score
|
|
if not score or score == 0 then
|
|
return false
|
|
end
|
|
for k,v in pairs(shop_info.goods_list) do
|
|
local conf = Config.Sakuragiftpointreward[v.reward_id]
|
|
if conf.limit - v.times > 0 and score >= conf.points then
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
|
|
-- 检查兑换红点
|
|
function SakuraGiftModel:CheckExchangeRed( sub_type )
|
|
local bool = false
|
|
local base_type = self.base_type
|
|
local sub_type = sub_type or CustomActivityModel:getInstance():getActMinSubType(base_type)
|
|
local act_list = CustomActivityModel:getInstance():getActList(base_type, sub_type)
|
|
local is_last_day = false
|
|
if act_list and act_list.etime then
|
|
local end_time = 0
|
|
end_time = act_list.etime - TimeUtil:getServerTime()
|
|
if end_time > 0 and end_time <= NeedCheckExchangeRedTime then -- 剩余5小时
|
|
is_last_day = true
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
self.exchange_red[sub_type] = is_last_day and self:CheckCanExchange(sub_type)
|
|
return self.exchange_red[sub_type]
|
|
end
|
|
|
|
function SakuraGiftModel:GetExchangeRed( sub_type )
|
|
return self.exchange_red[sub_type] == true
|
|
end
|
|
--------------------------------------------------
|
|
-- 当前有可以兑换道具首次登陆时给红点
|
|
function SakuraGiftModel:CheckLoginExchangeRed( sub_type )
|
|
local list = self:GetLoginExchangeCookie() or {}
|
|
if list[sub_type] == true then
|
|
self.login_exchange_red[sub_type] = false
|
|
else
|
|
self.login_exchange_red[sub_type] = self:CheckCanExchange(sub_type)
|
|
end
|
|
return self.login_exchange_red[sub_type]
|
|
end
|
|
|
|
function SakuraGiftModel:GetLoginExchangeRed( sub_type )
|
|
return self.login_exchange_red[sub_type]
|
|
end
|
|
|
|
function SakuraGiftModel:SetLoginExchangeRed( sub_type, bool )
|
|
if self.login_exchange_red[sub_type] and bool == false then
|
|
self.login_exchange_red[sub_type] = false
|
|
self:SetLoginExchangeCookie( sub_type, true ) -- 今天点开过了
|
|
self:CheckRedByType(SakuraGiftModelRedType.LoginExchange, sub_type)
|
|
end
|
|
end
|
|
|
|
-- 每天首次登陆兑换红点cookie
|
|
function SakuraGiftModel:SetLoginExchangeCookie( sub_type, bool )
|
|
local list = self:GetLoginExchangeCookie() or {}
|
|
list[sub_type] = bool
|
|
CookieWrapper.Instance:SaveCookie(CookieLevelType.Account,
|
|
CookieTimeType.TYPE_DAY2, CookieKey.SAKURA_GIFT_FIRST_EXCHANGE_RED, list)
|
|
CookieWrapper.Instance:WriteAll()
|
|
end
|
|
|
|
--每天首次登陆兑换红点cookie
|
|
function SakuraGiftModel:GetLoginExchangeCookie( )
|
|
local list = CookieWrapper.Instance:GetCookie(CookieLevelType.Account,
|
|
CookieKey.SAKURA_GIFT_FIRST_EXCHANGE_RED) or {}
|
|
return list
|
|
end
|
|
|
|
---------------------------------------
|
|
-- 每天首次登陆红点cookie
|
|
function SakuraGiftModel:SetLoginCookie( sub_type, bool )
|
|
local list = self:GetLoginCookie() or {}
|
|
list[sub_type] = bool
|
|
CookieWrapper.Instance:SaveCookie(CookieLevelType.Account,
|
|
CookieTimeType.TYPE_DAY2, CookieKey.SAKURA_GIFT_FIRST_LOGIN_RED, list)
|
|
CookieWrapper.Instance:WriteAll()
|
|
end
|
|
|
|
--每天首次登陆红点cookie
|
|
function SakuraGiftModel:GetLoginCookie( )
|
|
local list = CookieWrapper.Instance:GetCookie(CookieLevelType.Account,
|
|
CookieKey.SAKURA_GIFT_FIRST_LOGIN_RED) or {}
|
|
return list
|
|
end
|
|
|
|
-- 当前有可以兑换道具首次登陆时给红点
|
|
function SakuraGiftModel:CheckLoginRed( sub_type )
|
|
local list = self:GetLoginCookie() or {}
|
|
if list[sub_type] == true then
|
|
self.login_red[sub_type] = false
|
|
else
|
|
self.login_red[sub_type] = true
|
|
end
|
|
return self.login_red[sub_type]
|
|
end
|
|
|
|
function SakuraGiftModel:GetLoginRed( sub_type )
|
|
return self.login_red[sub_type]
|
|
end
|
|
|
|
function SakuraGiftModel:SetLoginRed( sub_type, bool )
|
|
if self.login_red[sub_type] and bool == false then
|
|
self.login_red[sub_type] = false
|
|
self:SetLoginCookie( sub_type, true ) -- 今天点开过了
|
|
self:CheckRedByType(SakuraGiftModelRedType.Login, sub_type)
|
|
end
|
|
end
|
|
------------------------------------------------------
|
|
|
|
--[[-- 活动期间首次登陆指引红点cookie
|
|
function SakuraGiftModel:SetFirstLoginCookie( sub_type, time )
|
|
local list = self:GetFirstLoginCookie() or {}
|
|
list[sub_type] = time
|
|
CookieWrapper.Instance:SaveCookie(CookieLevelType.Account,
|
|
CookieTimeType.TYPE_ALWAYS, CookieKey.SAKURA_GIFT_FIRST_LOGIN_RED,list)
|
|
CookieWrapper.Instance:WriteAll()
|
|
end
|
|
|
|
--活动期间首次登陆指引红点
|
|
function SakuraGiftModel:GetFirstLoginCookie( )
|
|
local list = CookieWrapper.Instance:GetCookie(CookieLevelType.Account,
|
|
CookieKey.SAKURA_GIFT_FIRST_LOGIN_RED) or {}
|
|
return list
|
|
end
|
|
|
|
-- 活动期间首次登陆指引红点
|
|
function SakuraGiftModel:SetFirstLoginRed( sub_type, bool )
|
|
self.first_login_red = self.first_login_red or {}
|
|
self.first_login_red[sub_type] = bool
|
|
if bool == false then
|
|
local base_type = self.base_type
|
|
local sub_type = sub_type or CustomActivityModel:getInstance():getActMinSubType(base_type)
|
|
local act_list = CustomActivityModel:getInstance():getActList(base_type, sub_type)
|
|
local is_last_day = false
|
|
if act_list and act_list.etime then
|
|
self:SetFirstLoginCookie( sub_type, act_list.etime )
|
|
end
|
|
end
|
|
end
|
|
|
|
function SakuraGiftModel:GetFirstLoginRed( sub_type )
|
|
return self.first_login_red[sub_type]
|
|
end--]]
|
|
----------红点-end-----------
|
|
----------界面内跑马传闻-start---------
|
|
function SakuraGiftModel:InitMessage( )
|
|
self.chuan_wen_info = {}
|
|
end
|
|
function SakuraGiftModel:AppendNoticeMsg( str )
|
|
self.chuan_wen_info[#self.chuan_wen_info + 1] = str
|
|
end
|
|
|
|
function SakuraGiftModel:GetChuanwenInfo( )
|
|
return self.chuan_wen_info or {}
|
|
end
|
|
----------界面内跑马传闻-end-----------
|
|
function SakuraGiftModel:SetDelayTimeList( sub_type )
|
|
if self.time_id_list[sub_type] then
|
|
GlobalTimerQuest:CancelQuest(self.time_id_list[sub_type])
|
|
self.time_id_list[sub_type] = nil
|
|
end
|
|
local base_type = CustomActivityModel.CustomActBaseType.SAKURA_GIFT
|
|
local act_list = CustomActivityModel:getInstance():getActList(base_type, sub_type) or {}
|
|
if not act_list then return end
|
|
local end_time = act_list.etime
|
|
local haly_hour = NeedCheckExchangeRedTime
|
|
local sec = end_time - TimeUtil:getServerTime()
|
|
if sec > 0 then
|
|
local function onTimer()
|
|
sec = end_time - TimeUtil:getServerTime()
|
|
if sec <= haly_hour then--五小时有可以兑换的要给予红点且所有奖励有未购买完的
|
|
if self.time_id_list[sub_type] then
|
|
GlobalTimerQuest:CancelQuest(self.time_id_list[sub_type])
|
|
self.time_id_list[sub_type] = nil
|
|
end
|
|
self:CheckRedByType(SakuraGiftModelRedType.Exchange, sub_type)
|
|
if self.time_id_list[sub_type] then
|
|
GlobalTimerQuest:CancelQuest(self.time_id_list[sub_type])
|
|
self.time_id_list[sub_type] = nil
|
|
end
|
|
end
|
|
end
|
|
if not self.time_id_list[sub_type] then
|
|
self.time_id_list[sub_type] = GlobalTimerQuest:AddPeriodQuest(onTimer, 10, -1)
|
|
end
|
|
onTimer()
|
|
end
|
|
end
|