#!/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()