| #!/usr/bin/python | 
| # -*- coding: utf-8 -*- | 
| # @todo: 转代币记录 | 
|   | 
| import CommFunc | 
| import ConfigParser | 
|   | 
| import logging | 
| import mylog | 
|   | 
| #==================== 配置 ==================== | 
| cfg = ConfigParser.ConfigParser() | 
| cfg.read("../../InterfaceConfig.php") | 
| ServerPath = cfg.get("ServerInfo", "ServerPath") | 
|   | 
| DRNameList = ["CTGOK"] | 
| #==================== 配置 ==================== | 
|   | 
| class ValueObj(): | 
|     def __init__(self): | 
|         return | 
|      | 
| def getExchangePayCoinList(argvDict): | 
|     ## 查询所有代币转换记录列表 | 
|   | 
|     startDate = argvDict.get("startDate", "") | 
|     endDate = argvDict.get("endDate", "") | 
|     maxCount = CommFunc.toInt(argvDict.get("maxCount", "10")) | 
|   | 
|     # 查询中心备份的 | 
|     if CommFunc.isQueryCenterbak(argvDict): | 
|         getCTGOKSumInfo_Centerbak(startDate, endDate, argvDict) | 
|         return | 
|      | 
|     exchangeList = [] | 
|     needQueryCenterbak = CommFunc.loopMainServerDR(cfg, startDate, endDate, argvDict, checkDrFileNeedParseFunc_Exchange, | 
|                                                    parseLineFunc_Exchange, exchangeList, drNameList=DRNameList) | 
|     if needQueryCenterbak: | 
|         exchangeListBak = CommFunc.queryBackupCenterDR(cfg, argvDict) | 
|         if exchangeListBak == None: | 
|             return | 
|         exchangeList = exchangeListBak + exchangeList | 
|   | 
|     totalCount = len(exchangeList) | 
|     exchangeList = exchangeList[-maxCount:] | 
|     retCount = len(exchangeList) | 
|   | 
|     for drDict in exchangeList: | 
|         payOrderType = drDict.get("payOrderType", 1) | 
|         orderValue = drDict["orderCoin"] | 
|         drDict["payName"] = CommFunc.getPayOrderTypeName(payOrderType) | 
|         drDict["orderValue"] = CommFunc.coinToY(orderValue, CommFunc.getPayOrderCoinRate(payOrderType)) | 
|   | 
|     printStr = "" | 
|     # 表格输出 | 
|     printStr += _(u"查询日期") + ": %s ~ %s<br/>" % (startDate, endDate); | 
|     printStr += _(u"返回条数") + ": %s     总条数: %s<br/>" % (retCount, totalCount); | 
|     printStr += CommFunc.editTableHtml(exchangeList, ["AccID", "appID", "orderInfo", "payName", "orderValue", "orderCoin", "eventName", "time", "orderID"], _(u"编号"), | 
|                                         {"orderInfo":{"align":"left", "title":_(u"商品编号")}, | 
|                                         "payName":{"align":"center", "title":_(u"支付方式")}, | 
|                                         "orderValue":{"align":"right", "title":_(u"支付额")}, | 
|                                         "orderCoin":{"align":"right", "title":_(u"代币值")}, | 
|                                         },  | 
|                                         False) | 
|          | 
|     # 只会返回最后一个print的内容 | 
|     print printStr | 
|     return | 
|   | 
| def getCTGOKSumInfo_Centerbak(startDate, endDate, argvDict): | 
|     ## 查询中心服务器备份充值信息 | 
|     exchangeList = [] | 
|     if not CommFunc.loopCenterbakRarDR(cfg, startDate, endDate, argvDict, checkDrFileNeedParseFunc_Exchange, | 
|                                        parseLineFunc_Exchange, exchangeList, drNameList=DRNameList): | 
|         return | 
|     return CommFunc.queryBackupCenterOK(exchangeList) | 
|   | 
| def checkDrFileNeedParseFunc_Exchange(drFileName, *parseArgs, **kv): | 
|     ''' 检查流向是否需要处理 | 
|     @param drFileName: 流向文件名  xxx_日期.txt | 
|     @param *parseArgs: 自定义参数 | 
|     @return: isNeed, checkNeedParseRetInfo | 
|     ''' | 
|     isNeed = drFileName.startswith("CTGOK_") | 
|     return isNeed, None | 
|   | 
| def parseLineFunc_Exchange(drName, dateStr, checkNeedParseRetInfo, line, *parseArgs, **kv): | 
|     ''' 解析流向行内容 | 
|     @param drName: 流向名 | 
|     @param dateStr: 对应日期字符串 | 
|     @param checkNeedParseRetInfo: checkDrFileNeedParseFunc 返回的内容 | 
|     @param line: 本行内容 | 
|     @param *parseArgs: 自定义参数 | 
|     ''' | 
|   | 
|     exchangeList = parseArgs[0] | 
|      | 
|     drDict = eval(line) | 
|     if drDict.get("coinType") != 6: | 
|         return | 
|   | 
|     dDict = {} | 
|     for key in ["AccID", "appID", "orderInfo", "orderCoin", "eventName", "time", "orderID", "payOrderType"]: | 
|         if key in drDict: | 
|             dDict[key] = drDict[key] | 
|     exchangeList.append(dDict) | 
|     return | 
|   | 
| def main(): | 
|     CommFunc.setdefaultencoding() | 
|     argvDict = CommFunc.parse_args() | 
|     mylog.InitMyLog(argvDict.get("eventType", "")) | 
|     CommFunc.gettextInstall(argvDict.get("lang", "")) | 
|     getExchangePayCoinList(argvDict) | 
|     return | 
|   | 
| if __name__ == "__main__": | 
|     try: | 
|         main() | 
|     except: | 
|         CommFunc.printExceptionError() |