hxp
2025-06-04 f4a514d5ac952110da846636ecbb9de951eaf3d2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/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 &nbsp;&nbsp;&nbsp;&nbsp;总条数: %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()