local ActivityDailyComulativeRechargeROBTItem = class('ActivityDailyComulativeRechargeROBTItem', require('Activities/ActivityTypeItem')) local ActivityTaskItem = require("Activities/ActivityTaskItem") function ActivityDailyComulativeRechargeROBTItem:ctor() self.curDay = 0 self.curDayEndTime = 0 self.weekDayEndTime = 0 self.taskList = nil self.dayTaskList = nil self.redPointType = Enum.RPNotifyType.DailyRechargeROBT end function ActivityDailyComulativeRechargeROBTItem:SyncSrvData(serverData, curDayEndTime) if not self.taskList then self.taskList = {} end if not self.dayTaskList then self.dayTaskList = {} end local curDay = serverData.cur_day if self.curDay ~= curDay then self.curDay = curDay ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Activity_Day_Change,self.actId) end self.curDayEndTime = tonumber(tostring(curDayEndTime / 1000)) if not serverData.bt_rocoin_data then return end self.weekDayEndTime = tonumber(tostring(serverData.bt_rocoin_data.week_day_end_time / 1000)) local taskList = serverData.bt_rocoin_data.week_task_list if taskList then for i = 1, #taskList do local taskData = taskList[i] local task = self:GetWeekTaskById(taskData.task_id) if not task then task = ActivityTaskItem:new(taskData.task_id) self.taskList[#self.taskList+1] = task end task:SyncServerData(taskData) end self:SortTask(self.taskList) end taskList = serverData.bt_rocoin_data.daily_task_list if taskList then for i = 1, #taskList do local taskData = taskList[i] local task = self:GetDayTaskById(taskData.task_id) if not task then task = ActivityTaskItem:new(taskData.task_id) self.dayTaskList[#self.dayTaskList+1] = task end task:SyncServerData(taskData) end self:SortTask(self.dayTaskList) end end function ActivityDailyComulativeRechargeROBTItem:SortTask(taskList) if taskList == nil or #taskList < 2 then return end table.sort( taskList, function(a, b) if a.showPriority < b.showPriority then return true elseif a.showPriority > b.showPriority then return false else return a.taskId < b.taskId end end ) end function ActivityDailyComulativeRechargeROBTItem:GetDayTaskById(id) for i = 1, #self.dayTaskList do if self.dayTaskList[i].taskId == id then return self.dayTaskList[i] end end return nil end function ActivityDailyComulativeRechargeROBTItem:GetWeekTaskById(id) for i = 1, #self.taskList do if self.taskList[i].taskId == id then return self.taskList[i] end end return nil end function ActivityDailyComulativeRechargeROBTItem:GetTaskById(id) local item = self:GetDayTaskById(id) if item then return item end return self:GetWeekTaskById(id) end function ActivityDailyComulativeRechargeROBTItem:GetDayTaskList() return self.dayTaskList end function ActivityDailyComulativeRechargeROBTItem:GetWeekTaskList() return self.taskList end function ActivityDailyComulativeRechargeROBTItem:HasRedPoint() return self:HasWeekTaskRP() or self:HasDayTaskRP() end function ActivityDailyComulativeRechargeROBTItem:HasWeekTaskRP() if self.taskList == nil then return false end for i = 1, #self.taskList do local task = self.taskList[i] if task:HasRedPoint() then return true end end return false end function ActivityDailyComulativeRechargeROBTItem:HasDayTaskRP() if self.dayTaskList == nil then return false end for i = 1, #self.dayTaskList do local task = self.dayTaskList[i] if task:HasRedPoint() then return true end end return false end function ActivityDailyComulativeRechargeROBTItem:GetDayLeftTime() local leftTime = self.curDayEndTime - ManagerContainer.LuaTimerMgr:GetTimeSecond() if leftTime < 0 then leftTime = 0 end return leftTime end function ActivityDailyComulativeRechargeROBTItem:GetWeekLeftTime() local leftTime = self.weekDayEndTime - ManagerContainer.LuaTimerMgr:GetTimeSecond() if leftTime < 0 then leftTime = 0 end return leftTime end return ActivityDailyComulativeRechargeROBTItem