miduo_client/Assets/ManagedResources/~Lua/Modules/NewActivity/CommonActPageManager.lua

95 lines
3.7 KiB
Lua

CommonActPageManager = {}
local this = CommonActPageManager
local dataList = {}
function this.Initialize()
end
--初始化活动的特殊数据
local TypeInitFunc = {
[ActivityTypeDef.YunYouShangRen] = function ()
local curData = dataList[ActivityTypeDef.YunYouShangRen]
local configData = ConfigManager.GetAllConfigsDataByKey(ConfigName.ComposeActivity,"ActivityId",curData.activityId)
for i = 1, #curData.rewards do
for j = 1, #configData do
if curData.rewards[i].missionId == configData[j].Id then
curData.rewards[i].otherData.needItems = configData[j].NeedItems
curData.rewards[i].otherData.count = configData[j].Count
curData.rewards[i].otherData.composeType = configData[j].ComposeType
curData.rewards[i].otherData.selectId = 0
end
end
end
end
}
--数据刷新时是否需要前端自己刷新,如果有就写里面
local TypeUpdateFunc = {
[ActivityTypeDef.YunYouShangRen] = function ()
local curData = dataList[ActivityTypeDef.YunYouShangRen]
for i = 1, #curData.rewards do
curData.rewards[i].otherData.selectId = 0
end
end
}
function this.GetData(actType)
if not dataList[actType] then
dataList[actType] = this.InitSingleTypeData(actType)
if TypeInitFunc[actType] then
TypeInitFunc[actType]()
end
end
this.UpdateSingleTypeData(actType)
if TypeUpdateFunc[actType] then
TypeUpdateFunc[actType]()
end
return dataList[actType]
end
function this.InitSingleTypeData(actType)
local singleTypeData = {}
local data = ActivityGiftManager.GetActivityTypeInfo(actType)
-- LogYellow("InitData activityId:"..tostring(data.activityId).." value:"..tostring(data.value).." startTime:"..tostring(data.startTime).." endTime:"..tostring(data.endTime))
singleTypeData.activityId = data.activityId
singleTypeData.value = data.value
singleTypeData.startTime = data.startTime
singleTypeData.endTime = data.endTime
singleTypeData.rewards = {}
for i = 1, #data.mission do
local reward = {}
reward.missionId = data.mission[i].missionId or 0
reward.progress = data.mission[i].progress or 0
reward.state = data.mission[i].state or 0
reward.otherData = {}
table.insert(singleTypeData.rewards,reward)
end
return singleTypeData
end
function this.UpdateSingleTypeData(actType)
local data = ActivityGiftManager.GetActivityTypeInfo(actType)
-- LogPink("Update".." activityId:"..tostring(data.activityId).." value:"..tostring(data.value).." startTime:"..tostring(data.startTime).." endTime:"..tostring(data.endTime))
dataList[actType].activityId = data.activityId--应该无变化
dataList[actType].value = data.value
dataList[actType].startTime = data.startTime--应该无变化
dataList[actType].endTime = data.endTime--应该无变化
for i = 1, #data.mission do
for j = 1, #dataList[actType].rewards do
if data.mission[i].missionId == dataList[actType].rewards[j].missionId then
dataList[actType].rewards[j].missionId = data.mission[i].missionId or 0--应该无变化
dataList[actType].rewards[j].progress = data.mission[i].progress or 0
dataList[actType].rewards[j].state = data.mission[i].state or 0
end
end
end
table.sort(dataList[actType].rewards,function (a,b)
if a.progress == b.progress then
return a.missionId < b.missionId
else
return a.progress > b.progress
end
end)
end
return CommonActPageManager