From 6dafb5efaf74d7193d7c6c1d0a0c0b998d0e1e90 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 22 七月 2024 17:59:05 +0800
Subject: [PATCH] 10223 【越南】【砍树】【主干】【港台】秘境寻宝(秘境榜单数据备份优化;优化本服跨服榜备份数据规则,后台查询本服跨服历史榜统一逻辑;)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py |   37 ++++++++++++++++++++++++-------------
 1 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
index 4e12dba..ccb8aa3 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
@@ -122,10 +122,10 @@
     def GetGroupValue2(self): return self.__groupValue2
     
     def ClearData(self):
-        GameWorld.Log("CrossBillboard ClearData billboardType=%s,groupValue1=%s,groupValue2=%s" 
-                      % (self.__billboardType, self.__groupValue1, self.__groupValue2))
+        GameWorld.Log("CrossBillboard ClearData billboardType=%s,groupValue1=%s,groupValue2=%s,dataCount=%s" 
+                      % (self.__billboardType, self.__groupValue1, self.__groupValue2, len(self.__billboardList)))
         if GameWorld.IsCrossServer():
-            self.SaveDRData()
+            self.SaveDRData("Clear")
         self.__billboardList = [] # [tagDBCrossBillboard, ...] 
         self.__idOrderDict = {} # {id:名次, ...}
         
@@ -169,16 +169,25 @@
         order = idOrderDict[findID]
         return order - 1
     
-    def SaveDRData(self):
+    def SaveDRData(self, eventName="", addDataDict={}):
         ## 记录流向数据
-        eventTypeName = "CrossBillboard_%s" % (self.__billboardType)
-        drDict = {"BillboardType":self.__billboardType, "GroupValue1":self.__groupValue1, "GroupValue2":self.__groupValue2, 
-                  "DataCount":len(self.__billboardList)}
-        DataRecordPack.SendEventPack(eventTypeName, drDict)
+        
+        dataCount = len(self.__billboardList)
+        if not dataCount:
+            return
+        
+        serverTime = GameWorld.GetServerTime()
+        timeStr = "%02d%02d%02d%s" % (serverTime.hour, serverTime.minute, serverTime.second, str(serverTime.microsecond)[:3])
+        eventTypeStr = "Billboard_%s_%s_%s_%s_%s" % (self.__billboardType, self.__groupValue1, self.__groupValue2, eventName, timeStr)
+        
+        dataDict = {"BillboardType":self.__billboardType, "DataCount":dataCount, "addDataDict":addDataDict,
+                    "GroupValue1":self.__groupValue1, "GroupValue2":self.__groupValue2}
+        DataRecordPack.SendEventPack(eventTypeStr, dataDict)
+        
         for index, billboardData in enumerate(self.__billboardList):
-            dataDict = {"BillboardType":billboardData.BillboardType, "GroupValue1":billboardData.GroupValue1, 
-                        "GroupValue2":billboardData.GroupValue2, "Type2":billboardData.Type2,
-                        "ID":billboardData.ID, "ID2":billboardData.ID2, "Place":index,  
+            rank = index + 1
+            dataDict = {"Type2":billboardData.Type2, "Rank":rank,
+                        "ID":billboardData.ID, "ID2":billboardData.ID2,  
                         "Name1":billboardData.Name1, "Name2":billboardData.Name2,
                         "Value1":billboardData.Value1, "Value2":billboardData.Value2,
                         "Value3":billboardData.Value3, "Value4":billboardData.Value4,
@@ -186,7 +195,7 @@
                         "Value7":billboardData.Value7, "Value8":billboardData.Value8,
                         "CmpValue":billboardData.CmpValue, "CmpValue2":billboardData.CmpValue2, 
                         "CmpValue3":billboardData.CmpValue3, "UserData":billboardData.UserData}
-            DataRecordPack.SendEventPack(eventTypeName, dataDict)
+            DataRecordPack.SendEventPack(eventTypeStr, dataDict)
         return
     
     def GetBillboardDataList(self): return self.__billboardList
@@ -273,10 +282,12 @@
 def CopyBillboardOnDay():
     billboardMgr = PyDataManager.GetCrossBillboardManager()
     for billboardType in ShareDefine.CrossBillboardTypeList:
+        if billboardType in [ShareDefine.Def_CBT_BossTrialSubmitBak, ShareDefine.Def_CBT_BossTrialSubmitFamilyBak]:
+            continue
         groupList = billboardMgr.GetBillboardGroupList(billboardType)
         for billboardType, groupValue1, groupValue2 in groupList:
             billboardObj = billboardMgr.GetCrossBillboard(billboardType, groupValue1, groupValue2)
-            billboardObj.SaveDRData()
+            billboardObj.SaveDRData("OnDay")
     return
 
 def CopyBillboard(fromBillboardType, toBillboardType):

--
Gitblit v1.8.0