------------------------------------------------
--作者: 杨全福
--日期: 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