| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #---------------------------------------------------------------------  | 
| #  | 
| #---------------------------------------------------------------------  | 
| ##@package GY_Query_GMTCTG  | 
| # @todo: CTG  | 
| #  | 
| # @author: whx  | 
| # @date 2012-08-27 13:59  | 
| # @version 1.2  | 
| #  | 
| # @note:   | 
| #  | 
| # @change: "2014-05-19 14:40" Alee ×ÊÔ´²¹Ìù¼Ç¼Ôö¼Ó½ð¶î  | 
| # @change: "2016-07-20 14:30" hxp Ôö¼ÓÁ÷ÏòÀàÐͼǼ  | 
| #---------------------------------------------------------------------  | 
| #"""Version = 2016-07-20 14:30"""  | 
| #---------------------------------------------------------------------  | 
| #µ¼Èë  | 
| import GameWorld  | 
| import DataRecordPack  | 
| import PlayerCoin  | 
| import ChConfig  | 
| import GMCommon  | 
| import ShareDefine  | 
| import PlayerControl  | 
| import IpyGameDataPY  | 
| #---------------------------------------------------------------------  | 
| #È«¾Ö±äÁ¿  | 
| #---------------------------------------------------------------------  | 
| #---------------------------------------------------------------------  | 
| #Â߼ʵÏÖ   | 
| ## ÇëÇóÂß¼    | 
| #  @param query_Type ÇëÇóÀàÐÍ  | 
| #  @param query_ID Íæ¼ÒID  | 
| #  @param packCMDList ·¢°üÃüÁî   | 
| #  @param tick µ±Ç°Ê±¼ä  | 
| #  @return "True" or "False" or ""  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def DoLogic(query_Type, query_ID, packCMDList, tick):  | 
|     curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(query_ID)  | 
|       | 
|     if not curPlayer or curPlayer.IsEmpty():  | 
|         return  | 
|       | 
|     Result = GMCommon.Def_Success  | 
|     orderId, value, appID, isAddBourseMoney, isResult = packCMDList  | 
|       | 
|     goldBefore = curPlayer.GetGold()  | 
|     changeCoinPointBefore = curPlayer.GetChangeCoinPointTotal()  | 
|     bourseMoneyBefore = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney)  | 
|       | 
|     errorMsg = ""  | 
|     orderInfoIpyData = None  | 
|     if appID:  | 
|         orderInfoIpyData = IpyGameDataPY.GetIpyGameDataNotLog("OrderInfo", value, appID)  | 
|         if not orderInfoIpyData:  | 
|             Result = GMCommon.Def_ParamErr  | 
|             errorMsg = "Can not found the orderInfo(%s) and appID(%s)!" % (value, appID)  | 
|               | 
|     if errorMsg:  | 
|         GameWorld.Log("GMT_CTG, errorMsg=%s" % errorMsg)  | 
|         resultMsg = str([orderId, errorMsg, 'GMT_CTG', Result])  | 
|         GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'GMToolResult', resultMsg, len(resultMsg))  | 
|         return  | 
|       | 
|     if not orderInfoIpyData and value.isdigit():  | 
|         orderRMB = int(value)  | 
|         PlayerCoin.PlayerCoinToGoldEx(curPlayer, orderRMB, ChConfig.Def_GiveMoney_GMTCTG, isAddBourseMoney)  | 
|     else:  | 
|         orderInfo = value  | 
|         if not PlayerCoin.DoGMCTG(curPlayer, orderInfo, appID, isAddBourseMoney, ChConfig.Def_GiveMoney_GMTCTG):  | 
|             Result = GMCommon.Def_Unknow  | 
|               | 
|     goldAfter = curPlayer.GetGold()  | 
|     changeCoinPointAfter = curPlayer.GetChangeCoinPointTotal()  | 
|     bourseMoneyAfter = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney)  | 
|       | 
|     resultDict = {"value":value, "appID":appID, "isAddBourseMoney":isAddBourseMoney, "Result":Result,   | 
|                   "gold":[goldBefore, goldAfter], "changeCoinPoint":[changeCoinPointBefore, changeCoinPointAfter],   | 
|                   "bourseMoney":[bourseMoneyBefore, bourseMoneyAfter]}  | 
|       | 
|     GameWorld.Log("GMT_CTG, resultDict=%s" % resultDict)  | 
|     #Á÷Ïò Ôö¼Ó½ð¶î¼Ç¼  | 
|     DataRecordPack.DR_ToolGMOperate(query_ID, curPlayer.GetPlayerName(), curPlayer.GetAccID(), 'GMT_CTG', resultDict)  | 
|       | 
|     if isResult:  | 
|         resultMsg = str([orderId, resultDict, 'GMT_CTG', Result])  | 
|         GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'GMToolResult', resultMsg, len(resultMsg))  | 
|     return  | 
|   | 
| #---------------------------------------------------------------------  | 
| #Ö´Ðнá¹û  | 
| ## Ö´Ðнá¹û  | 
| #  @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò  | 
| #  @param callFunName ¹¦ÄÜÃû³Æ  | 
| #  @param funResult ²éѯµÄ½á¹û  | 
| #  @param tick µ±Ç°Ê±¼ä  | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def DoResult(curPlayer, callFunName, funResult, tick):  | 
|     return  | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   |