diff --git a/Assets/ManagedResources/~Lua/Modules/FirstRecharge/DayRewardItem.lua b/Assets/ManagedResources/~Lua/Modules/FirstRecharge/DayRewardItem.lua index 4fc1bb4aa6..638790166b 100644 --- a/Assets/ManagedResources/~Lua/Modules/FirstRecharge/DayRewardItem.lua +++ b/Assets/ManagedResources/~Lua/Modules/FirstRecharge/DayRewardItem.lua @@ -54,7 +54,7 @@ function DayRewardItem:SetValue(context,_sortingOrder) --else local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FirstRecharge) local AccumRecharge = 0 - for _, missInfo in pairs(activityInfo.mission) do + for _, missInfo in ipairs(activityInfo.mission) do if missInfo and missInfo.progress then AccumRecharge = missInfo.progress end @@ -87,7 +87,7 @@ function DayRewardItem:SetValue(context,_sortingOrder) end function DayRewardItem:OnReceivedBtnClicked() - NetManager.GetActivityRewardRequest(self.context.Id,ActivityTypeDef.FirstRecharge, function(drop) + NetManager.GetActivityRewardRequest(self.context.Id, self.context.ActivityId, function(drop) UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1) ActivityGiftManager.SetActivityInfo(self.context.ActivityId, self.context.Id, 1) self.receiveBtn.gameObject:SetActive(false) diff --git a/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargeManager.lua b/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargeManager.lua index 27ee10c063..666f7e10d1 100644 --- a/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargeManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargeManager.lua @@ -19,47 +19,28 @@ end function this.GetFirstRechargeRedPointStatus() local redPoint = false if ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FirstRecharge) then - if ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FirstRecharge) then - redPoint = redPoint or this.GetSixMoneyTabRedPointStatus() - redPoint = redPoint or this.GetHundredTabRedPointStatus() - end + redPoint = redPoint or this.GetRedPointStatus(1) + redPoint = redPoint or this.GetRedPointStatus(2) end return redPoint end -function this.GetSixMoneyTabRedPointStatus() +function this.GetRedPointStatus(index) local redPoint = false - local money = FirstRechargeManager.GetFirstRechargeMoneyByIndex(1) - for _, rewardInfo in ConfigPairs(activityRewardConfig) do - if rewardInfo.ActivityId == ActivityTypeDef.FirstRecharge and - rewardInfo.Values[1][1] == money then - redPoint = redPoint or this.GetDayItemRedPoint(rewardInfo) - end - end - return redPoint -end - -function this.GetHundredTabRedPointStatus() - local redPoint = false - local money = FirstRechargeManager.GetFirstRechargeMoneyByIndex(2) - for _, rewardInfo in ConfigPairs(activityRewardConfig) do - if rewardInfo.ActivityId == ActivityTypeDef.FirstRecharge and - rewardInfo.Values[1][1] == money then - redPoint = redPoint or this.GetDayItemRedPoint(rewardInfo) - end - end - return redPoint -end - -function this.GetDayItemRedPoint(context) + local money = FirstRechargeManager.GetFirstRechargeMoneyByIndex(index) local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FirstRecharge) - local AccumRecharge = 0 - for _, missInfo in pairs(activityInfo.mission) do - if missInfo and missInfo.progress then - AccumRecharge = missInfo.progress + for _, missionInfo in ipairs(activityInfo.mission) do + local rewardInfo = activityRewardConfig[missionInfo.missionId] + if rewardInfo and rewardInfo.Values[1][1] == money then + redPoint = redPoint or this.GetDayItemRedPoint(missionInfo, rewardInfo) end end - --if this.GetAccumRechargeValue() == 0 then + return redPoint +end + + +function this.GetDayItemRedPoint(missionInfo, context) + local AccumRecharge = missionInfo.progress if AccumRecharge == 0 then return false else @@ -72,7 +53,7 @@ function this.GetDayItemRedPoint(context) local day = GetTimePass(this.GetRechargeTime()) --local day = GetTimePass(math.floor(GetTimeStamp())) if context.Values[1][2] <= day then - local state = ActivityGiftManager.GetActivityInfo(ActivityTypeDef.FirstRecharge, context.Id).state + local state = missionInfo.state return state ~= 1 else return false diff --git a/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargePanel.lua b/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargePanel.lua index 0e582ef3a8..1154cfac51 100644 --- a/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargePanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargePanel.lua @@ -28,6 +28,8 @@ local TipConfig = { [2] = "s_shouchong_15_zh" }, } +-- +local _MoneyDataNum = {} function FirstRechargePanel:InitComponent() @@ -168,16 +170,50 @@ function FirstRechargePanel:OnShow() --self.reChargeTips.text = string.format("已充值 %s 元", FirstRechargeManager.GetAccumRechargeValue()) self.activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FirstRecharge) local AccumRecharge = 0 - for _, missInfo in pairs(self.activityInfo.mission) do + _MoneyDataNum = {} + for _, missInfo in ipairs(self.activityInfo.mission) do if missInfo and missInfo.progress then + -- 获取充值额度 AccumRecharge = missInfo.progress + + -- 构建数据 + local money = activityRewardConfig[missInfo.missionId].Values[1][1] + local index = FirstRechargeManager.GetFirstRechargeIndexByMoney(money) + if not _MoneyDataNum[index] then + _MoneyDataNum[index] = {} + end + table.insert(_MoneyDataNum[index], missInfo) end end + -- 判断数据 + local minIndex + for index, dataList in pairs(_MoneyDataNum) do + if dataList and #dataList > 0 then + -- 排序 + table.sort(dataList,function(a,b) + return a.missionId < b.missionId + end) + + -- 找到最小的 + if not minIndex or index < minIndex then + minIndex = index + end + end + end + + -- 如果想看的不存在就显示最小的 + if not _MoneyDataNum[self.selectTabIndex] or #_MoneyDataNum[self.selectTabIndex] <= 0 then + self.selectTabIndex = minIndex + end + self.reChargeTips.text = Language[10664]..string.format(MoneyUtil.GetMoneyUnitName(),AccumRecharge)--string.format(Language[10665], AccumRecharge) self:OnTabChanged(self.selectTabIndex) for i = 1, kMaxTab do self:SetTabRedPointStatus(i) end + + -- 判断页签切换是否显示 + Util.GetGameObject(self.transform, "frame/tabsContent"):SetActive(table.nums(_MoneyDataNum)>1) end function FirstRechargePanel:OnTabClicked(index) @@ -205,17 +241,7 @@ function FirstRechargePanel:OnTabChanged(index) local money = FirstRechargeManager.GetFirstRechargeMoneyByIndex(index) - local tempData = {} - for _, missInfo in pairs(self.activityInfo.mission) do - if missInfo.missionId then - if activityRewardConfig[missInfo.missionId].Values[1][1] == money then - table.insert(tempData,missInfo) - end - end - end - table.sort(tempData,function(a,b) - return a.missionId < b.missionId - end) + local tempData = _MoneyDataNum[index] for _, missInfo in ipairs(tempData) do if missInfo and missInfo.progress and activityRewardConfig[missInfo.missionId].Values[1][1] == money then AccumRecharge = missInfo.progress @@ -251,12 +277,9 @@ end function FirstRechargePanel:ShowContent(index) local tempData = {} - local money = FirstRechargeManager.GetFirstRechargeMoneyByIndex(index) - for _, rewardInfo in ConfigPairs(activityRewardConfig) do - if rewardInfo.ActivityId == ActivityTypeDef.FirstRecharge and - rewardInfo.Values[1][1] == money then - table.insert(tempData, rewardInfo) - end + + for _, missionInfo in ipairs(_MoneyDataNum[index]) do + table.insert(tempData, activityRewardConfig[missionInfo.missionId]) end -- self.rewardValue.text = tempData[1].TotalValues @@ -301,12 +324,7 @@ function FirstRechargePanel:OnRechargeBtnClicked() end function FirstRechargePanel:SetTabRedPointStatus(tabIndex) - local redPointStatus = false - if tabIndex == 1 then - redPointStatus = redPointStatus or FirstRechargeManager.GetSixMoneyTabRedPointStatus() - else - redPointStatus = redPointStatus or FirstRechargeManager.GetHundredTabRedPointStatus() - end + local redPointStatus = FirstRechargeManager.GetRedPointStatus(tabIndex) self.tabRedPoint[tabIndex]:SetActive(redPointStatus) end --界面关闭时调用(用于子类重写) diff --git a/Assets/ManagedResources/~Lua/Modules/Popup/RewardItemSingleShowPopup.lua b/Assets/ManagedResources/~Lua/Modules/Popup/RewardItemSingleShowPopup.lua index cc52d596ba..4f7f414db8 100644 --- a/Assets/ManagedResources/~Lua/Modules/Popup/RewardItemSingleShowPopup.lua +++ b/Assets/ManagedResources/~Lua/Modules/Popup/RewardItemSingleShowPopup.lua @@ -398,7 +398,7 @@ function RewardItemSingleShowPopup:OnShow() local configs = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig,"ActivityId",id) for i = 1,#configs do if configs[i].Reward[1][1] == heroConfig.Id then - local mission = ActivityGiftManager.GetActivityInfo(ActivityTypeDef.FirstRecharge, configs[i].Id) + local mission = ActivityGiftManager.GetActivityInfo(id, configs[i].Id) if mission.state ~= 1 then isShow = true else