cehua_lyf
2019-03-06 3c8ee0a8a524a6251d7d5aae2372e76fd8a99b9c
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
136
137
138
139
­}j\c@sÎddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZedƒ\ZZZZdZdZdZdZedƒ\ZZedƒ\ZZZdZ d„Z!dddej"d    d
„Z#d „Z$gdddd    d „Z%dddej"d    d „Z&ej"d„Z'd„Z(d„Z)ddd„Z+d„Z,d„Z-dddd    dd„Z.dddd„Z/dddej"d    d„Z0d„Z1iddd„Z2d„Z3d„Z4d„Z5d„Z6d„Z7d„Z8d „Z9e:d!„Z;d"„Z<d#„Z=d$„Z>d%„Z?d&„Z@d'„ZAd(„ZBd)„ZCdS(*iÿÿÿÿNiiiiitCompensationRequestStatecCsTtjƒ}|d|_|d|_|jddƒ|_|jddƒ|_|S(NtItemIDtCounttIsBinditUserDatat(tIPY_GameServertIpyCompensationItemRRtgetRR(t curItemDictt curItemData((s.\\PlayerCompensation.pytMakeCompensationItemJs    Rc
CsPttj|ƒƒ}
|
jdƒd}
t|||
||||||d|    ƒ    S(Ns.itdetail(tstrt    GameWorldtGetDatetimeByDiffDaystsplittSendPersonalItemMail( ttitletcontenttgetDayst playerIDListt addItemListtgoldt    goldPapertsilvert
sourceTypeR t    limitTime((s.\\PlayerCompensation.pytSendPersonalItemMailExWsc Csª|\}}}}}}}}t|ƒ}    t|ƒ}
t|ƒ} t|ƒ} t|ƒ} t|ƒ}t|ƒ}d}d}ttj|ƒƒ}|jdƒd}xýt|ƒD]ï\}}|
|    krÕ||ng}| |    krñ||ng}| |    kr ||nd}| |    kr)||nd}||    krE||nd}||    kra||nd}d|t|ƒf}t||||||||d|ƒq³WdS(NRis.is!<MailTemplate>%s</MailTemplate>%sR (tlenR RRRt    enumerateR(tbatchMailInfoListt mailTypeKeytbatchPlayerIDListtbatchAddItemListtbatchParamListt    batchGoldtbatchGoldPapert batchSilvert batchDetailt lenPlayerIDtlenItemtlenParamtlenGoldt lenGoldPapert    lenSilvert    lenDetailRRRtiRRt    paramListRRRR R((s.\\PlayerCompensation.pytSendPersonalItemMailBatch^s,       )c
Cs‚|stj}ntjd|||||||fƒd}d|tj|dtƒf}    t||    d|||||d|ƒS(NsaSendMailByKey %s, playerIDList=%s, addItemList=%s, paramList=%s, gold=%s, goldPaper=%s, silver=%sRs!<MailTemplate>%s</MailTemplate>%st ensure_asciiiR (t ShareDefinetDefaultLackSpaceMailTypeRtDebugLogtjsontdumpstFalseR(
R RRR0RRRR RR((s.\\PlayerCompensation.pyt SendMailByKey{s     c
 Csƒ|s
dStjƒ}
|
s)|
|kr>tjd|ƒdSg} xˆ|D]€} t| tƒrs| j| ƒqKnt| ƒdkrK| \} }}nqKi}| |d<||d<||d<| j|ƒqKWtjdƒ}t    dt
t j t| ƒt |ƒƒƒƒ}xpt|ƒD]b}||}ttjƒƒ}t|| |||!||d    tj||f|||||    ƒ
qW|S(
NRsC¹¦ÄÜ·¢·ÅÎïÆ·²¹³¥/½±ÀøÓʼþ£¬Áìȡʱ¼äÒѳ¬Ê±£¬Ä¬Èϲ»Ìí¼Ó£¡LimitTime=%siRRRtMailMaxItemCntis%s<$_$>%s<$_$>%s(RtGetCurrentDataTimeStrR5t
isinstancetdicttappendRt IpyGameDataPYt
GetFuncCfgtmaxtinttmathtceiltfloattxrangeR tuuidtuuid1tAddPersonalItemtChConfigtDef_Mail_SenderSys(RRRRRRRRRR t curServerTimetaddItemDictListtitemInfotitemIDtitemCnttisBindt addItemDicttperMailItemCnttmailCntR/t
startIndextGUID((s.\\PlayerCompensation.pyR‰s8   
 
 
.
c    CsUtjƒrdSttjƒƒ}t||tjƒ|dtj||f|ƒdS(Ns%s<$_$>%s<$_$>%s(    Rt IsCrossServerR RGRHtPyAddPersonalCompensationR;RJRK(tPlayerIDRRRRRV((s.\\PlayerCompensation.pytSendPersonalAsTextMail·s  cCs|d|d|S(Ni@Bi †((t
checkStatet limitLVTypetlimitLV((s.\\PlayerCompensation.pytGetEntireCompensationInfo¿scCs3|d}|d}||dd}|||fS(Ni †i@B((tmailInfoR]R[R\((s.\\PlayerCompensation.pytParseEntireCompensationInfoÁs
 
i
c     Cstjƒ}g}|rYt||j|ƒdd|||ƒ}    |    rU|j|    ƒn|S|rld|}n|rd|}n|jƒ}
xpt|
ƒD]b} |j| ƒ} t|| |||||ƒ}    |    s×q˜n|j|    ƒt|ƒ|kr˜Pq˜q˜W|S(s²¹³¥Óʼþ²éѯ
    Rs %s 00:00:00s %s 23:59:59(    RtGetCompensationMgrt__GetQueryCompensationInfoDicttFindEntireCompensationR>tGetEntireCompensationCountRFtAtEntireCompensationR( tfromDatettoDatetguidt searchTitlet searchContentt searchStatetmaxCounttcompensationMgrtretListtinfoDictt    entireCntR/t compensation((s.\\PlayerCompensation.pytQueryCompensationInfoÇs* '    c Csà| s|j rdS|r.|j|kr.dS|rG|j|krGdS|jjdƒ}t|ƒdkrodS|\}}    }
|r”||    kr”dS|rª||
krªdSt|jƒ\} } } |dkrÞ|| krÞdS|j}g}|j|ƒ}xct    |ƒD]U}t
j ƒj ||ƒ}|j }|s<q    n|j||j|j|jgƒq    Wi|d6| d6| d6| d6|jd6|jd6|jd    6|jd
6|d 6|    d 6|
d 6|jd6|jd6|d6}|S(Ns<$_$>iRVt
CheckStatet LimitLVTypetLimitLVtGoldt    GoldPapertSilvert    PlayerJobtSendertTitletContentt
CreateTimet    LimitTimetItemList(RVR}tTextRRR`tPlayerLVtNonet FindItemCountRFRRat
FindItemAtRR>RRRRvRwRxRyR~(RmRqRfRgRiRjRkt contentListtsenderRRR[R\R]RVtitemListtcurGUIDItemCountR/tcurItemROtcompensationDict((s.\\PlayerCompensation.pyRbæs>        &c Csfg}g}tjƒ}x8|D]0}|j|ƒ}| s|j|krPqn|dkr§|j|ƒ|j|ƒ|j|ƒtjd|ƒtj    |dƒn›|dkr|j
}t |ƒ\}}    }
t t |    |
ƒ} |j|| ƒtjd|||| fƒ|t krB|j|ƒtj    |dƒqBnq|j|ƒqWtjƒ} xt| jƒƒD]ì} | j| ƒ}|dksr|jƒ srtj|ƒrµqrng}xŠ|D]‚}t||tƒ\}}|tkròqÂn|j|j|j|jf\}}}}|j}|j||||||fƒqÂW|rrt ||ƒqrqrW|S(shÈ«·þÓʼþ²Ù×÷¹ÜÀí
    @param operGUIDList: ´ý²Ù×÷µÄÓʼþGUIDÁбí
    @param operation: 1-ͨ¹ý£»2-ɾ³ý
    isɾ³ýÈ«·þÓʼþ: GUID=%stDeleteisBÈ«·þÓʼþÉóºËͨ¹ý: GUID=%s,mailInfo=%s,checkState=%s,updMailInfo=%stCheckOKN(!RRaRcRVtDeleteEntireCompensationtDeleteCompensationItemtDeleteRecByGUIDtLogtDataRecordPacktDR_EntireCompensationRR`R^t CheckState_OKtSetEntireCompensationPlayerLVR>tGetPlayerManagerRFtGetActivePlayerCounttGetActivePlayerAtR‚t    GetInitOKt PlayerControltGetIsTJGtCheckRequestCompensationR8tUnknow_CompensationTypeR€RvRwRxR}tSyncQueryCompensationResult(t operGUIDListt    operationt
okGUIDListtsuccessGUIDListRmRVRqR_R[R\R]t updMailInfot playerManagerR/tplayert
notifyListtcompensationTypetcurEntireRequireR€RRRt
createTime((s.\\PlayerCompensation.pytEntireCompensationOpersR                  (  *    #c  CsQtjƒrdSx0|D](} t| ƒ} tjƒj|| ƒqWtjƒ} tjƒj|| ||||||||
ƒ
t|ƒ\}}}i |d6|d6|d6|d6|d6|d6|d6|d    6|d
6|d 6|    d 6}|tkr÷d nd}t    j
|||ƒt ||||d||ƒt jdƒ}tjƒ}xt|jƒƒD]ï}|j|ƒ}|dksZ|jƒ sZtj|ƒrqZn|tkrÓtj|jƒƒ}||krÓqZqÓnt||tƒ\}}|tkrýqZn|j|j|j|jf\}}}}t |||| |||fgƒqZWdS(sW
    @param mailInfo: GetEntireCompensationInfo µÄ·µ»ØÖµ, Ä¿Ç°ÔÝ´æ×ֶΠPlayerLV ÖÐ
    NR~RuRtRsRyR€RvRwRxRtDetailtAddt
AddToCheckt    TestAccID(!RRWR RatAddCompensationItemR;tAddEntireCompensationItemR`R“R‘R’t__WriteSendMailOKEventR‚t ReadChConfigtGetEvalChConfigR•RFR–R—R˜R™Ršt CheckState_NotGetPlatformAccIDtGetAccIDR›R8RœR€RvRwRxR(RVRMR~R_RyR€RRRR tserverIDRRR
R¨R[R\R]taddDictt    eventNamet testAccIDListR£R/R¤t playerAccIDR¦R§((s.\\PlayerCompensation.pyt AddEntireItemLs<    -& (       *&c    
Cs1tjƒj|ƒ}    tjƒj||ƒ}
itjdƒtj6tjdƒtj    6} |
| |d} | dkrg} xHt
| ƒD]:}tjƒj |||ƒ}|s·qŠn| j |ƒqŠWx7| D],}t ||ƒ|    rÏt|    |dƒqÏqÏWntjƒj|||||||||ƒ    dS(NtMailDefaultCounttMailMarketCountii(RR•tFindPlayerByIDRat"GetPersonalCompensationCountByTypeR?R@RJtMail_Type_DefaulttMail_Type_MarketRFtAtGUIDInPersonalTypesByTypeR>tClearPersonalCompensationtNotifyCompensationResulttAddPersonalCompensation(RVRYR}R~R€RRRRt    curPlayertcntttmpDicttdelcnttdelGUIDsR/ttmpGuidRh((s.\\PlayerCompensation.pyRX}s&   c
 CsXtjƒrdStjd||fƒx0|D](}
t|
ƒ} tjƒj|| ƒq.Wi} tjƒ} x’|D]Š}t||| ||||||ƒ    tjƒj    |ƒ}|rst
|||| |||fgƒ|j ƒ|j ƒg| |j ƒ<qsqsWi|d6|d6|d6|d6|d6t|ƒd6|    d6}tj||||ƒdS(    Ns5Compensation### AddPersonalItem GUID:%s ItemDict:
%s R~R€RvRwRxt ItemListLenRª(RRWR5R RaR®R;RXR•R¾RtGetNametGetLVRµRR‘tDR_AddPersonalCompensation(RVRMt PlayerIDListR~R€RRRRR RRR
tonlinePlayerInfoR¨RYRÆR·((s.\\PlayerCompensation.pyRI¤s&     ")&cCs†|s
dSi}|\}}}}tjd|t|ƒfƒx*|D]"}|d|dg||d<qFWt|||||ƒdS(NsÓʼþÀëÏßÍæ¼ÒDBÐÅÏ¢: GUID=%s, %st
PlayerNametLVtAccID(RRR R°(t resultSetListtextendValueListtplayerInfoDictRVRMR~R€t
resultDict((s.\\PlayerCompensation.pytFindDBResult_SendMailÍs  cCsdS(N((RVRMR~R€R×tplayerLVt    playerJob((s.\\PlayerCompensation.pyR°Ûs5cCs#tjƒj|ƒ}t|ƒdS(N(RR•tGetPlayerByIndextNotifyPlayerCompensation(tindext
clientDatattickRÆ((s.\\PlayerCompensation.pytOnQueryPlayerCompensationscCst|ƒ}t||ƒdS(N(tSeekPlayerCompensationR(RÆR¥((s.\\PlayerCompensation.pyRÝs  cCsatjƒj||ƒtjƒj||ƒtjƒj|ƒdkr]tjƒj|ƒndS(Ni(RRatDeletePersonalCompensationtDeletePlayerCompensationRectGetPersonalCountByGUIDRŽ(t curPlayerIDtcurGUID((s.\\PlayerCompensation.pyRÃ"s
cCs+|d|}tjƒj|||ƒdS(Ni
(RRat AddPlayerRec(RæRVt
prizeStatet    readStatetstate((s.\\PlayerCompensation.pyt SetPrizeState,sc    CsÊ|jƒ}tjjƒ}g}tjƒj|ƒ}x]t|ƒD]O}tjƒj||ƒ}|j|j    |j
|j |j |j |jfƒqCWtjƒjƒ}|jƒ}|jƒ}    tj|jƒƒtjdƒk}
xßt|dddƒD]Ç}tjƒj|ƒ} t| jƒ\} } }| tkrI|
sIqûqIntjƒj|| j    ƒ}|d}|d}|ttfkrqûntjj| jtj ƒ}||krß|t!krßt"|| j    t|ƒqûn||    kr| t#krût"|| j    t|ƒqûqûn| j$dkrl|jƒ}| j$t%d|ƒ@dkrlt"|| j    t|ƒqûqlnt&|kr‘t"|| j    t&|ƒn|j| j    | j
| j | j | j | jfƒqûW|S(    NR­iiÿÿÿÿi
iii(iÿÿÿÿi('tGetIDtdatetimettodayRRatGetPersonalCompensationCountRFtPersonalCompensationAtR>RVR€R}RvRwRxRdtGetJobRÎR´RµR±R²ReR`RR³tFindPlayerRecStatet Disable_Statet    Yet_StatetstrptimeR~RJtTYPE_Time_Formatt Unknown_StateRìtLimitLVType_NotRytpowt Enable_State(RÆRætcurTimetallListtcurPersonalCountR/tcurIpyPersonalDatatcurEntireCounttcurJobtcurLVt isTestAccIDt
curRequireR[R\R]tstatesRêtcurStateR((s.\\PlayerCompensation.pyRâ3sR   $     
 
        cCs™tjƒ}|jƒxZ|D]R\}}}}}}tjƒj|ƒ}    tjƒ}
||
_||
_||
_    t
|ƒ|
_ ||
_ ||
_ ||
_tjƒj|jƒ|ƒd|
_xŠt|    ƒD]|} tjƒj|| ƒ} tjƒ} | j| _| j| _| j| _| j| _t
| jƒ| _|
jj| ƒqÍWt
|
jƒ|
_|jj|
ƒqWt
|jƒ|_tj||ƒdS(Ni
(tChPyNetSendPackttagGCQueryCompensationResulttClearRRaRƒttagGCCompensationPackRVR}R€RtTextLenRvRwRxRót GetPlayerIDtIsReadRFR„ttagGCCompensationItemRRRRt UserDataLentItemsR>tPackListt NetPackCommont SendFakePack(RÆR¥tsendPackRVR€R}RRRRˆtsubPackRÞR‰t subPackItem((s.\\PlayerCompensation.pyRus6 
                         %     c
Cs$tjdƒ|j}tjƒj|ƒ}|s5dS|jtƒrUtjdƒdS|jtdƒ|j}tjd||fƒt    ||ƒ\}}|t
krÇ|jtdƒtjdƒdS|j |j |j |jf\}    }
} } t||||||    |
| | ƒ    tjdƒdS(Ns*Compensation### OnMGRequestCompensation insCompensation### already requestis=Compensation### OnMGRequestCompensation myPlayerID %s GUID %sis0Compensation### OnMGRequestCompensation no founds+Compensation### OnMGRequestCompensation out(RR5RYR•R¾t GetDictByKeytDef_RequestStatetSetDictRVR›RœR€RvRwRxtSendGMRequestCompensationResult( t
routeIndextmapIDt curPackDataRàt
myPlayerIDRÆRVR¦R§R€RRR((s.\\PlayerCompensation.pytOnMGRequestCompensation•s&            *
"cCs˜|jƒ}|rFtjƒj||ƒ}|j|krFt|fSntjƒj||ƒ}|d}|d}|ttfkrŽt    dfStjƒj |ƒ}|j |krÒtjƒj ||ƒt    dfSt|jƒ\}    }
} |    tkr-tj|jƒƒtjdƒk} | s-t    dfSntjj|jtjƒ} tjjƒ}| |krŒt|krŒt||t|ƒt    dfSt|kr¢t|fS|jƒ}| |kræ|
t krÜt||t|ƒnt    dfS|j!ƒ}|j"dkr=|j"t#d|ƒ@dkr=t||t|ƒt    dfSn|j$r{|j$tj%|ƒkr{t||t|ƒt    dfSt||t|ƒt|fS(Ni
R­iÿÿÿÿiii(iÿÿÿÿi(&RíRRatFindPersonalCompensationRYtPersonal_CompensationTypeRóRôRõRœR‚RcRVRäR`RR³R´RµR±R²RîRöR~RJR÷RïRøRìRûtEntire_CompensationTypeRÎRùRòRyRútServerIDtGetPlayerServerID(RÆRVt isPersonnalRætcurPersonalCompensationRRêRR§R[R\R]RRRüRR((s.\\PlayerCompensation.pyR›»sR  
 
 
 
 $ 
 
 
  !
c    Cs+tjƒ}    |jƒ|    _||    _||    _||    _t|ƒ|    _||    _    ||    _
||    _ t j ƒj|ƒ}
xŠt|
ƒD]|} t j ƒj|| ƒ} tjƒ} | j| _| j| _| j| _| j| _t| jƒ| _|    jj| ƒq‚Wt|    jƒ|    _tj|||    ƒdS(N(tChGameToMapPyPackttagGMRequestCompensationResultRíRYtCompensationTypeRVR€RR RvRwRxRRaRƒRFR„ttagGMCompensationItemRRRRRRR>RtSendPyPackToMapServer(RRRÆRVR¦R€RRRRRˆR/R‰R((s.\\PlayerCompensation.pyRs,                              cCsj|j}tjƒj|ƒ}|s(dS|j}|j}|jtdƒ|jrft    |||ƒndS(Ni(
RYRR•R¾RVR)RRtResulttGiveCompensationSuccess(RRRRàRRÆRVR)((s.\\PlayerCompensation.pytOnMGGiveCompensationResults                cCsz|jƒ}t||dƒtj||ƒ|tkrYtjƒj||dtƒdS|t    krvt
||ƒdSdS(Nii
( RíRÄR‘tDR_GiveCompensationSuccessR"RRaRèRõR!RÃ(RÆRVR)Ræ((s.\\PlayerCompensation.pyR-1s    cCsëtjjƒ}g}tjƒjƒ}xst|ƒD]e}tjƒj|ƒ}tjj|jt    j
ƒtj ddƒ}||kr4|j |j ƒq4q4WxG|D]?}tjƒj|ƒtjƒj|ƒtjƒj|ƒq¤WdS(Ntdaysi(RîRïRRaRdRFReRöR~RJR÷t    timedeltaR>RVRRŽR(RütneedClearGUIDListRpR/R§RRV((s.\\PlayerCompensation.pytClearUpEntireCompensationEs+  cCs tƒdS(N(R3(((s.\\PlayerCompensation.pytClearUpTimeOutCompensation_sc    Cs×tjƒj|ƒ}|j}|jƒ}tjƒj||ƒ}|j|kr|tjƒj|ƒ}|j|kr|dSntjƒj    ||ƒ}|dt
kr¨dSt
d|d}tjƒj |||ƒdS(Ni
( RR•RÜRVRíRaR RYRcRótRead_State_YesRè(    RÞRßRàRÆRVRæR&R§R((s.\\PlayerCompensation.pytOnReadCompensationos     cCstjƒj|ƒ}|j}|jƒ}tjƒj||ƒ}|j|krrt||ƒt    ||dƒdStjƒj
|ƒ}|j|krªt    ||dƒdStjƒj
|ƒ}|j|kr t ||t tjƒj ||ƒdƒt    ||dƒdSt    ||dƒdS(Niii
(RR•RÜRVRíRaR RYRÃRÄRcRìRôRó(RÞRßRàRÆRVRæR&R§((s.\\PlayerCompensation.pytOnDelCompensations$      )cCs2tjƒ}||_||_tj||ƒdS(N(RttagGCDelCompensationResultRVR,RR(RÆRVtresultt
sendMCPack((s.\\PlayerCompensation.pyRįs         (DRRJR3RR'RtCommFuncRR‘R±t PlayerDBOpert EventReportR?R™RîRGRCR6trangeRøRôRûRõR“R³RùtLimitLVType_Cant Read_State_NoR5R"R!RœRR RÀRR1R9RRZR^R`R‚RrRbR©R»RXRIRÙR°RáRÝRÃRìRâRRtTrueR›RR.R-R3R4R6R7RÄ(((s.\\PlayerCompensation.pyt<module>sr                          -            )    >1'(    ;            
        B         & F                        !