#!/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_Unknow  
 | 
    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, query_ID)  
 | 
        resultMsg = str([orderId, errorMsg, 'GMT_CTG', Result])  
 | 
        GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'GMToolResult', resultMsg, len(resultMsg))  
 | 
        return  
 | 
      
 | 
    orderRMB = GameWorld.ToNumDef(value, None)  
 | 
    if not orderInfoIpyData and orderRMB != None:  
 | 
        if PlayerCoin.PlayerCoinToGoldEx(curPlayer, orderRMB, ChConfig.Def_GiveMoney_GMTCTG, isAddBourseMoney):  
 | 
            Result = GMCommon.Def_Success       
 | 
        else:  
 | 
            errorMsg = "order error! value(%s)" % (value)   
 | 
    else:  
 | 
        orderInfo = value  
 | 
        if PlayerCoin.DoGMCTG(curPlayer, orderInfo, appID, isAddBourseMoney, ChConfig.Def_GiveMoney_GMTCTG):  
 | 
            Result = GMCommon.Def_Success  
 | 
        else:  
 | 
            errorMsg = "orderInfo error! appID(%s), value(%s)" % (appID, value)  
 | 
              
 | 
    if Result != GMCommon.Def_Success:  
 | 
        GameWorld.Log("GMT_CTG, errorMsg=%s" % errorMsg, query_ID)  
 | 
        resultMsg = str([orderId, errorMsg, 'GMT_CTG', Result])  
 | 
        GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'GMToolResult', resultMsg, len(resultMsg))  
 | 
        return  
 | 
      
 | 
    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, query_ID)  
 | 
    #Á÷Ïò Ôö¼Ó½ð¶î¼Ç¼  
 | 
    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  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 |