WalletShopData.lua 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. local WalletShopData = class("WalletShopData", require("DataBase"))
  2. local ProtocalDataNormal = require("ProtocalDataNormal")
  3. function WalletShopData:ctor()
  4. self.walletData = nil
  5. end
  6. function deepPrint(t, indentLevel)
  7. indentLevel = indentLevel or 0
  8. local indent = ""
  9. for i = 1, indentLevel do
  10. indent = indent .. " "
  11. end
  12. local str = ""
  13. if type(t) == "table" then
  14. for k, v in pairs(t) do
  15. str = str .. indent .. "Key: " .. tostring(k) .. " - Value: "
  16. str= str .. deepPrint(v, indentLevel + 1)
  17. end
  18. else
  19. str= str .. indent .. tostring(t)
  20. end
  21. return str
  22. end
  23. function WalletShopData:RegisterNetEvents()
  24. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_RUNE_BASE_DATA_NTF,self.RefreshWalletData,self)
  25. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_BT_SHOP_INFO_ACK,self.RefreshWalletShopAllItemData,self)
  26. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_CREDIT_RECHARGE_SHOP_ITEM_BUY_ACK, function(data)
  27. --购买商品信息返回
  28. --LogError(deepPrint(data))
  29. if data.error == 0 then
  30. --发消息刷新界面
  31. --LogError("====================SC_CREDIT_RECHARGE_SHOP_ITEM_BUY_ACK========error = 0===============")
  32. if data.shop_item then
  33. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.WALLETSHOP_SHOWREWARD,data.shop_item.goods_id)
  34. self:RefreshWalletShopItemData(data.shop_item)
  35. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.WALLETSHOP_REFRESH,data)
  36. end
  37. end
  38. end)
  39. end
  40. function WalletShopData:UnRegisterNetEvents()
  41. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_CREDIT_RECHARGE_SHOP_ITEM_BUY_ACK)
  42. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_RUNE_BASE_DATA_NTF)
  43. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_BT_SHOP_INFO_ACK)
  44. end
  45. function WalletShopData:GetWalletShopData()
  46. return self.walletShopData
  47. end
  48. function WalletShopData:GetWalletShopDataById(id)
  49. return self.walletShopData and self.walletShopData[id]
  50. end
  51. function WalletShopData:GetWalletData()
  52. return self.walletData
  53. end
  54. function WalletShopData:GetCurUseCredit()
  55. return self.walletData and self.walletData.use_credit or 0
  56. end
  57. function WalletShopData:GetMaxUseCredit()
  58. return self.walletData and self.walletData.max_credit or 0
  59. end
  60. function WalletShopData:GetCreditLimit()
  61. return self.walletData and self.walletData.creditLimit or false
  62. end
  63. function WalletShopData:GetEndTime()
  64. return self.endTime or 0
  65. end
  66. function WalletShopData:RefreshWalletData(data)
  67. if not self.walletData then
  68. self.walletData = {}
  69. end
  70. if data.rune_base_data then
  71. self.walletData.use_credit = data.rune_base_data.used_credit_recharge --每日当前使用额度
  72. self.walletData.max_credit = data.rune_base_data.max_credit_recharge --每日最大额度
  73. self.walletData.creditLimit = data.rune_base_data.credit_recharge_limit --是否无额度无上限
  74. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.WALLETSHOPCREDIT_REFRESH)
  75. end
  76. end
  77. function WalletShopData:RefreshWalletShopItemData(data)
  78. --LogError("============================RefreshWalletShopItemData==================")
  79. if not data then
  80. return
  81. end
  82. if not self.walletShopData then
  83. self.walletShopData = {}
  84. end
  85. self.walletShopData[data.goods_id] = data
  86. end
  87. function WalletShopData:RefreshWalletShopAllItemData(data)
  88. --LogError("============================RefreshWalletShopItemData====== r sc============")
  89. if not data.goods_list then
  90. return
  91. end
  92. self.endTime = data.end_time
  93. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.WALLETSHOP_ENDTIME_REFRESH)
  94. if not self.walletShopData then
  95. self.walletShopData = {}
  96. end
  97. for k, v in pairs(data.goods_list) do
  98. self.walletShopData[v.goods_id] = v
  99. end
  100. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.WALLETSHOP_REFRESH)
  101. end
  102. function WalletShopData:SendWalletShopInfoReq()
  103. --LogError("============================SendWalletShopInfoReq==== send ==============")
  104. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_BT_SHOP_INFO_REQ, {shop_type = 100}) --充钱钱包商店类型
  105. end
  106. function WalletShopData:SendWalletShopItemBuyReq(id,num)
  107. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_CREDIT_RECHARGE_SHOP_ITEM_BUY_REQ, {goods_id = id,count = 1})
  108. end
  109. function WalletShopData:Clear()
  110. self.walletData = nil
  111. self.walletShopData = nil
  112. end
  113. function WalletShopData:Destroy()
  114. if self.Clear then
  115. self:Clear()
  116. end
  117. self:UnRegisterNetEvents()
  118. end
  119. return WalletShopData