| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- local UIBoliShopBuyTipsCtr = class("UIBoliShopBuyTipsCtr", require("UICtrBase"))
- function UIBoliShopBuyTipsCtr:Init(view)
- self.view = view
- end
- function UIBoliShopBuyTipsCtr:SetData(data)
- self.asyncIdx = 0
- self.data = data
- self:InitData()
- end
- function UIBoliShopBuyTipsCtr:GetAsyncIdx()
- self.asyncIdx = self.asyncIdx + 1
- return self.asyncIdx
- end
- function UIBoliShopBuyTipsCtr:GetData()
- return self.data
- end
- function UIBoliShopBuyTipsCtr:OnDispose()
- self.data = nil
- self.view = nil
- self.curShopData = nil
- self.curGoodsData = nil
- self.maxBuyNumOnce = nil
- self.buyNum = nil
- end
- function UIBoliShopBuyTipsCtr:InitData()
- local goodId = self.data
- self.curShopData = ManagerContainer.DataMgr.BoliShopData:GetBoliShopData()
- if self.curShopData then
- self.curGoodsData = self.curShopData:GetGoodsDataById(goodId)
- else
- self.curGoodsData = nil
- end
- self.maxBuyNumOnce = GlobalConfig.Instance:GetConfigIntValue(120)
- self:SetBuyNum(1)
- end
- function UIBoliShopBuyTipsCtr:GetCurShopData()
- return self.curShopData
- end
- function UIBoliShopBuyTipsCtr:GetCurGoodsData()
- return self.curGoodsData
- end
- function UIBoliShopBuyTipsCtr:GetCurPrice()
- return self.curGoodsData.curPrice
- end
- function UIBoliShopBuyTipsCtr:GetMaxBuyNumOnce()
- return self.maxBuyNumOnce
- end
- function UIBoliShopBuyTipsCtr:GetBuyNum()
- return self.buyNum
- end
- function UIBoliShopBuyTipsCtr:SetBuyNum(buyNum)
- if not self:IsValidData() then
- return false
- end
- local remainBuyNum = self.curGoodsData:GetRemainBuyNum()
- if remainBuyNum >= 0 then
- if buyNum > remainBuyNum then
- buyNum = remainBuyNum
- end
- end
- local price = self.curGoodsData.curPrice
- local goodsCfgData = self.curGoodsData:GetGoodsCfgData()
- local ownCount = self:GetOwnResCountByItemId(goodsCfgData.PayForType)
- remainBuyNum = Mathf.Floor(ownCount / price)
- if buyNum > remainBuyNum then
- buyNum = remainBuyNum
- end
- buyNum = Mathf.Clamp(buyNum, 1, self.maxBuyNumOnce)
- if self.buyNum == buyNum then
- return false
- end
- self.buyNum = buyNum
- return true
- end
- function UIBoliShopBuyTipsCtr:ChangeDeltaBuyNum(deltaBuyNum)
- local buyNum = self.buyNum + deltaBuyNum
- return self:SetBuyNum(buyNum)
- end
- function UIBoliShopBuyTipsCtr:GetOwnResCountByItemId(itemCfgId)
- return CommonUtil.GetOwnResCountByItemId(itemCfgId)
- end
- function UIBoliShopBuyTipsCtr:IsValidData()
- return self.curShopData and self.curGoodsData
- end
- function UIBoliShopBuyTipsCtr:SendShopBuyItemReq()
- if not self:IsValidData() then
- return 390
- end
- local price = self.curGoodsData.curPrice
- local goodsCfgData = self.curGoodsData:GetGoodsCfgData()
- local ownCount = self:GetOwnResCountByItemId(goodsCfgData.PayForType)
- if ownCount < (price * self.buyNum) then
- return 391, goodsCfgData.PayForType
- end
- if not ManagerContainer.DataMgr.BoliShopData:SendBoliShopBuyReq(self.curGoodsData.id, self.buyNum) then
- return 100007
- end
- return 0
- end
- return UIBoliShopBuyTipsCtr
|