| | |
| | | Def_PDict_ShareGameAwardState = "ShareGameAwardState" # 每日分享游戏领奖记录
|
| | | Def_PDict_GoodGameAwardState = "GoodGameAwardState" # 游戏好评领奖记录
|
| | | Def_PDict_LikeGameAwardState = "LikeGameAwardState" # 游戏点赞领奖记录
|
| | | Def_PDict_DeleteTestRebate = "DeleteTestRebate" # 删档测试返利状态,0-该角色未触发,1-该角色已处理,仅做处理标记,只会发给该平台账号第一个请求的角色
|
| | | Def_PDict_RechargeDayAward = "RechargeDayAward" # 累充每日奖励
|
| | | Def_PDict_ADCnt = "ADCnt_%s" # 今日已领取广告奖励次数,参数(广告ID)
|
| | | Def_PDict_EquipViewCacheState = "EquipViewCacheState" # 本次上线是否同步过装备缓存
|
| | |
| | | # @param eventParam 事件参数
|
| | | # @param curPlayer
|
| | | # @return None
|
| | | def EventReport(eventActionID, eventParam, curPlayer=None, OperatorID=""):
|
| | | def EventReport(eventActionID, eventParam, curPlayer=None, OperatorID="", checkNeed=True):
|
| | | # 组成例子 eventParam 的格式必须是 xx=yy&zz=cc
|
| | | # "http://192.168.0.249:12000/event_receiver?EventID=3099&OperatorID=test&PlayerCount=102&Time=2018-02-08 18:30:30&ProductID=snxxz&RegionName=s1"
|
| | |
|
| | | if checkNeed:
|
| | | reportActionIDList = IpyGameDataPY.GetFuncEvalCfg("EventReport", 3)
|
| | | if reportActionIDList and eventActionID not in reportActionIDList:
|
| | | #GameWorld.DebugLog("非需要汇报的事件ID! %s" % eventActionID)
|
| | |
| | |
|
| | | #不需要做升级任务, 设置玩家经验
|
| | | SetPlayerTotalExp(curPlayer, curTotalExp)
|
| | | DoDeleteTestRebate(curPlayer)
|
| | | return
|
| | |
|
| | | def __GiveLVMailAward(self, curLV):
|
| | |
| | | continue
|
| | | curSummon.SetSightLevel(sightLevel)
|
| | | return |
| | |
|
| | | def DoDeleteTestRebate(curPlayer):
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | appID = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 1)
|
| | | if GameWorld.GetAppIDByAccID(curPlayer.GetAccID()) != appID:
|
| | | #GameWorld.DebugLog("非返利渠道AppID! appID=%s" % appID, playerID)
|
| | | return
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DeleteTestRebate):
|
| | | GameWorld.DebugLog("删档测试返利已经处理过,不再请求!", playerID)
|
| | | return
|
| | | if curPlayer.GetLV() < IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 2):
|
| | | GameWorld.DebugLog("等级不足不处理删档测试返利! lv=%s" % curPlayer.GetLV(), playerID)
|
| | | return
|
| | | rebateRate = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 5)
|
| | | if rebateRate <= 0:
|
| | | GameWorld.DebugLog("没有返利比例不处理!", playerID)
|
| | | return
|
| | | curTime = int(time.time())
|
| | | testEndDate = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 3) # 删档测试结束日期
|
| | | testEndTime = GameWorld.ChangeTimeStrToNum("%s235959" % testEndDate, ChConfig.TYPE_Time_Format_YmdHMS)
|
| | | if curTime <= testEndTime:
|
| | | GameWorld.DebugLog("删档测试期间不处理删档测试返利! testEndDate=%s" % testEndDate, playerID)
|
| | | return
|
| | | rebateEndDate = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 4) # 返利结束日期,由公测日期+有效天数得到
|
| | | rebateEndTime = GameWorld.ChangeTimeStrToNum("%s235959" % rebateEndDate, ChConfig.TYPE_Time_Format_YmdHMS)
|
| | | if curTime > rebateEndTime:
|
| | | GameWorld.DebugLog("返利有效期已结束不处理删档测试返利! rebateEndDate=%s" % rebateEndDate, playerID)
|
| | | return
|
| | | import EventReport
|
| | | EventReport.EventReport("DeleteTestRebate", "testEndDate=%s"%(testEndDate), curPlayer, checkNeed=False)
|
| | | return
|
| New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #-------------------------------------------------------------------------------
|
| | | #
|
| | | ##@package PyMongoDB.GMToolLogicProcess.Commands.GMT_DeleteTestRebate
|
| | | #
|
| | | # @todo:删档测试返利返回
|
| | | # @author hxp
|
| | | # @date 2026-03-18
|
| | | # @version 1.0
|
| | | #
|
| | | # 详细描述: 删档测试返利返回
|
| | | #
|
| | | #-------------------------------------------------------------------------------
|
| | | #"""Version = 2026-03-18 18:00"""
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import GMCommon
|
| | | import GameWorld
|
| | | from Player import (PlayerControl)
|
| | | import IpyGameDataPY
|
| | | import DataRecordPack
|
| | | import ShareDefine
|
| | | import PlayerMail
|
| | | import ItemCommon
|
| | | import ChConfig
|
| | |
|
| | | def OnExec(gmCmdDict):
|
| | | |
| | | errorMsg = ""
|
| | | from GMToolLogicProcess import ProjSpecialProcess
|
| | | Result, curPlayer = ProjSpecialProcess.GMCmdPlayerValidation(gmCmdDict)
|
| | | if Result != GMCommon.Def_Success:
|
| | | return Result, errorMsg
|
| | | if not curPlayer:
|
| | | return Result, "offline"
|
| | | |
| | | # 玩家在线,可处理
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | Result = GMCommon.Def_Unknow
|
| | | GMT_Name = gmCmdDict.get(GMCommon.Def_GMKey_Type, '') |
| | | |
| | | appID = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 1)
|
| | | playerAppID = GameWorld.GetAppIDByAccID(curPlayer.GetAccID())
|
| | | if playerAppID != appID:
|
| | | return GMCommon.Def_Unknow, "appID error. playerAppID=%s" % playerAppID
|
| | | |
| | | rebateRate = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 5)
|
| | | if rebateRate <= 0:
|
| | | return GMCommon.Def_Unknow, "rebateRate is zero."
|
| | | |
| | | itemID = ItemCommon.GetMoneyItemID(ShareDefine.TYPE_Price_PayCoin)
|
| | | if not itemID:
|
| | | return GMCommon.Def_Unknow, "payCoin itemID error."
|
| | | |
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DeleteTestRebate):
|
| | | return GMCommon.Def_Unknow, "already rebate."
|
| | | |
| | | accountPayTotal = GameWorld.ToNumDef(gmCmdDict.get('accountPayTotal', '0'), 0) # 单位,元,支持小数
|
| | | GameWorld.Log("删档测试充值总额: %s" % accountPayTotal, curPlayer.GetPlayerID())
|
| | | # 只要有收到同步,该角色就标记为已处理,如有异常再进行手动补偿
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DeleteTestRebate, 1)
|
| | | |
| | | if accountPayTotal > 0:
|
| | | rebateMoney = int(accountPayTotal * rebateRate / 100.0 * 100) # 除100为百分比,乘100为coin比例
|
| | | itemList = [[itemID, rebateMoney]]
|
| | | paramList = [accountPayTotal, rebateRate]
|
| | | PlayerMail.SendMailByKey("DeleteTestRebate", playerID, itemList, paramList)
|
| | | |
| | | resultDict = {"accountPayTotal":accountPayTotal, "rebateRate":rebateRate, "itemID":itemID, "rebateMoney":rebateMoney}
|
| | | DataRecordPack.DR_ToolGMOperate(playerID, curPlayer.GetPlayerName(), curPlayer.GetAccID(), GMT_Name, resultDict)
|
| | | |
| | | return GMCommon.Def_Success
|
| | |
|