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