#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package PyMongoDB.GMToolLogicProcess.Commands.GMT_CompensationQueryPersonal # # @todo:GM¹¤¾ßÃüÁî - ¸öÈËÓʼþ²éѯ¹ÜÀí # @author hxp # @date 2025-06-04 # @version 1.0 # # ÏêϸÃèÊö: GM¹¤¾ßÃüÁî - ¸öÈËÓʼþ²éѯ¹ÜÀí # #------------------------------------------------------------------------------- #"""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): 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 "" 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