diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java index 0a4b49a97..d8db6d94a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java @@ -16,6 +16,7 @@ import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.PlayerInfoProto; import com.ljsd.jieling.util.*; +import org.luaj.vm2.ast.Str; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,17 +56,20 @@ public class MailLogic { } List cMailList = new CopyOnWriteArrayList<>(); Iterator> iterator = mailMap.entrySet().iterator(); - + int nowTime = (int)(TimeUtils.now()/1000); + Set removeIds = new HashSet<>(); while (iterator.hasNext()){ Map.Entry next = iterator.next(); Mail cMail = next.getValue(); - int nowTime = (int)(TimeUtils.now()/1000); if (cMail.getEffectiveTime() != 0 && (nowTime - cMail.getSendTime()) > cMail.getEffectiveTime()){ - mailManager.removeMail(cMail.getId()); + removeIds.add(cMail.getId()); continue; } cMailList.add(cMail); } + for(String removeId : removeIds){ + mailManager.removeMail(removeId); + } //超过邮件上限, 删除时间最早的一封 int size = cMailList.size(); if (size > Global.MAIL_BOX_CAPACITY){ @@ -123,6 +127,14 @@ public class MailLogic { mailMap.put(mail.getId(),mail); } + public static void main(String[] args) { + Calendar calendar =Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,18); + calendar.set(Calendar.MINUTE,30); + System.out.println(calendar.getTime()); + System.out.println(calendar.getTimeInMillis()); + } + /** * 获取所有系统邮件 *