#!/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."
|
|
# Ö»ÒªÓÐÊÕµ½Í¬²½£¬¸Ã½ÇÉ«¾Í±ê¼ÇΪÒÑ´¦Àí£¬ÈçÓÐÒì³£ÔÙ½øÐÐÊÖ¶¯²¹³¥
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DeleteTestRebate, 1)
|
|
rebateServerID = GameWorld.ToIntDef(gmCmdDict.get('rebateServerID', '0'))
|
if rebateServerID > 0:
|
GameWorld.Log("ɾµµ²âÊÔ³äÖµ·µÀû·µ»ØÒѾÔÚÆäËû·þÎñÆ÷·µÀû¹ýÁË: rebateServerID=%s" % rebateServerID, curPlayer.GetPlayerID())
|
return GMCommon.Def_Success
|
|
accountPayTotal = GameWorld.ToNumDef(gmCmdDict.get('accountPayTotal', '0'), 0) # µ¥Î»£¬Ôª£¬Ö§³ÖСÊý
|
GameWorld.Log("ɾµµ²âÊÔ³äÖµ×ܶî: %s" % accountPayTotal, curPlayer.GetPlayerID())
|
|
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
|
|