751 lines
25 KiB
Plaintext
751 lines
25 KiB
Plaintext
autoImport('UITableListCtrl')
|
|
autoImport('UIModelMonthlyVIP')
|
|
autoImport('UIModelZenyShop')
|
|
autoImport('UIListItemViewControllerVIPDescription')
|
|
autoImport('UIListItemModelVIPDescription')
|
|
autoImport('UIListItemViewControllerItem')
|
|
autoImport('UIPriceDiscount')
|
|
autoImport('FunctionADBuiltInTyrantdb')
|
|
autoImport('FuncZenyShop')
|
|
autoImport('PurchaseDeltaTimeLimit')
|
|
|
|
UISubViewControllerMonthlyVIP = class('UISubViewControllerMonthlyVIP', SubView)
|
|
|
|
UISubViewControllerMonthlyVIP.instance = nil
|
|
|
|
local gReusableTable = {}
|
|
|
|
function UISubViewControllerMonthlyVIP:Init()
|
|
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnExit()
|
|
self:CancelListenServerResponse()
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:MyInit()
|
|
UISubViewControllerMonthlyVIP.instance = self
|
|
|
|
self.gameObject = self:LoadPreferb('view/UISubViewMonthlyVIP', nil, true)
|
|
self:GetGameObjects()
|
|
self:RegisterButtonClickEvent()
|
|
self:RegisterClickEvent()
|
|
|
|
self:GetModelSet()
|
|
FuncZenyShop.Instance():AddProductPurchase(self.monthlyVIPShopItemConf.ProductID, function ()
|
|
self:OnClickForButtonPurchaseCard(0)
|
|
end)
|
|
EventManager.Me():PassEvent(ZenyShopEvent.CanPurchase, self.monthlyVIPShopItemConf.ProductID)
|
|
for i = 1, #self.epVIPCards do
|
|
local epVIPCard = self.epVIPCards[i]
|
|
local productConfID = epVIPCard.id2
|
|
if(productConfID == nil or productConfID == 0)then
|
|
productConfID = epVIPCard.id1;
|
|
end
|
|
local productID = Table_Deposit[productConfID].ProductID
|
|
FuncZenyShop.Instance():AddProductPurchase(productID, function ()
|
|
self:OnClickForButtonPurchaseCard(i)
|
|
end)
|
|
EventManager.Me():PassEvent(ZenyShopEvent.CanPurchase, productID)
|
|
end
|
|
|
|
self.showCardIndex = 0
|
|
self.showContentIndex = 1
|
|
self:LoadView()
|
|
self:ListenServerResponse()
|
|
self.isInit = true
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:GetVipCardId(card)
|
|
if(card == nil)then
|
|
return nil;
|
|
end
|
|
if(card.id2 ~= nil and card.id2 ~= 0)then
|
|
return card.id2;
|
|
end
|
|
return card.id1;
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:GetGameObjects()
|
|
self.goMonthlyVIPDesp = self:FindGO('MonthlyVIPDesp', self.gameObject)
|
|
self.goDescriptionsList = self:FindGO('DescriptionsList', self.goMonthlyVIPDesp)
|
|
self.goDescriptionsRoot = self:FindGO('DescriptionsRoot', self.goMonthlyVIPDesp)
|
|
self.goListArrow = self:FindGO('Arrow', self.goMonthlyVIPDesp)
|
|
self.goCard = self:FindGO('Card', self.gameObject)
|
|
self.texCard = self.goCard:GetComponent(UITexture)
|
|
self.goBoardM = self:FindGO('Board_MonthlyVIPCard', self.gameObject)
|
|
self.goBoardE = self:FindGO('Board_EPVIPCard', self.gameObject)
|
|
self.goBoard1E = self:FindGO('Board1_EPVIPCard', self.gameObject)
|
|
self.goValidTime = self:FindGO('ValidTime', self.gameObject)
|
|
self:Hide(self.goValidTime)-- 廢棄
|
|
-- self.goLabValidTime = self:FindGO('Lab', self.goValidTime)
|
|
-- self.labValidTime = self.goLabValidTime:GetComponent(UILabel)
|
|
self.goBTNPurchaseMonthlyVIP = self:FindGO('BTN_Purchase', self.gameObject)
|
|
self.goBTNTitlePurchaseMonthlyVIP = self:FindGO('Title', self.goBTNPurchaseMonthlyVIP)
|
|
self.labBTNTitlePurchaseMonthlyVIP = self.goBTNTitlePurchaseMonthlyVIP:GetComponent(UILabel)
|
|
|
|
self.goTip = self:FindGO('Tip', self.gameObject)
|
|
self.goExpirationTime = self:FindGO('ExpirationTime', self.gameObject)
|
|
self.labExpirationTime = self.goExpirationTime:GetComponent(UILabel)
|
|
self.goYearAndMonth = self:FindGO('YearAndMonth', self.gameObject)
|
|
self.goLabYear = self:FindGO('Year', self.goYearAndMonth)
|
|
self.labYear = self.goLabYear:GetComponent(UILabel)
|
|
self.goMonth = self:FindGO('Month', self.goYearAndMonth)
|
|
self.goLabMonth = self:FindGO('Lab', self.goMonth)
|
|
self.labMonth = self.goLabMonth:GetComponent(UILabel)
|
|
self.goEPVIPReward = self:FindGO('EPVIPReward', self.gameObject)
|
|
self.goRewardList = self:FindGO('ItemsList', self.goEPVIPReward)
|
|
self.goRewardRoot = self:FindGO('ItemsRoot', self.goEPVIPReward)
|
|
self.goBTN_LeftPage = self:FindGO('BTN_LeftPage', self.gameObject)
|
|
self.goBGBTN_LeftPage = self:FindGO('BG', self.goBTN_LeftPage)
|
|
self.goBTN_RightPage = self:FindGO('BTN_RightPage', self.gameObject)
|
|
self.goBGBTN_RightPage = self:FindGO('BG', self.goBTN_RightPage)
|
|
self.goBCForScrollDesp = self:FindGO('BCForScroll', self.goMonthlyVIPDesp)
|
|
self.goBCForScrollReward = self:FindGO('BCForScroll', self.goEPVIPReward)
|
|
self.goEPNumber = self:FindGO('EPNumber', self.goBoard1E)
|
|
self.labEP = self.goEPNumber:GetComponent(UILabel)
|
|
|
|
self.goDiscount = self:FindGO('Discount')
|
|
self.goPercent = self:FindGO('Percent', self.goDiscount)
|
|
self.spPercentBG = self:FindGO('BG', self.goPercent):GetComponent(UISprite)
|
|
self.labPercent = self:FindGO('Value1', self.goPercent):GetComponent(UILabel)
|
|
self.labPercentSymbol = self:FindGO('Value2', self.goPercent):GetComponent(UILabel)
|
|
|
|
self.goOriginPrice = self:FindGO('OriginPrice')
|
|
self.labOriginPrice = self:FindGO('Lab', self.goOriginPrice):GetComponent(UILabel)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:RegisterButtonClickEvent()
|
|
self:AddClickEvent(self.goBTNPurchaseMonthlyVIP, function ()
|
|
self:OnClickForButtonPurchaseCard()
|
|
end)
|
|
self:AddClickEvent(self.goBGBTN_LeftPage, function ()
|
|
self:OnClickForButtonLeftPage()
|
|
end)
|
|
self:AddClickEvent(self.goBGBTN_RightPage, function ()
|
|
self:OnClickForButtonRightPage()
|
|
end)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:RegisterClickEvent()
|
|
self:AddClickEvent(self.goCard, function ()
|
|
self:OnClickForViewCard()
|
|
end)
|
|
self:AddClickEvent(self.goBCForScrollDesp, function ()
|
|
self:ShowCard(self.showCardIndex)
|
|
end)
|
|
self:AddClickEvent(self.goBCForScrollReward, function ()
|
|
self:ShowCard(self.showCardIndex)
|
|
end)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:GetModelSet()
|
|
for _, v in pairs(Table_Deposit) do
|
|
if v.Type == 2 then
|
|
self.monthlyVIPShopItemConf = v
|
|
break
|
|
end
|
|
end
|
|
|
|
self.epVIPCards = UIModelZenyShop.Ins():GetEPVIPCards()
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:GetMonthCardConfigure()
|
|
local year = UIModelMonthlyVIP.YearOfServer(-18000)
|
|
local month = UIModelMonthlyVIP.MonthOfServer(-18000)
|
|
for _, v in pairs(Table_MonthCard) do
|
|
if v.Year == year and v.Month == month then
|
|
return v
|
|
end
|
|
end
|
|
return nil
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:LoadView()
|
|
if self.showContentIndex == 1 or self.showContentIndex == 3 then
|
|
self:ShowCard(self.showCardIndex)
|
|
elseif self.showContentIndex == 2 then
|
|
self:ShowMonthlyVIPDesp()
|
|
elseif self.showContentIndex == 4 then
|
|
self:ShowEPVIPReward()
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:SetActive_Card(b)
|
|
self.goCard:SetActive(b)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:SetActive_MonthlyVIPDesp(b)
|
|
self.goMonthlyVIPDesp:SetActive(b)
|
|
self.goBoardM:SetActive(b)
|
|
self.goYearAndMonth:SetActive(b)
|
|
-- self.goValidTime:SetActive(b)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:SetActive_EPVIPReward(b)
|
|
self.goEPVIPReward:SetActive(b)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:SetActive_EPBoard(b)
|
|
self.goBoard1E:SetActive(b)
|
|
self.goBoardE:SetActive(b)
|
|
self.goEPNumber:SetActive(b)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:SetActive_ExpirationTime(b)
|
|
self.goExpirationTime:SetActive(b)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:SetActive_Discount(b)
|
|
self.goDiscount:SetActive(b)
|
|
self.goOriginPrice:SetActive(b)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:ShowCard(show_index)
|
|
self:SetActive_MonthlyVIPDesp(false)
|
|
self:SetActive_EPVIPReward(false)
|
|
self:SetActive_Card(true)
|
|
if show_index == 0 then
|
|
self:SetActive_EPBoard(false)
|
|
self:SetActive_ExpirationTime(true)
|
|
self:ShowMonthlyVIPTime()
|
|
local monthCardConfigure = self:GetMonthCardConfigure()
|
|
PictureManager.Instance:SetMonthCardUI(monthCardConfigure.Picture, self.texCard)
|
|
self.labBTNTitlePurchaseMonthlyVIP.text = self:GetPriceString(self.monthlyVIPShopItemConf.Rmb)
|
|
self:SetActive_Discount(false)
|
|
self.showContentIndex = 1
|
|
else
|
|
self:SetActive_EPBoard(true)
|
|
self:SetActive_ExpirationTime(false)
|
|
self:SetPurchaseBTNPos(true)
|
|
local ep = self.epVIPCards[show_index].version
|
|
self.labEP.text = 'EP ' .. ep
|
|
if math.floor(ep) == ep then
|
|
self.labEP.text = 'EP ' .. ep .. '.0'
|
|
end
|
|
self.epCardConf = Table_Deposit[self.epVIPCards[show_index].id1]
|
|
PictureManager.Instance:SetEPCardUI(self.epCardConf.Picture, self.texCard)
|
|
if self:IsDiscount() then
|
|
self.discountEPCardConf = Table_Deposit[self.epVIPCards[show_index].id2]
|
|
self.labBTNTitlePurchaseMonthlyVIP.text = self:GetPriceString(self.discountEPCardConf.Rmb)
|
|
self.labOriginPrice.text = ZhString.HappyShop_originalCost .. self:GetPriceString(self.epCardConf.Rmb)
|
|
local percent = math.ceil(self.discountEPCardConf.Rmb * 100 / self.epCardConf.Rmb)
|
|
UIPriceDiscount.SetDiscount(percent, self.spPercentBG, self.labPercent, self.labPercentSymbol)
|
|
else
|
|
self.labBTNTitlePurchaseMonthlyVIP.text = self:GetPriceString(self.epCardConf.Rmb)
|
|
end
|
|
self.showContentIndex = 3
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:ShowMonthlyVIPDesp(show_index)
|
|
self:SetActive_MonthlyVIPDesp(true)
|
|
self:SetActive_EPVIPReward(false)
|
|
self:SetActive_Card(false)
|
|
self:SetActive_EPBoard(false)
|
|
if self.listControllerOfVIPDescriptions == nil then
|
|
self.listControllerOfVIPDescriptions = UITableListCtrl.new(self.goDescriptionsRoot, 'ZenyShop', 1)
|
|
self.listControllerOfVIPDescriptions.scrollView.onMomentumMove = function ()
|
|
if self.listControllerOfVIPDescriptions.scrollView.verticalScrollBar.value >= 1 then
|
|
self.goListArrow:SetActive(false)
|
|
else
|
|
self.goListArrow:SetActive(true)
|
|
end
|
|
end
|
|
TableUtility.TableClear(gReusableTable)
|
|
gReusableTable['cellType'] = 'VIPDescription'
|
|
gReusableTable['cellName'] = 'UIListItemMonthlyVIPDescription'
|
|
gReusableTable['control'] = UIListItemViewControllerVIPDescription
|
|
self.listControllerOfVIPDescriptions:SetType(gReusableTable)
|
|
local monthlyVIPInfosForUITableListCtrl = {}
|
|
local dynamicVIPDescription = nil
|
|
for _, v in pairs(GameConfig.DepositCard) do
|
|
if v.type1 == 2 then
|
|
dynamicVIPDescription = v.funcs
|
|
break
|
|
end
|
|
end
|
|
for k, _ in pairs(Table_DepositFunction) do
|
|
local vipDescriptionConfID = k
|
|
if table.ContainsValue(dynamicVIPDescription, vipDescriptionConfID) then
|
|
local uiListItemModelVIPDescription = UIListItemModelVIPDescription.new()
|
|
uiListItemModelVIPDescription:SetDescriptionConfigID(vipDescriptionConfID)
|
|
table.insert(monthlyVIPInfosForUITableListCtrl, uiListItemModelVIPDescription)
|
|
end
|
|
end
|
|
self.listControllerOfVIPDescriptions:UpdateInfo(monthlyVIPInfosForUITableListCtrl, false)
|
|
end
|
|
|
|
self.listControllerOfVIPDescriptions:ResetPosition()
|
|
self:ShowMonthlyVIPTime()
|
|
self.showContentIndex = 2
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:ShowEPVIPReward()
|
|
self:SetActive_Card(false)
|
|
-- self:SetActive_MonthlyVIPDesp(false)
|
|
self:SetActive_EPVIPReward(true)
|
|
-- self:SetActive_EPBoard(true)
|
|
if self.listControllerOfReward == nil then
|
|
self.uiGridOfReward = self.goRewardRoot:GetComponent(UIGrid)
|
|
self.listControllerOfReward = UIGridListCtrl.new(self.uiGridOfReward, UIListItemViewControllerItem, 'UIListItemItem')
|
|
|
|
self.scrollViewReward = self.goRewardList:GetComponent(UIScrollView)
|
|
end
|
|
|
|
local items = nil
|
|
local useItemID = self.epCardConf.ItemId
|
|
local team = Table_UseItem[useItemID].UseEffect.id -- team in reward.xlsx
|
|
local items = ItemUtil.GetRewardItemIdsByTeamId(team)
|
|
if(items)then
|
|
self.listControllerOfReward:ResetDatas(items)
|
|
self.itemsController = self.listControllerOfReward:GetCells()
|
|
|
|
self.scrollViewReward:ResetPosition()
|
|
self.showContentIndex = 4
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:ShowMonthlyVIPTime()
|
|
local year = UIModelMonthlyVIP.YearOfServer(-18000)
|
|
local month = UIModelMonthlyVIP.MonthOfServer(-18000)
|
|
self.labYear.text = tostring(year)
|
|
if month < 10 then
|
|
self.labMonth.text = '0' .. tostring(month)
|
|
else
|
|
self.labMonth.text = tostring(month)
|
|
end
|
|
local expirationTime = UIModelMonthlyVIP.Instance():Get_TimeOfExpirationMonthlyVIP()
|
|
if expirationTime ~= nil then
|
|
expirationTime = expirationTime - 18001
|
|
local year = UIModelMonthlyVIP.YearOfUnixTimestamp(expirationTime)
|
|
local month = UIModelMonthlyVIP.MonthOfUnixTimestamp(expirationTime)
|
|
local day = UIModelMonthlyVIP.DayOfUnixTimestamp(expirationTime)
|
|
-- local hour = UIModelMonthlyVIP.HourOfUnixTimestamp(expirationTime)
|
|
-- local minute = UIModelMonthlyVIP.MinuteOfUnixTimestamp(expirationTime)
|
|
-- local second = UIModelMonthlyVIP.SecondOfUnixTimestamp(expirationTime)
|
|
self.labExpirationTime.text = string.format(ZhString.MouthCard_End, year, month, day)
|
|
self:SetPurchaseBTNPos(false)
|
|
else
|
|
self.labExpirationTime.text = ''
|
|
end
|
|
-- local isLeapYear = ((math.CalculateRemainder(year, 4) == 0) and
|
|
-- (math.CalculateRemainder(year, 100) ~= 0))
|
|
-- isLeapYear = isLeapYear or (math.CalculateRemainder(year, 400) == 0)
|
|
-- local validDays = 0
|
|
-- if month == 2 then
|
|
-- if isLeapYear then
|
|
-- validDays = 29
|
|
-- else
|
|
-- validDays = 28
|
|
-- end
|
|
-- elseif month == 4 or month == 6 or month == 9 or month == 11 then
|
|
-- validDays = 30
|
|
-- else
|
|
-- validDays = 31
|
|
-- end
|
|
-- self.labValidTime.text = string.format(ZhString.EndlessTower_refreshDay, validDays)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:SetPurchaseBTNPos(b)
|
|
local xValue = nil
|
|
if b then
|
|
xValue = 117
|
|
else
|
|
xValue = 135
|
|
end
|
|
local posOfBTN = self.goBTNPurchaseMonthlyVIP.transform.localPosition
|
|
posOfBTN.x = xValue
|
|
self.goBTNPurchaseMonthlyVIP.transform.localPosition = posOfBTN
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnClickForButtonPurchaseCard(show_card_index)
|
|
local showCardIndex = show_card_index or self.showCardIndex
|
|
helplog("OnClickForButtonPurchaseCard:", self.showCardIndex);
|
|
if showCardIndex == 0 then
|
|
self:RequestChargeQuery(self.monthlyVIPShopItemConf.id)
|
|
elseif showCardIndex > 0 then
|
|
local runtimePlatform = ApplicationInfo.GetRunPlatform()
|
|
if runtimePlatform == RuntimePlatform.IPhonePlayer then
|
|
if BackwardCompatibilityUtil.CompatibilityMode_V17 then
|
|
MsgManager.ConfirmMsgByID(
|
|
3555,
|
|
function ()
|
|
AppBundleConfig.JumpToIOSAppStore()
|
|
end,
|
|
nil
|
|
)
|
|
return
|
|
end
|
|
end
|
|
|
|
self:RequestQueryChargeCnt()
|
|
local card = self.epVIPCards[showCardIndex]
|
|
self.queryChargeAndPurchaseID = self:GetVipCardId(card);
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnClickForButtonLeftPage()
|
|
if self.epVIPCards ~= nil then
|
|
if self.showCardIndex <= 0 then
|
|
self.showCardIndex = #self.epVIPCards
|
|
else
|
|
self.showCardIndex = self.showCardIndex - 1
|
|
end
|
|
self:ShowCard(self.showCardIndex)
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnClickForButtonRightPage()
|
|
if self.epVIPCards ~= nil then
|
|
if self.showCardIndex >= #self.epVIPCards then
|
|
self.showCardIndex = 0
|
|
else
|
|
self.showCardIndex = self.showCardIndex + 1
|
|
end
|
|
self:ShowCard(self.showCardIndex)
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnClickForViewCard()
|
|
if self.showContentIndex == 1 then
|
|
self:ShowMonthlyVIPDesp()
|
|
elseif self.showContentIndex == 3 then
|
|
self:ShowEPVIPReward()
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:ListenServerResponse()
|
|
EventManager.Me():AddEventListener(ServiceEvent.UserEventChargeNtfUserEvent, self.OnReceivePurchaseSuccess, self)
|
|
EventManager.Me():AddEventListener(ServiceEvent.UserEventChargeQueryCmd, self.OnReceiveChargeQuery, self)
|
|
EventManager.Me():AddEventListener(ServiceEvent.UserEventQueryChargeCnt, self.OnReceiveQueryChargeCnt, self)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:CancelListenServerResponse()
|
|
EventManager.Me():RemoveEventListener(ServiceEvent.UserEventChargeNtfUserEvent, self.OnReceivePurchaseSuccess, self)
|
|
EventManager.Me():RemoveEventListener(ServiceEvent.UserEventChargeQueryCmd, self.OnReceiveChargeQuery, self)
|
|
EventManager.Me():RemoveEventListener(ServiceEvent.UserEventQueryChargeCnt, self.OnReceiveQueryChargeCnt, self)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:RequestChargeQuery(shop_item_conf_id)
|
|
ServiceUserEventProxy.Instance:CallChargeQueryCmd(shop_item_conf_id)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:RequestQueryChargeCnt()
|
|
ServiceUserEventProxy.Instance:CallQueryChargeCnt()
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnReceiveChargeQuery(data)
|
|
if self.monthlyVIPShopItemConf ~= nil then
|
|
if data.data_id == self.monthlyVIPShopItemConf.id then
|
|
if data.ret then
|
|
if PurchaseDeltaTimeLimit.Instance():IsEnd(self.monthlyVIPShopItemConf.ProductID) then
|
|
self:Purchase()
|
|
|
|
local interval = GameConfig.PurchaseMonthlyVIP.interval / 1000
|
|
PurchaseDeltaTimeLimit.Instance():Start(self.monthlyVIPShopItemConf.ProductID, interval)
|
|
else
|
|
MsgManager.ShowMsgByID(49)
|
|
end
|
|
else
|
|
local purchaseLimit = self.monthlyVIPShopItemConf.MonthLimit
|
|
local tabFormatParams = {purchaseLimit}
|
|
MsgManager.ShowMsgByIDTable(2645, tabFormatParams)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnReceivePurchaseSuccess(message)
|
|
local messageContent = message
|
|
local confID = messageContent.dataid
|
|
if confID and confID > 0 then
|
|
local conf = Table_Deposit[confID]
|
|
if conf.Type == 2 then
|
|
PurchaseDeltaTimeLimit.Instance():End(conf.ProductID)
|
|
elseif conf.Type == 5 then
|
|
PurchaseDeltaTimeLimit.Instance():End(conf.ProductID)
|
|
end
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnReceiveQueryChargeCnt(data)
|
|
if self.queryChargeAndPurchaseID ~= nil then
|
|
local purchaseTimes = 0
|
|
local info = data.info
|
|
for i = 1, #info do
|
|
local purchaseInfo = info[i]
|
|
local productConfID = purchaseInfo.dataid
|
|
if productConfID == self.queryChargeAndPurchaseID then
|
|
purchaseTimes = purchaseInfo.count
|
|
end
|
|
end
|
|
local productConf = Table_Deposit[self.queryChargeAndPurchaseID]
|
|
if purchaseTimes < productConf.MonthLimit then
|
|
if PurchaseDeltaTimeLimit.Instance():IsEnd(productConf.ProductID) then
|
|
self:Purchase()
|
|
|
|
local interval = GameConfig.PurchaseMonthlyVIP.interval / 1000
|
|
PurchaseDeltaTimeLimit.Instance():Start(productConf.ProductID, interval)
|
|
else
|
|
MsgManager.ShowMsgByID(49)
|
|
end
|
|
else
|
|
local tabFormatParams = {productConf.MonthLimit}
|
|
MsgManager.ShowMsgByIDTable(2645, tabFormatParams)
|
|
end
|
|
self.queryChargeAndPurchaseID = nil
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:IsDiscount()
|
|
local retValue = false
|
|
if self.showCardIndex > 0 then
|
|
local card = self.epVIPCards[self.showCardIndex]
|
|
retValue = card.id2 > 0
|
|
|
|
if(card.id2 == card.id1)then
|
|
retValue = false;
|
|
end
|
|
end
|
|
self:SetActive_Discount(retValue)
|
|
return retValue
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:GetPriceString(price)
|
|
return '¥ ' .. FuncZenyShop.FormatMilComma(price)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:Purchase()
|
|
local productConf = nil
|
|
if self.showCardIndex == 0 then
|
|
productConf = self.monthlyVIPShopItemConf
|
|
else
|
|
local card = self.epVIPCards[self.showCardIndex]
|
|
local confID = self:GetVipCardId(card);
|
|
productConf = Table_Deposit[confID]
|
|
end
|
|
local productID = productConf.ProductID
|
|
if productID then
|
|
local productName = productConf.Desc
|
|
local productPrice = productConf.Rmb
|
|
local productCount = 1
|
|
local roleID = Game.Myself and (Game.Myself.data and Game.Myself.data.id or nil) or nil
|
|
if roleID then
|
|
local roleInfo = ServiceUserProxy.Instance:GetRoleInfoById(roleID)
|
|
local roleName = roleInfo and roleInfo.name or ''
|
|
local roleGrade = MyselfProxy.Instance:RoleLevel() or 0
|
|
local roleBalance = MyselfProxy.Instance:GetROB() or 0
|
|
local server = FunctionLogin.Me():getCurServerData()
|
|
local serverID = (server ~= nil) and server.serverid or nil
|
|
if serverID then
|
|
local currentServerTime = ServerTime.CurServerTime() / 1000
|
|
local runtimePlatform = ApplicationInfo.GetRunPlatform()
|
|
if runtimePlatform == RuntimePlatform.Android and not BackwardCompatibilityUtil.CompatibilityMode(BackwardCompatibilityUtil.V13) then
|
|
TableUtility.TableClear(gReusableTable)
|
|
gReusableTable['productGameID'] = tostring(productConf.id)
|
|
gReusableTable['serverID'] = tostring(serverID)
|
|
gReusableTable['payCallbackCode'] = 1
|
|
local ext = json.encode(gReusableTable)
|
|
FunctionXDSDK.Ins:Pay(
|
|
productName,
|
|
productID,
|
|
productPrice * 100,
|
|
serverID,
|
|
tostring(roleID),
|
|
"", -- order id
|
|
ext,
|
|
function (x)
|
|
self:OnPaySuccess(x)
|
|
end,
|
|
function (x)
|
|
self:OnPayFail(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayCancel(productID, x)
|
|
end
|
|
)
|
|
else
|
|
if FunctionSDK.Instance.CurrentType == FunctionSDK.E_SDKType.Any then
|
|
if not BackwardCompatibilityUtil.CompatibilityMode(BackwardCompatibilityUtil.V8) then
|
|
FunctionSDK.Instance:ResetPayState()
|
|
end
|
|
TableUtility.TableClear(gReusableTable)
|
|
gReusableTable['productGameID'] = productConf.id
|
|
local custom = json.encode(gReusableTable)
|
|
FunctionSDK.Instance:AnySDKPay(
|
|
productID,
|
|
productName,
|
|
productPrice,
|
|
productCount,
|
|
tostring(roleID),
|
|
roleName,
|
|
roleGrade,
|
|
roleBalance,
|
|
tostring(serverID),
|
|
custom,
|
|
function (x)
|
|
self:OnPaySuccess(x)
|
|
end,
|
|
function (x)
|
|
self:OnPayFail(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayTimeout(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayCancel(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayProductIllegal(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayPaying(x)
|
|
end
|
|
)
|
|
elseif FunctionSDK.Instance.CurrentType == FunctionSDK.E_SDKType.XD then
|
|
TableUtility.TableClear(gReusableTable)
|
|
gReusableTable['productGameID'] = tostring(productConf.id)
|
|
gReusableTable['serverID'] = tostring(serverID)
|
|
local ext = json.encode(gReusableTable)
|
|
if not BackwardCompatibilityUtil.CompatibilityMode_V17 then
|
|
local roleAndServerTime = roleID .. '_' .. currentServerTime
|
|
self.orderIDOfXDSDKPay = MyMD5.HashString(roleAndServerTime)
|
|
FunctionSDK.Instance:XDSDKPay(
|
|
productPrice * 100,
|
|
tostring(serverID),
|
|
productID,
|
|
productName,
|
|
tostring(roleID),
|
|
ext,
|
|
productCount,
|
|
self.orderIDOfXDSDKPay,
|
|
function (x)
|
|
self:OnPaySuccess(x)
|
|
end,
|
|
function (x)
|
|
self:OnPayFail(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayTimeout(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayCancel(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayProductIllegal(productID, x)
|
|
end
|
|
)
|
|
elseif not BackwardCompatibilityUtil.CompatibilityMode(BackwardCompatibilityUtil.V6) then
|
|
self.orderIDOfXDSDKPay = FunctionSDK.Instance:XDSDKPay(
|
|
productPrice * 100,
|
|
tostring(serverID),
|
|
productID,
|
|
productName,
|
|
tostring(roleID),
|
|
ext,
|
|
productCount,
|
|
function (x)
|
|
self:OnPaySuccess(x)
|
|
end,
|
|
function (x)
|
|
self:OnPayFail(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayTimeout(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayCancel(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayProductIllegal(productID, x)
|
|
end
|
|
)
|
|
else
|
|
Debug.Log('<debug!!!>before XDSDKPay')
|
|
FunctionSDK.Instance:XDSDKPay(
|
|
productPrice * 100,
|
|
tostring(serverID),
|
|
productID,
|
|
productName,
|
|
tostring(roleID),
|
|
ext,
|
|
productCount,
|
|
function (x)
|
|
self:OnPaySuccess(x)
|
|
end,
|
|
function (x)
|
|
self:OnPayFail(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayTimeout(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayCancel(productID, x)
|
|
end,
|
|
function (x)
|
|
self:OnPayProductIllegal(productID, x)
|
|
end
|
|
)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnPaySuccess(str_result)
|
|
local str_result = x or 'nil'
|
|
LogUtility.Info('UIViewControllerZenyShop:OnPaySuccess, ' .. str_result)
|
|
|
|
if not BackwardCompatibilityUtil.CompatibilityMode(BackwardCompatibilityUtil.V6) then
|
|
local runtimePlatform = ApplicationInfo.GetRunPlatform()
|
|
if runtimePlatform == RuntimePlatform.IPhonePlayer then
|
|
if self.orderIDOfXDSDKPay ~= nil then
|
|
FunctionADBuiltInTyrantdb.Instance():ChargeTo3rd(self.orderIDOfXDSDKPay, self.monthlyVIPShopItemConf.Rmb)
|
|
end
|
|
elseif runtimePlatform == RuntimePlatform.Android then
|
|
if not BackwardCompatibilityUtil.CompatibilityMode(BackwardCompatibilityUtil.V13) then
|
|
-- "" is orderID
|
|
FunctionADBuiltInTyrantdb.Instance():ChargeTo3rd("", self.monthlyVIPShopItemConf.Rmb)
|
|
else
|
|
local orderID = FunctionSDK.Instance:GetOrderID()
|
|
FunctionADBuiltInTyrantdb.Instance():ChargeTo3rd(orderID, self.monthlyVIPShopItemConf.Rmb)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnPayFail(product_id, str_result)
|
|
local strResult = str_result or 'nil'
|
|
LogUtility.Info('UIViewControllerZenyShop:OnPayFail, ' .. strResult)
|
|
|
|
PurchaseDeltaTimeLimit.Instance():End(product_id)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnPayTimeout(product_id, str_result)
|
|
local strResult = str_result or 'nil'
|
|
LogUtility.Info('UIViewControllerZenyShop:OnPayTimeout, ' .. strResult)
|
|
|
|
PurchaseDeltaTimeLimit.Instance():End(product_id)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnPayCancel(product_id, str_result)
|
|
local strResult = str_result or 'nil'
|
|
LogUtility.Info('UIViewControllerZenyShop:OnPayCancel, ' .. strResult)
|
|
|
|
PurchaseDeltaTimeLimit.Instance():End(product_id)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnPayProductIllegal(product_id, str_result)
|
|
local strResult = str_result or 'nil'
|
|
LogUtility.Info('UIViewControllerZenyShop:OnPayProductIllegal, ' .. strResult)
|
|
|
|
PurchaseDeltaTimeLimit.Instance():End(product_id)
|
|
end
|
|
|
|
function UISubViewControllerMonthlyVIP:OnPayPaying(str_result)
|
|
local strResult = str_result or 'nil'
|
|
LogUtility.Info('UIViewControllerZenyShop:OnPayPaying, ' .. strResult)
|
|
end |