local DouYinRechargeReward_Model = {} local private = {} local EventSystem = require('Event/EventSystem') local DOUYIN_RECHARG_EREWARD_PUSH_INTERFACE = "DOUYIN_RECHARG_EREWARD_PUSH_INTERFACE" function DouYinRechargeReward_Model.OnStartup() NetManager.RegisterMsgCB(MessageEnums.MessageDouYinRechargeReward, nil) EventSystem.Regist(EventID.UI_RefreshCurrency, private.RefreshRedPoint) EventSystem.Regist(EventID.AcquireSystemRedAfterUnlock, private.OnEnterWorldPostprocess) private.activityId = 0 private.startPoint = 0 --活动开始时,玩家已充值积分 private.receivedPoint = 0 --已领取到返利的充值积分(包含了活动前已充值积分) end function private.OnEnterWorldPostprocess() private.RefreshRedPoint() end function DouYinRechargeReward_Model.SyncInfos(msgResp) private.activityId = msgResp.activityId private.startPoint = msgResp.startPoint private.receivedPoint = msgResp.receivedPoint if msgResp.activityId ~= 0 then private.RefreshRedPoint() EventSystem.Dispatch(EventID.UI_DouYinRechargeReward_Update) end end function DouYinRechargeReward_Model.GetActivityTime() local activityInfo = MDL.OperationActivity.GetOperationActivityInfo(MDL.OperationActivity.ActivityType.DouYinRechargeReward, private.activityId) local startTimeMonth, startTimeDay, startTimeHourMinute = UTL.Time.FormatTimeSimple(activityInfo.startTime) local endTimeMonth, endTimeDay, endTimeHourMinute = UTL.Time.FormatTimeSimple(activityInfo.endTime) return string.FormatByIdsId(Const_IDS.IDS_BattlefieldMuster_Time,startTimeMonth, startTimeDay, startTimeHourMinute, endTimeMonth, endTimeDay, endTimeHourMinute) end function DouYinRechargeReward_Model.GetChargeSum() return MDL.Currency.GetTotalRechargeCredit() - private.startPoint end function DouYinRechargeReward_Model.GetChargeReward() return DouYinRechargeReward_Model.GetChargeSum() * DouYinRechargeReward_Model.GetDragonJadeRatio() * 10 end function DouYinRechargeReward_Model.GetLeftReward() return (MDL.Currency.GetTotalRechargeCredit() - private.receivedPoint) * DouYinRechargeReward_Model.GetDragonJadeRatio() * 10 end function DouYinRechargeReward_Model.GetDragonJadeRatio() local ratio = MDL.OperationActivity.DouYinRechargeReward:GetDataByActivityID(private.activityId).DragonJadeRatio return string.format("%.2f",ratio) end function DouYinRechargeReward_Model.CurActivityIsHasNotVisit() local lastTimeStamp = PersistentData.PlayerData:Get(DOUYIN_RECHARG_EREWARD_PUSH_INTERFACE) or 0 if lastTimeStamp == 0 or lastTimeStamp < UTL.Time.GetServerTimestamp() then return true end return false end --设置打脸图 function DouYinRechargeReward_Model.SetPushInterface() local activityInfo = MDL.OperationActivity.GetOperationActivityInfo(MDL.OperationActivity.ActivityType.DouYinRechargeReward, private.activityId) PersistentData.PlayerData:Set(DOUYIN_RECHARG_EREWARD_PUSH_INTERFACE, activityInfo.endTime, true) end function private.RefreshRedPoint() if CTL.DouYinRechargeReward.IsCanShowEntrance() and DouYinRechargeReward_Model.GetLeftReward() > 0 then CTL.RedPoint.AddRedPoint(CTL.RedPoint.RedPointKey.DouYinRechargeReward) else CTL.RedPoint.RemoveRedPoint(CTL.RedPoint.RedPointKey.DouYinRechargeReward) end end function DouYinRechargeReward_Model.GetDouYinRechargeRewardReq() local msg = NetManager.GetPB("activity_douYin_recharge_opt_pb").DouYinRechargeRewardReq() msg.activityId = private.activityId NetManager.SendMessage(MessageEnums.MessageDouYinRechargeReward, msg) end return DouYinRechargeReward_Model