158 lines
4.4 KiB
Plaintext
158 lines
4.4 KiB
Plaintext
autoImport("BoothBuyInfoCell")
|
|
autoImport("BoothIntroduceCell")
|
|
autoImport("ExchangeIntroduceData")
|
|
|
|
BoothBuyInfoView = class("BoothBuyInfoView",ContainerView)
|
|
|
|
BoothBuyInfoView.ViewType = UIViewType.PopUpLayer
|
|
|
|
local _itemInfo = {}
|
|
|
|
function BoothBuyInfoView:OnExit()
|
|
if self.infoCell then
|
|
self.infoCell:Exit()
|
|
end
|
|
if self.introCell then
|
|
self.introCell:OnDestroy()
|
|
end
|
|
BoothBuyInfoView.super.OnExit(self)
|
|
end
|
|
|
|
function BoothBuyInfoView:Init()
|
|
self:FindObjs()
|
|
self:AddViewEvts()
|
|
self:InitShow()
|
|
end
|
|
|
|
function BoothBuyInfoView:FindObjs()
|
|
self.name = self:FindGO("Name"):GetComponent(UILabel)
|
|
self.scrollView = self:FindGO("ScrollView").transform
|
|
end
|
|
|
|
function BoothBuyInfoView:AddViewEvts()
|
|
self:AddListenEvt(ServiceEvent.RecordTradeItemSellInfoRecordTradeCmd , self.RecvInfo)
|
|
end
|
|
|
|
function BoothBuyInfoView:InitShow()
|
|
local viewdata = self.viewdata.viewdata
|
|
if viewdata then
|
|
self.tipData = {}
|
|
self.tipData.funcConfig = {}
|
|
|
|
local boothItemData = viewdata.data
|
|
local itemdata = boothItemData:GetItemData()
|
|
|
|
self.name.text = itemdata.staticData.NameZh
|
|
|
|
local go
|
|
if boothItemData.overlap then
|
|
go = self:LoadPreferb("cell/BoothBuyOLCell")
|
|
else
|
|
go = self:LoadPreferb("cell/BoothBuyNOLCell")
|
|
end
|
|
self.infoCell = BoothBuyInfoCell.new(go)
|
|
self.infoCell:SetData(boothItemData)
|
|
self.infoCell:AddEventListener(BoothEvent.CloseInfo, self.CloseSelf, self)
|
|
self.infoCell:AddEventListener(BoothEvent.ConfirmInfo, self.ConfirmInfo, self)
|
|
self.infoCell:AddEventListener(MouseEvent.MouseClick, self.HandleSelect, self)
|
|
|
|
ServiceRecordTradeProxy.Instance:CallItemSellInfoRecordTradeCmd(nil, nil, nil, nil, nil, nil, nil, nil,
|
|
boothItemData.orderId, BoothProxy.TradeType.Booth)
|
|
end
|
|
end
|
|
|
|
function BoothBuyInfoView:RecvInfo(note)
|
|
local data = note.body
|
|
local viewdata = self.viewdata.viewdata
|
|
if viewdata and data and data.type == BoothProxy.TradeType.Booth then
|
|
local boothItemData = viewdata.data
|
|
if boothItemData.orderId == data.order_id then
|
|
|
|
if self.introData == nil then
|
|
self.introData = ExchangeIntroduceData.new(data)
|
|
else
|
|
self.introData:SetData(data)
|
|
end
|
|
self.introData:SetBoothInfo(boothItemData)
|
|
|
|
local go
|
|
if data.statetype == ShopMallStateTypeEnum.InPublicity then
|
|
go = self:LoadPreferb("cell/BuyPublicityCell", self.scrollView)
|
|
else
|
|
go = self:LoadPreferb("cell/BuyNormalCell", self.scrollView)
|
|
end
|
|
self.introCell = BoothIntroduceCell.new(go)
|
|
self.introCell:SetData(self.introData)
|
|
|
|
self.infoCell:SetStateType(data.statetype)
|
|
self.infoCell:UpdateFinalPrice()
|
|
end
|
|
end
|
|
end
|
|
|
|
function BoothBuyInfoView:ConfirmInfo(cell)
|
|
if BoothProxy.Instance:IsMaintenance() then
|
|
MsgManager.ShowMsgByID(25692)
|
|
return
|
|
end
|
|
|
|
local viewdata = self.viewdata.viewdata
|
|
if viewdata then
|
|
local playerID = viewdata.playerID
|
|
if playerID ~= nil then
|
|
local player = NSceneUserProxy.Instance:Find(playerID)
|
|
if player == nil or not player:IsInBooth() then
|
|
MsgManager.ShowMsgByID(25704)
|
|
self:CloseSelf()
|
|
return
|
|
end
|
|
end
|
|
end
|
|
|
|
local boothData = cell.boothItemData
|
|
if boothData ~= nil then
|
|
local _MyselfProxy = MyselfProxy.Instance
|
|
if _MyselfProxy:GetROB() < BoothProxy.Instance:GetDiscountMoney(cell:GetTotalPrice()) then
|
|
MsgManager.ShowMsgByID(10154)
|
|
return
|
|
end
|
|
|
|
if _MyselfProxy:GetQuota() < BoothProxy.Instance:GetQuota(cell:GetTotalPrice(), cell:GetPublicityId()) then
|
|
MsgManager.ShowMsgByID(25703)
|
|
return
|
|
end
|
|
|
|
TableUtility.TableClear(_itemInfo)
|
|
_itemInfo.itemid = boothData.itemid
|
|
_itemInfo.price = boothData.price
|
|
_itemInfo.count = cell.countInput and tonumber(cell.countInput.value) or 1
|
|
_itemInfo.publicity_id = boothData.publicityId
|
|
if not overlap then
|
|
_itemInfo.order_id = boothData.orderId
|
|
end
|
|
_itemInfo.charid = boothData.charid
|
|
|
|
local itemData = boothData:GetItemData()
|
|
if itemData.equipInfo and itemData.equipInfo.damage then
|
|
MsgManager.ConfirmMsgByID(10155,function ()
|
|
self:CallBuyItemRecordTradeCmd()
|
|
end)
|
|
else
|
|
self:CallBuyItemRecordTradeCmd()
|
|
end
|
|
end
|
|
end
|
|
|
|
function BoothBuyInfoView:CallBuyItemRecordTradeCmd()
|
|
FunctionSecurity.Me():Exchange_SellOrBuyItem(function (arg)
|
|
ServiceRecordTradeProxy.Instance:CallBuyItemRecordTradeCmd(arg, Game.Myself.data.id, nil, BoothProxy.TradeType.Booth)
|
|
end, _itemInfo)
|
|
end
|
|
|
|
function BoothBuyInfoView:HandleSelect(cell)
|
|
local data = cell.data
|
|
if data then
|
|
self.tipData.itemdata = data
|
|
self:ShowItemTip(self.tipData, cell.itemcell.icon, NGUIUtil.AnchorSide.Right, {220,0})
|
|
end
|
|
end |