ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py
@@ -90,13 +90,13 @@
                cnt += 1
                savaData += mailObj.getBuffer()
                
        GameWorld.Log("Save DBCrossPersonalCompensation cnt :%s" % cnt)
        GameWorld.Log("Save DBCrossPersonalCompensation count :%s, len=%s" % (cnt, len(savaData)))
        return CommFunc.WriteDWORD(cntData, cnt) + savaData
    
    # 从数据库载入数据
    def LoadPyGameData(self, datas, pos, dataslen):
        cnt, pos = CommFunc.ReadDWORD(datas, pos)
        GameWorld.Log("Load DBCrossPersonalCompensation cnt :%s" % cnt)
        GameWorld.Log("Load DBCrossPersonalCompensation count :%s" % cnt)
        
        for _ in xrange(cnt):
            mailObj = PyGameDataStruct.tagDBCrossPersonalCompensation()
@@ -395,6 +395,8 @@
    perMailItemCnt = IpyGameDataPY.GetFuncCfg("MailMaxItemCnt")
    mailCnt = max(1, int(math.ceil(len(addItemDictList)/float(perMailItemCnt)))) # 一封邮件最多5个物品
    for i in xrange(mailCnt):
        if i != 0:
            gold, goldPaper, silver = 0, 0, 0 # 拆分后非第一封的邮件货币归零,防止重复给货币奖励
        startIndex = i*perMailItemCnt
        GUID = str(uuid.uuid1())
        AddPersonalItem(GUID, addItemDictList[startIndex:startIndex + perMailItemCnt], playerIDList, 
@@ -1187,11 +1189,25 @@
#  @return None
def ClearUpPersonalCompensation():
    #校验过期补偿
    tempSign = "<MailTemplate>"
    tempSignEnd = "</MailTemplate>"
    curTime = datetime.datetime.today()
    needClearGUIDList = []
    allCnt = GameWorld.GetCompensationMgr().GetAllPersonalCompensationCount()
    for i in xrange(allCnt):
        curMail = GameWorld.GetCompensationMgr().AtAllPersonalCompensation(i)
        mailText = curMail.Text
        # 通知类模板邮件,过天可直接删除
        if tempSign in mailText and tempSignEnd in mailText and CheckCanDelCompensation(curMail, curMail.GUID):
            #tempKey = mailText[mailText.index(tempSign) + len(tempSign):mailText.index(tempSignEnd)]
            #GameWorld.DebugLog("过天删除无附件通知类邮件模板! tempKey=%s %s, %s" % (tempKey, curMail.PlayerID, curMail.GUID))
            needClearGUIDList.append([curMail.PlayerID, curMail.GUID])
            player = GameWorld.GetPlayerManager().FindPlayerByID(curMail.PlayerID)
            if player and player.GetInitOK():
                NotifyCompensationResult(player, curMail.GUID, 1)
            continue
        # 超过接收邮件30天则完全删除此邮件
        limitTime = datetime.datetime.strptime(curMail.CreateTime, ChConfig.TYPE_Time_Format) + datetime.timedelta(days = 30)
        if limitTime < curTime: