------------------------------------------------ --作者: 杨全福 --日期: 2020-09-09 --文件: JiWuDuiHuanData.lua --模块: JiWuDuiHuanData --描述: 集物兑换数据 ------------------------------------------------ local BaseData = require("Logic.YYHD.YYHDBaseData") local ItemData = require("Logic.YYHD.YYHDItemData") local JiWuDuiHuanData = { --消耗的物品ID CostItemID = 0, --商品列表 ItemList = nil, --已购买次数 BuyCountTable = nil, --消耗的物品Icon CostItemIcon = 0, --展示红点 ShowRedPoint = true, } function JiWuDuiHuanData:New(typeId) local _n = Utils.DeepCopy(self) local _mn = setmetatable(_n, {__index = BaseData:New(typeId)}) return _mn end --解析活动配置数据 function JiWuDuiHuanData:ParseSelfCfgData(jsonTable) self.CostItemID = jsonTable.exChangeMaterialsId self.ItemList = List:New() for k, v in pairs(jsonTable.exChangeDataMap) do self.ItemList:Add({ ID = tonumber(k), Price = v.exChangePrice, Times = v.exChangeTimes, Item = ItemData:New(v.rewardData) }) end self.ItemList:Sort(function(a, b) return a.ID < b.ID end) end --解析活动玩家数据 function JiWuDuiHuanData:ParsePlayerData(jsonTable) self.BuyCountTable = {} for v, k in pairs(jsonTable.exChangeList) do self.BuyCountTable[tonumber(v)] = k end end --刷新数据 function JiWuDuiHuanData:RefreshData() --检测红点 self:RemoveRedPoint() if self.ShowRedPoint then self:AddRedPoint(0, nil, nil, nil, true, nil) end local _minNeedCount = nil for i = 1, #self.ItemList do local _item = self.ItemList[i] local _buyCount = self.BuyCountTable[_item.ID] if _buyCount == nil then _buyCount = 0 end if _item.Times <= 0 or _buyCount < _item.Times then if _minNeedCount == nil or _item.Price < _minNeedCount then _minNeedCount = _item.Price end end end if _minNeedCount ~= nil then self:AddRedPoint(1, {{self.CostItemID, _minNeedCount}}, nil, nil, nil, nil) end local _costCfg = DataConfig.DataItem[self.CostItemID] self.CostItemIcon = _costCfg.Icon end --购买 function JiWuDuiHuanData:ReqBuy(id, count) local _json = string.format("{\"exChange\":%d,\"num\":%d}", id, count) GameCenter.Network.Send("MSG_Activity.ReqActivityDeal", {type = self.TypeId, data = _json}) end --处理运营活动返回 function JiWuDuiHuanData:ResActivityDeal(jsonTable) end return JiWuDuiHuanData