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