LimitGiftModel = LimitGiftModel or BaseClass(BaseVo, true)
|
|
local LimitGiftModel = LimitGiftModel
|
|
|
|
LimitGiftModel.REQUEST_INFO = "LimitGiftModel.REQUEST_INFO"
|
|
LimitGiftModel.OPEN_LIMIT_GIFT_VIEW = "LimitGiftModel.OPEN_LIMIT_GIFT_VIEW"--打开主界面
|
|
LimitGiftModel.UPDATE_LIMIT_GIFT_VIEW = "LimitGiftModel.UPDATE_LIMIT_GIFT_VIEW"--更新主界面
|
|
LimitGiftModel.REQUEST_INFO = "LimitGiftModel.REQUEST_INFO"--请求协议
|
|
|
|
LimitGiftModel.SubID = {
|
|
RUNE = 1,--御魂
|
|
Peak = 2,
|
|
Extreme = 3,
|
|
Rune = 4,
|
|
}
|
|
|
|
function LimitGiftModel:__init()
|
|
LimitGiftModel.Instance = self
|
|
self.login_red = {}--登陆红点
|
|
self:Reset()
|
|
end
|
|
|
|
function LimitGiftModel:Reset()
|
|
self.view_info = {}--界面信息
|
|
end
|
|
|
|
function LimitGiftModel:getInstance()
|
|
if LimitGiftModel.Instance == nil then
|
|
LimitGiftModel.Instance = LimitGiftModel.New()
|
|
end
|
|
return LimitGiftModel.Instance
|
|
end
|
|
|
|
function LimitGiftModel:CheckMainIconRedDot()
|
|
local show = false
|
|
if self.login_red then
|
|
show = true
|
|
else
|
|
for k,v in pairs(self.red_dot_info) do
|
|
if v == true then
|
|
show = v
|
|
break
|
|
end
|
|
end
|
|
end
|
|
GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, 331003, show)
|
|
end
|
|
|
|
--检查限购礼包红点
|
|
function LimitGiftModel:CheckLimitGiftRedDot( )
|
|
return self.red_dot_info
|
|
end
|
|
|
|
--检测限购礼包活动图标是否需要开启[兼顾设置限购礼包活动内部的活动列表]
|
|
function LimitGiftModel:CheckIconBoolOpen()
|
|
self.act_base_list = {} --限购礼包活动内部的活动列表
|
|
local all_list = CustomActivityModel:getInstance():getAllActListByBaseType(CustomActivityModel.CustomActBaseType.LIMIT_GIFT) or {}
|
|
all_list = DeepCopy(all_list)
|
|
local server_time = TimeUtil:getServerTime()
|
|
local my_level = RoleManager.Instance.mainRoleInfo.level
|
|
|
|
self.red_dot_info = {}--红点信息
|
|
for k,v in pairs(all_list) do
|
|
local open_level = Config.Modulesub["331@3"].open_lv or 1
|
|
for l,w in pairs(v.condition_list) do
|
|
if type(w) == "table" and w[1] == "role_lv" then
|
|
open_level = tonumber(w[2])
|
|
end
|
|
end
|
|
if server_time > v.stime and v.etime > server_time then
|
|
if my_level >= open_level and GetModuleIsOpen(331,CustomActivityModel.CustomActBaseType.LIMIT_GIFT) then
|
|
v.sort_index = v.sub_type or 999
|
|
self.red_dot_info[v.sub_type] = v.is_first_open == 1
|
|
if not self.red_dot_info[v.sub_type] then
|
|
local award_data = CustomActivityModel:getInstance():getOneActRewardList(v.base_type,v.sub_type)
|
|
if award_data then
|
|
for ii,vv in pairs(award_data.reward_list) do
|
|
local conditon = vv.condition_list
|
|
if conditon and not self.red_dot_info[v.sub_type] then
|
|
local cur_price = nil
|
|
for iii,vvv in ipairs(conditon) do
|
|
if vvv[1] == "limit_cost" then
|
|
cur_price = tonumber(vvv[2])
|
|
break
|
|
end
|
|
end
|
|
self.red_dot_info[v.sub_type] = vv.status == 1 and cur_price == 0
|
|
end
|
|
end
|
|
end
|
|
end
|
|
table.insert(self.act_base_list, v)
|
|
end
|
|
end
|
|
end
|
|
if self.login_red == nil then
|
|
for k,v in pairs(all_list) do
|
|
local award_data = CustomActivityModel:getInstance():getOneActRewardList(v.base_type,v.sub_type)
|
|
if award_data and award_data.reward_list then
|
|
for ii,vv in pairs(award_data.reward_list) do
|
|
if not self.login_red then
|
|
self.login_red = vv.status ~= 2
|
|
elseif self.login_red then
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
--排序
|
|
local function sort_func(a, b)
|
|
return a.sort_index < b.sort_index
|
|
end
|
|
table.sort(self.act_base_list, sort_func)
|
|
-- if #self.act_base_list > 0 then
|
|
-- ActivityIconManager:getInstance():addIcon(331003, -1)
|
|
-- else
|
|
-- ActivityIconManager:getInstance():deleteIcon(331003)
|
|
-- end
|
|
-- self:CheckMainIconRedDot()
|
|
self:Fire(LimitGiftModel.UPDATE_LIMIT_GIFT_VIEW)
|
|
end
|
|
|
|
--获得活动信息列表
|
|
function LimitGiftModel:GetTabInfo( )
|
|
self.act_base_list = {} --限购礼包活动内部的活动列表
|
|
local all_list = CustomActivityModel:getInstance():getAllActListByBaseType(CustomActivityModel.CustomActBaseType.LIMIT_GIFT) or {}
|
|
all_list = DeepCopy(all_list)
|
|
-- print("huangcong:LimitGiftModel [start:92] :", TableSize(all_list))
|
|
-- PrintTable(all_list)
|
|
local server_time = TimeUtil:getServerTime()
|
|
local my_level = RoleManager.Instance.mainRoleInfo.level
|
|
|
|
for k,v in pairs(all_list) do
|
|
local open_level = Config.Modulesub["331@3"].open_lv or 1
|
|
for l,w in pairs(v.condition_list) do
|
|
if type(w) == "table" and w[1] == "role_lv" then
|
|
open_level = tonumber(w[2])
|
|
end
|
|
end
|
|
if server_time > v.stime and v.etime > server_time then
|
|
if my_level >= open_level and GetModuleIsOpen(331,CustomActivityModel.CustomActBaseType.LIMIT_GIFT) then
|
|
v.sort_index = v.sub_type or 999
|
|
table.insert(self.act_base_list, v)
|
|
end
|
|
end
|
|
end
|
|
return self.act_base_list
|
|
end
|