#!/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
" % (startDate, endDate); printStr += _(u"返回条数") + ": %s     总条数: %s
" % (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()