hxp
2019-02-19 4522a07fe53f63a2ff97701ee6a166e80e329181
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
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
#-------------------------------------------------------------------------------
#
##@package EventProcess
#
# @todo: Í³¼ÆÊý¾Ý¸øOSS
# @author Alee
# @date 2012-03-23 22:00
# @version 1.2
#
# ÏêϸÃèÊö: Í³¼ÆÊý¾Ý¸øOSS
# @change: "2012-07-13 15:00" wdb Ôö¼Óossº¯Êý£¬Í³¼Æ¼ÓÈëʱ¼ä
# @change: "2012-10-22 10:00" linyonggui Ä¿Ç°²»ÐèÒª¼Ç¼´ËÊý¾Ý 
#------------------------------------------------------------------------------ 
"""Version = 2012-10-22 10:00"""
#------------------------------------------------------------------------------ 
import EventShellProxy
from Common import mylog
 
import datetime
#------------------------------------------------------------------------------ 
 
DBConfig = __import__('Config.DBConfig')
 
#Ö°ÒµÊýÁ¿
Def_Job_Count = 4
 
#-------------------------------------------------------------------------------
#OnDay
#Àý×ÓEventShellProxy.GetEventShellProxy().SendEvent(1, "1111\x00111",8)
## OnDayµ÷ÓÃͳ¼ÆÊý¾Ý·¢¸øEventServer
# @param db Êý¾Ý¿âʵÀýdbUser
# @return None
def OnDayProcess(db):
 
    return
    
    playerColl = db["tagDBPlayer"]
    
    #ͳ¼Æ²»Í¬Ö°ÒµµÄÐÅÏ¢
    for i in range(Def_Job_Count):
        result = SumInfoByJob(playerColl, i)
        DR_SumJobLVInfo(result, i)
    
 
##·¢ËÍʼþ¼Ç¼¸øEventShell
# @param eventTypeStr: Ê¼þÀàÐͱêʶ
# @param dataDict: Ê¼þ×Öµä
# @return None
def SendEventPack(eventTypeStr, dataStr):
 
    EventShellProxy.GetEventShellProxy().SendEventEx(eventTypeStr, len(eventTypeStr), dataStr, len(dataStr))
    
    #test = 'test'
    #testDict = str({'content':123456, 'content2':'sfsa'})
    #EventShellProxy.GetEventShellProxy().SendEventEx(test, len(test), testDict, len(testDict))
    
    return
 
 
##·¢ËÍʼþ¼Ç¼¸øEventShell
# @param eventTypeStr: Ê¼þÀàÐͱêʶ
# @param dataDict: Ê¼þ×Öµä
# @return None
def SendEventPackByDict(eventTypeStr, dataDict):
    dataDict["time"] = str(datetime.datetime.today()).split(".")[0]
    
    dataStr = str(dataDict)
    EventShellProxy.GetEventShellProxy().SendEventEx(eventTypeStr, len(eventTypeStr), dataStr, len(dataStr))
    return
 
##ͳ¼ÆÖ°ÒµµÈ¼¶ÒøÁ½ÐÅÏ¢
# @param playerColl Íæ¼Ò¼¯ºÏ
# @param job Ö°Òµ±êʶ
# @return None
def SumInfoByJob(playerColl, job):
    #¼¯ºÏ£¨±í£©
    jobLVList = playerColl.group(
                         key={'LV':1},
                         initial={'count':0, 'SilverSum':0},
                         condition={'Job':job},
                         reduce="function(obj, prev) {prev.count++; prev.SilverSum += obj.Silver}",
                         finalize="function(prev) {prev.SilverAve = prev.SilverSum/prev.count}"
                         )
    
    mylog.info('---------type: %s'%type(jobLVList))
    
    timeDict = {'time' : str(datetime.datetime.today()).split(".")[0]}
    
    
    jobLVStr = ''
    for dictInfo in jobLVList:
        dictInfo.update(timeDict)
        
        jobLVStr = jobLVStr + str(dictInfo) + '\n'
    
    mylog.info('%s'%jobLVStr)
    return jobLVStr
    
#===============================================================================
# //01 01 Í³¼ÆÖ°ÒµÃ¿¸öµÈ¼¶µÄÊýÁ¿ºÍÒø×ÓÊýÁ¿¼°Æ½¾ùÊý#tagSumJobLV
# struct tagSumJobLV
# {
#    tagHead    Head;
#    DWORD    InfoLen;
#    char    JobLVInfo[InfoLen];
# };
#===============================================================================
def DR_SumJobLVInfo(jobLVInfo, job):
 
    #·¢ËÍ·â°ü
    SendEventPack("SumJobLVInfo_%s"%job, jobLVInfo)
    return