From d196d101b54ca95a1343399841d6b4e1117143b7 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 04 六月 2025 14:53:08 +0800
Subject: [PATCH] 16 卡牌服务端(GMT命令个人邮件、全服邮件相关;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_CompensationQueryPersonal.py |   93 ++++++++++++++++++++++++++++++++++++----------
 1 files changed, 72 insertions(+), 21 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_CompensationQueryPersonal.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_CompensationQueryPersonal.py
index 0fb9a73..3bee2aa 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_CompensationQueryPersonal.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_CompensationQueryPersonal.py
@@ -2,39 +2,90 @@
 # -*- coding: GBK -*-
 #-------------------------------------------------------------------------------
 #
-##@package PyMongoDataServer.GMToolLogicProcess.Commands.GMT_CompensationQueryPersonal
+##@package PyMongoDB.GMToolLogicProcess.Commands.GMT_CompensationQueryPersonal
 #
-# @todo:个人补偿查询管理
+# @todo:GM工具命令 - 个人邮件查询管理
 # @author hxp
-# @date 2020-12-21
+# @date 2025-06-04
 # @version 1.0
 #
-# 详细描述: 个人补偿查询管理
+# 详细描述: GM工具命令 - 个人邮件查询管理
 #
 #-------------------------------------------------------------------------------
-#"""Version = 2020-12-21 19:00"""
+#"""Version = 2025-06-04 15:00"""
 #-------------------------------------------------------------------------------
 
 import GMCommon
+import GameWorld
+import DataRecordPack
+import PlayerMail
+import DBDataMgr
 
 ## 收到gm命令执行
 # @param gmCmdDict:gm命令字典
 # @return None 
 def OnExec(gmCmdDict):
-    playerList = gmCmdDict.get("playerList", "")  #玩家列表
     
-    if playerList == "":
-        return GMCommon.Def_ParamErr, "Please enter search player info!"               
-
-    # 回复gm参数错误
-    return GMCommon.Def_DoQueryUserDB, ''
-
-## 查询userdb返回
-# @param userdb:userdb
-# @param data:传入的信息
-# @param gmCmdDict:gm命令字典
-# @return None 
-def UserDBResponse(userdb, data, gmCmdDict):
-    return GMCommon.Def_SendToGameServer, ''
-
-
+    errorMsg = ""
+    from GMToolLogicProcess import  ProjSpecialProcess
+    Result, playerID = ProjSpecialProcess.GMCmdPlayerValidationID(gmCmdDict)
+    if Result != GMCommon.Def_Success:
+        return Result, errorMsg
+    
+    Result = GMCommon.Def_Unknow
+    
+    opType = gmCmdDict.get('opType', 'query')
+    
+    # 暂仅做删除及查询
+    if opType == "del":
+        GUIDInfo = gmCmdDict.get('GUIDInfo', '')
+        if not GUIDInfo:
+            return GMCommon.Def_ParamErr
+        
+        delGUIDList = GUIDInfo.split(",")
+        if not delGUIDList:
+            return GMCommon.Def_ParamErr
+        
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
+        for delGUID in delGUIDList:
+            PlayerMail.doMailDel(curPlayer, delGUID, True, playerID)
+            
+    else:
+        pass
+    
+    mailList = __queryMailInfoList(playerID)
+    
+    #流向
+    if opType == "del":
+        GMT_Name = gmCmdDict.get(GMCommon.Def_GMKey_Type, '') 
+        DataRecordPack.DR_ToolGMOperate(0, '', '', GMT_Name, str(gmCmdDict))
+    return GMCommon.Def_Success, {"mailList":mailList}
+    
+def __queryMailInfoList(playerID):
+    '''个人补偿邮件查询
+    '''
+    
+    mailList = []
+    mailMgr = DBDataMgr.GetMailMgr()
+    guids = mailMgr.GetPersonalMailGuids(playerID)
+    for guid in guids:
+        mailObj = mailMgr.GetPersonalMail(playerID, guid)
+        if not mailObj:
+            continue
+        title = mailObj.GetTitle()
+        content = mailObj.GetText()
+        mailType = mailObj.GetType()
+        createTime = mailObj.GetCreateTime()
+        limitDays = mailObj.GetLimitDays()
+        mailState = mailObj.GetMailState()
+        
+        if "<T>" in title:
+            title = title[3:-4]
+            
+        itemList = mailMgr.GetMailItemList(guid)
+        infoDict = {"GUID":guid, "Title":title, "Content":content, "State":mailState, "MailType":mailType,
+                    "CreateTime":createTime, "LimitDays":limitDays, "ItemList":itemList}
+        mailList.append(infoDict)
+        
+    mailList.sort(key=lambda m:(m["CreateTime"]), reverse=True)
+    return mailList

--
Gitblit v1.8.0