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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
>Hifc@s•ddlZddlZddlZddlZddlZddlZejƒZejdƒejddƒZ    de
gde
gde gde
gd    e ggZ dZ id
d gd 6Zid ddgd6ZdZdgZdd!d„ƒYZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zed kr‘y eƒWq‘ej ƒq‘XndS("iÿÿÿÿNs../../InterfaceConfig.phpt
ServerInfot
ServerPathtAccIDtPlayerIDt    orderCointorderMoneyTypetorderMoneyValueiëtGMTCTGt    eventNameiiitcoinTypeitValueObjcBseZd„ZRS(cCsdS(N((tself((s$E:\www\Server\eventdata\CTGOKSort.pyt__init__#s(t__name__t
__module__R (((s$E:\www\Server\eventdata\CTGOKSort.pyR
"sc Csç|jddƒ}|jddƒ}tj|ƒrGt|||ƒdSt|ƒ}tjt|||tt||ƒ}|rvtj    t|ƒ}|dkrŸdSxÔ|j ƒD]Ã\}}|t |ƒ}x¤|j ƒD]–\}    }
|    |krýt ƒ||    <n||    } xatD]Y\} } | rEt| | dƒ|
j| dƒ}n|
j| dƒ}t| | |ƒqWqÕWq¬Wntj|jdƒdƒ}g}i}x6|j ƒD](\}}|jƒ}|tkrð|jdtjdƒd    tƒn|jdtjd
ƒd    tƒ|r4t|ƒ|kr4|| }nx‘|D]‰} |tkrbt| ddƒ}n'tjt| d
dƒtj|ƒƒ}t| d |ƒt| tƒ}||kr;|j|ƒq;q;W|||<qªW|r­tjtƒ}|j |ƒ}|j!ƒi}x"|D]}|d }|||<qWx{|jƒD]j}xa|D]Y} t| tƒ}||krpqIn||}t| d |d ƒt| d|dƒqIWq<Wndt"dƒd}|râ|t"dƒd|7}n|r|t"dƒd|7}n|jdƒr)|t"dƒd7}n|t"dƒd7}|jdƒrc|t"dƒd7}n|t"dƒd7}|jdƒr|t"dƒd7}n|t"dƒd7}|jdƒr×|t"d ƒd7}n|t"d!ƒd7}xð|j ƒD]â\}}|d"7}tj#|ƒ}|d#|t"dƒf7}|sCqøn|tj$|d d dd gt"d$ƒd%iid&d'6t"d(ƒd)6d 6id&d'6t"d*ƒd)6d 6id&d'6t"d+ƒd)6d6id,d'6|d)6d 6ƒ7}qøW|GHdS(-Nt    startDatettendDateitmaxOrderi
tkeyRtreverseRt
orderValueRRt
PlayerNames <center><p>u 充值排行s </p></center>u 开始日期s    : %s<br/>u 结束日期tItemCTGu包含道具充值s<br/>u不含道具充值t BuyOrderInfou包含货币购买u不含货币购买tGMCTGu包含后台充值u不含后台充值tExchangePayCoinu包含代币转换u不含代币转换s<hr/>s=== ã€%s】支付%s ===<br/>u排名t    styleInfotlefttalignu账号ttitleu玩家IDu    çŽ©å®¶åtright(%tgettCommFunctisQueryCenterbaktgetCTGOKSumInfo_CenterbaktgetShowSumInfoDicttloopMainServerDRtcfgt!checkDrFileNeedParseFunc_CtgOKSumtparseLineFunc_CtgOKSumtqueryBackupCenterDRtNonetitemstintR
tKeyListtgetattrtsetattrttoInttvaluestPayByMoneyOrderTypeListtsorttoperatort
attrgettertTruetlentcoinToYtgetPayOrderCoinRatetPKKeytappendt    DBOperatetDBOperRtfindPlayerInfoByAccIDtcloset_tgetPayOrderTypeNamet editTableHtml(targvDictRRtshowSumInfoDicttneedQueryCenterbaktshowSumInfoDictBaktpayOrderTypeStrtsumInfoDictBakt sumInfoDicttpkValuetbakDatatvObjRtisSumtvalueRt    accIDListtshowSumInfoSortDictt payOrderTypetsortListRtaccIDtdbopert    findDBRett dbPlayerInfotdbPlayertvObjListtprintStrt orderTypeName((s$E:\www\Server\eventdata\CTGOKSort.pytgetCTGOKSumInfo&s°   
%  "   ' 
 
 
 
' cCsTi}x4tddƒD]#}d||kri||<qqW|sPi|t<n|S(Nii
spayOrderType%s(trangetDefaultOrderType(RCRDRQ((s$E:\www\Server\eventdata\CTGOKSort.pyR$ s c    CsAt|ƒ}tjt|||tt||ƒs4dStj|ƒS(N(R$R!tloopCenterbakRarDRR&R'R(tqueryBackupCenterOK(RRRCRD((s$E:\www\Server\eventdata\CTGOKSort.pyR#©s
 cOs|jdƒ}|dfS(s­ æ£€æŸ¥æµå‘是否需要处理
    @param drFileName: æµå‘文件名  xxx_日期.txt
    @param *parseArgs: è‡ªå®šä¹‰å‚æ•°
    @return: isNeed, checkNeedParseRetInfo
    tCTGOK_N(t
startswithR*(t
drFileNamet    parseArgstkvtisNeed((s$E:\www\Server\eventdata\CTGOKSort.pyR'±scOs|\}}t|ƒ}t||ƒs+dSt|kr;dS|jdtƒ}    |    |kr]dS||    }
|t} | |
krtƒ|
| <n|
| } xstD]k\} }| |kr¼qžn|rçt| | dƒ|j| dƒ}n|j| dƒ}t| | |ƒqžWdS(sò è§£æžæµå‘行内容
    @param drName: æµå‘名
    @param dateStr: å¯¹åº”日期字符串
    @param checkNeedParseRetInfo: checkDrFileNeedParseFunc è¿”回的内容
    @param line: æœ¬è¡Œå†…容
    @param *parseArgs: è‡ªå®šä¹‰å‚æ•°
    NRQiR(    tevalt checkDRNeedR:R R]R
R-R.R/(tdrNametdateStrtcheckNeedParseRetInfotlineRcRdRDRCtdrDictRQRIRJRLRRMRN((s$E:\www\Server\eventdata\CTGOKSort.pyR(ºs,        
 
 
 %c    Cs]ddg}|jdtƒ}ii}}|jdƒ r{|jdƒ r{|jdƒ r{||kr{t|ƒ r{dSnddd    g}|jdƒr©|jd
ƒn|jdƒrÈ|jd ƒn|jd ƒrç|jdƒn||d <|jdƒs@|d dkr-||kr-t|ƒ r-dSddg|d<ntj|||ƒsYdStS(NiiRQRRRiiiiiRR    iëRR(iii(R R]t    IsRealCTGR;R!tmatchDrR6(RlRCtnoCheckRealCTGPayTypeListRQtmatchSett    filterSett coinTypeList((s$E:\www\Server\eventdata\CTGOKSort.pyRgâs*  0
)cCsD|jddƒ}|jddƒ}|jddƒ}|jddƒ}tj|ƒrkt|||ƒdSd}|}|dkrtjtƒ}|j|gƒ}|jƒ| sÇ|j    ƒdkrÞt
dƒd    |GHdS|d}    tj |    d
ƒ}tj |    d ƒ}ng}
g} tj t |||tt||
| |ƒ
} | r˜||d <tjt |ƒ} | dkrydS| d|
}
| d | } nii}}x>td dƒD]-}d||krµi||<i||<qµqµW|si|t<i|t<nxË|
D]Ã}|jdtƒ}||kr4q
n||}|tkra|d}||d<n)|d}tj|tj|ƒƒ|d<|jdgƒ}|j|ƒ||d<|jddƒ||d<q
WxR|jƒD]D\}}|rÞ|tkrÞtj|dtj|ƒƒ|d<qÞqÞWxË| D]Ã}|jdtƒ}||krWq-n||}|tkr„|d}||d<n)|d}tj|tj|ƒƒ|d<|jdgƒ}|j|ƒ||d<|jddƒ||d<q-WxR|jƒD]D\}}|r|tkrtj|dtj|ƒƒ|d<qqW| ru|
ru|
d}|jd dƒ}ndt
dƒd}|t
dƒd|7}|rÂ|t
dƒd|7}n|rã|t
dƒd|7}n|r|t
dƒd|7}n|jdƒr*|t
d ƒd!7}n|t
d"ƒd!7}|jd#ƒrd|t
d$ƒd!7}n|t
d%ƒd!7}|jd&ƒrž|t
d'ƒd!7}n|t
d(ƒd!7}|jd)ƒrØ|t
d*ƒd!7}n|t
d+ƒd!7}|d,t
d-ƒd!7}x|jƒD]\}}|s)qn|d.7}tj|ƒ}|d}|d}|d/|t
d0ƒf7}|d1t
d2ƒ||f7}|tj|d3d4dd5d6d7d8gt
d9ƒd:iid;d<6t
d=ƒd>6d46id?d<6|d>6d6id;d<6t
d@ƒd>6d66ƒ7}qWx"|jƒD]\}}|d.7}tj|ƒ}|dA|t
dBƒf7}|snq#n|d}|d}|dCt
dDƒ||f7}|tj|d3d4dd5dEd7d8dFdGg    t
d9ƒd:iid;d<6t
d=ƒd>6d46id?d<6|d>6d6it
dHƒd>6dF6it
dIƒd>6dG6ƒ7}q#W|GHdS(JNRRRt    queryTypet
playerFindt
playerNameiu找不到该玩家s !<br/>%s<br/>RRt
queryAccIDii
spayOrderType%sRQRRRtdrListtorderValueTotaliÿÿÿÿs <center><p>u 充值记录s </p></center>u 玩家账号s    : %s<br/>u 玩家名称u 开始日期u 结束日期Ru包含道具充值s<br/>u不含道具充值Ru包含货币购买u不含货币购买Ru包含后台充值u不含后台充值Ru包含代币转换u不含代币转换s coinType: %su50-直充;1-直购;6-代币转换;7-代币充值s<hr/>s=== ã€%s】%s ===<br/>u充值失败到账记录s%s: %s %s<br/>u充值失败到账总额度tappIDt    orderInfoRt    ErrorInfottimetorderIDu编号RRRu 商品编号RRu 错误信息s=== ã€%s】支付%s ===<br/>u充值成功到账记录s支付%s: %s %s<br/>u充值成功到账总额度R    t    ServerDaytVIPLvu    å¼€æœå¤©u    VIP等级(R R!R"tqueryAccIDCTGInfo_CenterbakR<R=RtfindPlayerInfoByNameR?tcountR@tencodeR%R&t%checkDrFileNeedParseFunc_AccIDCTGInfotparseLineFunc_AccIDCTGInfoR)R*R\R]R2R8R9R;R+RARB(RCRRRsRtRuRvRTRURWt    ctgOKListt ctgErrorListREt bakDataListtshowOKOrderInfotshowErrOrderInfoRQRltshowInfoRRwtlastDictRYRZRx((s$E:\www\Server\eventdata\CTGOKSort.pytqueryAccIDCTGInfosú 
 
 
 
 
 
 
 
 
*  
 
 
 
* 
 
 
 
0&
 
 
6c Cso|jdƒ}|s"tjdƒSg}g}tjt|||tt||||ƒ
s\dStj||gƒS(NRvsqueryAccID is none(R R!tqueryBackupCenterErrorR^R&R„R…R_(RRRCRvR†R‡((s$E:\www\Server\eventdata\CTGOKSort.pyR€¨s cOs(|jdƒp|jdƒ}|dfS(s­ æ£€æŸ¥æµå‘是否需要处理
    @param drFileName: æµå‘文件名  xxx_日期.txt
    @param *parseArgs: è‡ªå®šä¹‰å‚æ•°
    @return: isNeed, checkNeedParseRetInfo
    R`t    CTGError_N(RaR*(RbRcRdRe((s$E:\www\Server\eventdata\CTGOKSort.pyR„´scOs0|\}}}}    ||kr"dSt|ƒ}
||
dkrBdSddddddd    d
d d d dddg} |jdƒrÆi} x+| D]#} | |
krŽ|
| | | <qŽqŽW|j| ƒdSt|
|    ƒsÙdS|jdƒr,i} x+| D]#} | |
krõ|
| | | <qõqõW|j| ƒndS(sò è§£æžæµå‘行内容
    @param drName: æµå‘名
    @param dateStr: å¯¹åº”日期字符串
    @param checkNeedParseRetInfo: checkDrFileNeedParseFunc è¿”回的内容
    @param line: æœ¬è¡Œå†…容
    @param *parseArgs: è‡ªå®šä¹‰å‚æ•°
    NRRyRzRRR    R|R}R~RRQRRR{RtCTGErrortCTGOK(RfRaR;Rg(RhRiRjRkRcRdRvR†R‡RCRlt    drKeyListtdDictR((s$E:\www\Server\eventdata\CTGOKSort.pyR…½s.      0     cCs|jdƒstStS(NR}(R tFalseR6(Rl((s$E:\www\Server\eventdata\CTGOKSort.pyRmäscCstjƒtjƒ}tj|jddƒƒtj|jddƒƒ|jddƒ}|dkrst|ƒn
t|ƒdS(Nt    eventTypeRtlangRt(    R!tsetdefaultencodingt
parse_argstmylogt    InitMyLogR tgettextInstallRR[(RCRt((s$E:\www\Server\eventdata\CTGOKSort.pytmainês
 
t__main__((!R!t ConfigParserR<R4tloggingR™R&treadR RR”R6R-R:t
Filter_Sett    Match_SetR]R2R
R[R$R#R'R(RgRR€R„R…RmRœR tprintExceptionError(((s$E:\www\Server\eventdata\CTGOKSort.pyt<module>s@        3        z                        (        §                 '