每日特惠
This commit is contained in:
parent
aec28d95e8
commit
58de179979
@ -69,7 +69,10 @@ BIReport.ITEM_GET_TYPE = {
|
|||||||
BOUNTY = "Bounty",
|
BOUNTY = "Bounty",
|
||||||
IDLE_DROP = "IdleDrop",
|
IDLE_DROP = "IdleDrop",
|
||||||
IDLE_QUICK_DROP = "IdleQuickDrop",
|
IDLE_QUICK_DROP = "IdleQuickDrop",
|
||||||
MAIL = "Mail"
|
MAIL = "Mail",
|
||||||
|
MALL = "Mall",
|
||||||
|
MALL_DAILY = "MallDaily", -- 每日特惠
|
||||||
|
MALL_DAILY_RESET = "MallDailyReset",
|
||||||
}
|
}
|
||||||
|
|
||||||
BIReport.ADS_CLICK_TYPE = {
|
BIReport.ADS_CLICK_TYPE = {
|
||||||
|
|||||||
@ -20,7 +20,7 @@ function DataManager:init()
|
|||||||
self:initManager("DailyTaskData", "app/userdata/task/daily_task_data")
|
self:initManager("DailyTaskData", "app/userdata/task/daily_task_data")
|
||||||
self:initManager("IdleData", "app/userdata/idle/idle_data")
|
self:initManager("IdleData", "app/userdata/idle/idle_data")
|
||||||
-- self:initManager("SevenDayData", "app/userdata/activity/seven_day/seven_day_data")
|
-- self:initManager("SevenDayData", "app/userdata/activity/seven_day/seven_day_data")
|
||||||
self:initManager("ShopData", "app/userdata/idle/shop_data")
|
self:initManager("ShopData", "app/userdata/shop/shop_data")
|
||||||
end
|
end
|
||||||
|
|
||||||
function DataManager:initManager(name, path)
|
function DataManager:initManager(name, path)
|
||||||
@ -122,6 +122,7 @@ function DataManager:initWithServerData(data)
|
|||||||
self.DailyTaskData:init(data.task_daily)
|
self.DailyTaskData:init(data.task_daily)
|
||||||
self.IdleData:init(data.idle)
|
self.IdleData:init(data.idle)
|
||||||
-- self.SevenDayData:init(data.SevenDayData)
|
-- self.SevenDayData:init(data.SevenDayData)
|
||||||
|
self.ShopData:initCrossDay()
|
||||||
self.ShopData:initActGift(data.act) -- 礼包购买信息
|
self.ShopData:initActGift(data.act) -- 礼包购买信息
|
||||||
self.ShopData:initMallDaily(data.mall_daily) -- 每日特惠
|
self.ShopData:initMallDaily(data.mall_daily) -- 每日特惠
|
||||||
self.ShopData:initCommonDailyGoldGift(data.mall_idle) -- 常驻金币礼包
|
self.ShopData:initCommonDailyGoldGift(data.mall_idle) -- 常驻金币礼包
|
||||||
|
|||||||
@ -49,6 +49,8 @@ ModuleManager.MODULE_KEY = {
|
|||||||
STORE_BOX_3_OPEN = "store_box_3_open",
|
STORE_BOX_3_OPEN = "store_box_3_open",
|
||||||
BOUNTY_OPEN = "bounty_open",
|
BOUNTY_OPEN = "bounty_open",
|
||||||
IDLE_DROP = "idle_drop",
|
IDLE_DROP = "idle_drop",
|
||||||
|
MALL = "mall", -- 商城
|
||||||
|
MALL_DAILY = "mall_daily", -- 每日商城
|
||||||
}
|
}
|
||||||
|
|
||||||
local _moduleMgrs = {}
|
local _moduleMgrs = {}
|
||||||
|
|||||||
@ -6,32 +6,68 @@ end
|
|||||||
|
|
||||||
-- 购买每日特惠商品
|
-- 购买每日特惠商品
|
||||||
function ShopManager:buyMallDailyGift(id)
|
function ShopManager:buyMallDailyGift(id)
|
||||||
-- TODOJ
|
if not DataManager.ShopData:getMallDailyIsOpen() then
|
||||||
-- if not DataManager.SevenDayData:getIsOpen() then
|
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_OVER_DESC))
|
||||||
-- GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_OVER_DESC))
|
return
|
||||||
-- return
|
end
|
||||||
-- end
|
|
||||||
|
|
||||||
-- if DataManager.SevenDayData:getStepCollected(id) then
|
local params = {id = id}
|
||||||
-- return
|
local rewards, costs = DataManager.ShopData:getMallDailyRewardAndCost(id)
|
||||||
-- end
|
local responseData = {
|
||||||
|
rewards = rewards,
|
||||||
-- if not DataManager.SevenDayData:canClaimStepTask(id) then
|
costs = costs
|
||||||
-- return
|
}
|
||||||
-- end
|
self:sendMessage(ProtoMsgType.FromMsgEnum.BuyMallDailyReq, params, responseData, self.buyMallDailyGiftFinish, BIReport.ITEM_GET_TYPE.MALL_DAILY)
|
||||||
|
|
||||||
-- local params = {id = id}
|
|
||||||
-- local responseData = {
|
|
||||||
-- rewards = {GFunc.getRewardTableByReward(DataManager.SevenDayData:getStepReward(id))},
|
|
||||||
-- Claimed = {
|
|
||||||
-- [id] = true
|
|
||||||
-- }
|
|
||||||
-- }
|
|
||||||
-- self:sendMessage(ProtoMsgType.FromMsgEnum.SevenDayRewardReq, params, responseData, self.claimStepRewardFinish, BIReport.ITEM_GET_TYPE.SEVEN_DAY_STEP_REWARD)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function ShopManager:buyMallDailyGiftFinish(result)
|
function ShopManager:buyMallDailyGiftFinish(result)
|
||||||
-- TODOJ
|
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||||
|
GFunc.addRewards(result.rewards)
|
||||||
|
GFunc.addCosts(result.costs)
|
||||||
|
GFunc.showRewardBox(result.rewards)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 重置每日特惠商品(type 1广告 2钻石)
|
||||||
|
function ShopManager:resetMallDailyGift(type)
|
||||||
|
if not DataManager.ShopData:getMallDailyIsOpen() then
|
||||||
|
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_OVER_DESC))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if type == 2 then -- 钻石刷新
|
||||||
|
if not GFunc.checkCost(GConst.ITEM_ID_GEM, DataManager.ShopData:getMallDailyDiamondResetCost(), true) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local params = {reset_type = type}
|
||||||
|
local responseData = {}
|
||||||
|
if type == 2 then
|
||||||
|
local costs = {type = 1, id = GConst.ITEM_ID_GEM, num = DataManager.ShopData:getMallDailyDiamondResetCost()}
|
||||||
|
responseData.costs = costs
|
||||||
|
end
|
||||||
|
self:sendMessage(ProtoMsgType.FromMsgEnum.MallDailyResetReq, params, responseData, self.resetMallDailyGiftFinish, BIReport.ITEM_GET_TYPE.MALL_DAILY_RESET)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ShopManager:resetMallDailyGiftFinish(result)
|
||||||
|
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||||
|
GFunc.addCosts(result.costs)
|
||||||
|
DataManager.ShopData:initMallDaily(result.mall_daily_info)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 跨天刷新每日商店数据
|
||||||
|
function ShopManager:mallDailyGiftOverDay()
|
||||||
|
local params = {}
|
||||||
|
local responseData = {}
|
||||||
|
self:sendMessage(ProtoMsgType.FromMsgEnum.MallDailyOverDayReq, params, responseData, self.mallDailyGiftOverDayFinish)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ShopManager:mallDailyGiftOverDayFinish(result)
|
||||||
|
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||||
|
DataManager.ShopData:initMallDaily(result.mall_daily_info)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return ShopManager
|
return ShopManager
|
||||||
@ -167,6 +167,14 @@ function MainCityUI:_bind()
|
|||||||
self:bind(DataManager.MailData, "redPoint", function()
|
self:bind(DataManager.MailData, "redPoint", function()
|
||||||
self:refreshSettingBtn()
|
self:refreshSettingBtn()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
self:bind(DataManager.ShopData, "dirty", function()
|
||||||
|
if self.selectedIndex == GConst.MainCityConst.BOTTOM_PAGE.SHOP and self.subComps[self.selectedIndex] then
|
||||||
|
if self.subComps[self.selectedIndex] then
|
||||||
|
self.subComps[self.selectedIndex]:refresh()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
function MainCityUI:initBottomUI()
|
function MainCityUI:initBottomUI()
|
||||||
|
|||||||
@ -19,12 +19,12 @@ function HotCell:init()
|
|||||||
self.sellOutText:setText("已购买TD") -- TODOJ
|
self.sellOutText:setText("已购买TD") -- TODOJ
|
||||||
end
|
end
|
||||||
|
|
||||||
function HotCell:refresh(data, clickCallback)
|
function HotCell:refresh(data)
|
||||||
local id = data.id
|
local id = data.id
|
||||||
local index = data.good_index
|
local index = data.good_index
|
||||||
local bought = data.bought
|
local bought = data.bought
|
||||||
|
|
||||||
local cfgInfo = ConfigManager:getConfig("mall_daily")[id]
|
local cfgInfo = DataManager.ShopData:getMallDailyConfig()[id]
|
||||||
local reward = cfgInfo.good[index]
|
local reward = cfgInfo.good[index]
|
||||||
local cost = cfgInfo.cost[index]
|
local cost = cfgInfo.cost[index]
|
||||||
|
|
||||||
@ -79,11 +79,13 @@ function HotCell:refresh(data, clickCallback)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if clickCallback then
|
|
||||||
self:addClickListener(function()
|
self:addClickListener(function()
|
||||||
clickCallback(cfgInfo.id)
|
self:onClickGift(cfgInfo.id)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function HotCell:onClickGift(id)
|
||||||
|
ModuleManager.ShopManager:buyMallDailyGift(id)
|
||||||
end
|
end
|
||||||
|
|
||||||
function HotCell:setVisible(visible)
|
function HotCell:setVisible(visible)
|
||||||
|
|||||||
@ -53,9 +53,7 @@ function HotSellCell:refresh()
|
|||||||
for i = 1, CELL_COUNT do
|
for i = 1, CELL_COUNT do
|
||||||
if i <= goodsCount then
|
if i <= goodsCount then
|
||||||
self.cells[i]:setVisible(true)
|
self.cells[i]:setVisible(true)
|
||||||
self.cells[i]:refresh(goods[i], function(id)
|
self.cells[i]:refresh(goods[i])
|
||||||
self:onClickGift(id)
|
|
||||||
end)
|
|
||||||
else
|
else
|
||||||
self.cells[i]:setVisible(false)
|
self.cells[i]:setVisible(false)
|
||||||
end
|
end
|
||||||
@ -74,20 +72,16 @@ function HotSellCell:setVisible(visible)
|
|||||||
self.baseObject:setVisible(visible)
|
self.baseObject:setVisible(visible)
|
||||||
end
|
end
|
||||||
|
|
||||||
function HotSellCell:onClickGift(id)
|
|
||||||
Logger.logHighlight("Click id:%s", id) -- TODOJ
|
|
||||||
end
|
|
||||||
|
|
||||||
function HotSellCell:onClickRefresh()
|
function HotSellCell:onClickRefresh()
|
||||||
local freeRefreshCount = DataManager.ShopData:getMallDailyAdLeftCount() -- 免费刷新次数
|
local freeRefreshCount = DataManager.ShopData:getMallDailyAdLeftCount() -- 免费刷新次数
|
||||||
local gemRefreshCount = DataManager.ShopData:getMallDailyDiamondLeftCount() -- 钻石刷新次数
|
local gemRefreshCount = DataManager.ShopData:getMallDailyDiamondLeftCount() -- 钻石刷新次数
|
||||||
local gemRefreshCost = DataManager.ShopData:getMallDailyDiamondResetCost() -- 钻石刷新消耗
|
local gemRefreshCost = DataManager.ShopData:getMallDailyDiamondResetCost() -- 钻石刷新消耗
|
||||||
|
|
||||||
if freeRefreshCount > 0 then
|
if freeRefreshCount > 0 then
|
||||||
-- TODOJ
|
ModuleManager.ShopData:resetMallDailyGift(1)
|
||||||
elseif gemRefreshCount > 0 then
|
elseif gemRefreshCount > 0 then
|
||||||
if GFunc.checkCost(GConst.ItemConst.ITEM_ID_GEM, gemRefreshCost, true) then
|
if GFunc.checkCost(GConst.ItemConst.ITEM_ID_GEM, gemRefreshCost, true) then
|
||||||
-- TODOJ
|
ModuleManager.ShopData:resetMallDailyGift(2)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -124,6 +124,12 @@ function ShopComp:refresh()
|
|||||||
self:refreshTitle()
|
self:refreshTitle()
|
||||||
self:refreshDiscountPage()
|
self:refreshDiscountPage()
|
||||||
self:refreshMainPage()
|
self:refreshMainPage()
|
||||||
|
|
||||||
|
-- 如果已经跨天了 需要重新请求每日礼包数据
|
||||||
|
if DataManager.ShopData:getMallDailyDirty() then
|
||||||
|
DataManager.ShopData:markMallDailyDirty(false)
|
||||||
|
ModuleManager.ShopManager:mallDailyGiftOverDay()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function ShopComp:refreshDiscountPage()
|
function ShopComp:refreshDiscountPage()
|
||||||
|
|||||||
@ -5,6 +5,19 @@ function ShopData:ctor()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function ShopData:clear()
|
function ShopData:clear()
|
||||||
|
|
||||||
|
DataManager:unregisterCrossDayFunc("ShopData")
|
||||||
|
end
|
||||||
|
|
||||||
|
function ShopData:setDirty()
|
||||||
|
self.data.isDirty = not self.data.isDirty
|
||||||
|
end
|
||||||
|
|
||||||
|
function ShopData:initCrossDay()
|
||||||
|
DataManager:registerCrossDayFunc("ShopData", function()
|
||||||
|
self:resetMallDaily()
|
||||||
|
self:setDirty()
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 通用礼包部分 **********************************************************************************************
|
-- 通用礼包部分 **********************************************************************************************
|
||||||
@ -17,7 +30,7 @@ function ShopData:initActGift(act)
|
|||||||
for _, gift in ipairs(self.gifts) do
|
for _, gift in ipairs(self.gifts) do
|
||||||
local giftType = gift.act_type
|
local giftType = gift.act_type
|
||||||
local giftId = gift.id
|
local giftId = gift.id
|
||||||
local buyCount = gift.buy_count
|
local buyCount = gift.buy_count -- 已购次数
|
||||||
local latestBuyTime = gift.latest_buy_at -- 最后一次购买时间
|
local latestBuyTime = gift.latest_buy_at -- 最后一次购买时间
|
||||||
local latestOrderUuid = gift.latest_order_uuid -- 正在支付的订单ID
|
local latestOrderUuid = gift.latest_order_uuid -- 正在支付的订单ID
|
||||||
if not self.giftMap then
|
if not self.giftMap then
|
||||||
@ -28,6 +41,8 @@ function ShopData:initActGift(act)
|
|||||||
end
|
end
|
||||||
self.giftMap[giftType][giftId] = gift
|
self.giftMap[giftType][giftId] = gift
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self:setDirty()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 已购买的礼包
|
-- 已购买的礼包
|
||||||
@ -65,12 +80,34 @@ end
|
|||||||
|
|
||||||
-- 每日特惠部分 **********************************************************************************************
|
-- 每日特惠部分 **********************************************************************************************
|
||||||
|
|
||||||
|
function ShopData:getMallDailyConfig()
|
||||||
|
return ConfigManager:getConfig("mall_daily")
|
||||||
|
end
|
||||||
|
|
||||||
-- 初始化每日特惠
|
-- 初始化每日特惠
|
||||||
function ShopData:initMallDaily(mallDaily)
|
function ShopData:initMallDaily(mallDaily)
|
||||||
mallDaily = mallDaily or {}
|
mallDaily = mallDaily or {}
|
||||||
self.mallDailyAdResetCount = mallDaily.ad_reset_Count or 0
|
self.mallDailyAdResetCount = mallDaily.ad_reset_Count or 0
|
||||||
self.mallDailyDiamondResetCount = mallDaily.diamond_reset_Count or 0
|
self.mallDailyDiamondResetCount = mallDaily.diamond_reset_Count or 0
|
||||||
self.mallDailyGoods = mallDaily.goods or {} -- {id,good_index,bought}
|
self.mallDailyGoods = mallDaily.goods or {} -- {id,good_index,bought}
|
||||||
|
|
||||||
|
self:markMallDailyDirty(false)
|
||||||
|
self:setDirty()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 每日特惠跨天重置
|
||||||
|
function ShopData:resetMallDaily()
|
||||||
|
self.mallDailyAdResetCount = 0
|
||||||
|
self.mallDailyDiamondResetCount = 0
|
||||||
|
self:markMallDailyDirty(true) -- 标记需要重新请求数据,在界面/下次打开界面时请求
|
||||||
|
end
|
||||||
|
|
||||||
|
function ShopData:getMallDailyDirty()
|
||||||
|
return self.data.mallDailyDirty
|
||||||
|
end
|
||||||
|
|
||||||
|
function ShopData:markMallDailyDirty(isDirty)
|
||||||
|
self.data.mallDailyDirty = isDirty
|
||||||
end
|
end
|
||||||
|
|
||||||
function ShopData:getMallDailyAdResetCount()
|
function ShopData:getMallDailyAdResetCount()
|
||||||
@ -107,6 +144,26 @@ function ShopData:getMallDailyGoodsMaxCount()
|
|||||||
return 1 -- TODOJ 目前无配置表
|
return 1 -- TODOJ 目前无配置表
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- 每日特惠 是否开启
|
||||||
|
function ShopData:getMallDailyIsOpen()
|
||||||
|
return ModuleManager:getIsOpen()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 根据商品id获取本日的随机商品数据
|
||||||
|
function ShopData:getMallDailyRewardAndCost(id)
|
||||||
|
local cfg = self:getMallDailyConfig()
|
||||||
|
local index
|
||||||
|
for _, info in ipairs(self:getMallDailyGoods()) do
|
||||||
|
if info.id == id then
|
||||||
|
index = info.good_index
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if index then
|
||||||
|
return cfg[id].good[index], cfg[id].cost[index]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- 每日特惠结束 ----------------------------------------------------------------------------------------------
|
-- 每日特惠结束 ----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
-- 常驻金币礼包 **********************************************************************************************
|
-- 常驻金币礼包 **********************************************************************************************
|
||||||
@ -114,6 +171,8 @@ end
|
|||||||
function ShopData:initCommonDailyGoldGift(mallIdle)
|
function ShopData:initCommonDailyGoldGift(mallIdle)
|
||||||
mallIdle = mallIdle or {}
|
mallIdle = mallIdle or {}
|
||||||
self.commonDailyGoldBuyCount = mallIdle[1] or 0 -- 已购的金币广告礼包次数
|
self.commonDailyGoldBuyCount = mallIdle[1] or 0 -- 已购的金币广告礼包次数
|
||||||
|
|
||||||
|
self:setDirty()
|
||||||
end
|
end
|
||||||
|
|
||||||
function ShopData:getCommonDailyCoinAdBuyCount()
|
function ShopData:getCommonDailyCoinAdBuyCount()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user