diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailCache.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailCache.java index ab527dede..c25914725 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailCache.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailCache.java @@ -11,6 +11,7 @@ public class MailCache { private String from; private String reward; private int time; + private int validTime; public String getTitle() { return title; @@ -52,6 +53,14 @@ public class MailCache { this.reward = reward; } + public int getValidTime() { + return validTime; + } + + public void setValidTime(int validTime) { + this.validTime = validTime; + } + public static void main(String[] args) { Gson gson = new Gson(); Map uidReward = new HashMap<>(); @@ -70,6 +79,5 @@ public class MailCache { System.out.println(gson.toJson(mailCache)); String s = gson.toJson(mailCache); System.out.println(gson.toJson(s)); - } } 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 d401b5a40..508fdd1a9 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 @@ -70,6 +70,11 @@ public class MailLogic { while (iterator.hasNext()){ Map.Entry next = iterator.next(); Mail cMail = next.getValue(); + // 未到发送时间 + if (nowTime < cMail.getSendTime()){ + continue; + } + // 有限时间不为0,并且当前时间-发送时间,大于有效时间 if (cMail.getEffectiveTime() != 0 && (nowTime - cMail.getSendTime()) > cMail.getEffectiveTime()){ removeIds.add(cMail.getId()); continue; @@ -160,7 +165,7 @@ public class MailLogic { * 获取所有系统邮件 * */ - private List getSystemMail() throws Exception { + private List getSystemMail() throws Exception { MailingSystem mailingSystem = MailingSystemManager.getMailingSystem(); SystemMailManager systemMailManager = mailingSystem.getSystemMailManager(); Map systemMailMap = systemMailManager.getSystemMailMap(); @@ -168,8 +173,7 @@ public class MailLogic { int nowTime = (int)(TimeUtils.now()/1000); for (Map.Entry entry:systemMailMap.entrySet()){ SystemMail systemMail = entry.getValue(); - int time = systemMail.getSendTime() + systemMail.getEffectiveTime(); - if (systemMail.getEffectiveTime() !=0 && nowTime > time){ + if (nowTime < systemMail.getSendTime()){ continue; } systemMailsList.add(systemMail); @@ -309,7 +313,7 @@ public class MailLogic { LOGGER.info("sendMail==>uid={},title={},reward:{}",uid,title,reward); MessageUtil.sendRedIndication(uid, GlobalsDef.MAIL_RED_TYPE); }catch (Exception e){ - LOGGER.error(e.toString()+"sendMail==>uid={},title={},reward:{}",uid,title,reward); + LOGGER.error(e.toString()+";sendMail==>uid={},title={},reward:{}",uid,title,reward); } } /** @@ -343,7 +347,7 @@ public class MailLogic { return; } for(Map.Entry mail:mails.entrySet()){ - sendMail(Integer.parseInt(mail.getKey()),mail.getValue().getTitle(),mail.getValue().getContent(),mail.getValue().getReward(),mail.getValue().getTime(),0); + sendMail(Integer.parseInt(mail.getKey()),mail.getValue().getTitle(),mail.getValue().getContent(),mail.getValue().getReward(),mail.getValue().getTime(),mail.getValue().getValidTime()); } redisUtil.del(RedisKey.getKey(RedisKey.READY_TO_USER_MAIL,"",false)); MongoUtil.getLjsdMongoTemplate().lastUpdate(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java index 00c500e94..2b154eca1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java @@ -102,6 +102,9 @@ public abstract class AbstractRank implements IRank { } ZSetOperations.TypedTuple data = rankByKey.iterator().next(); User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true); + if (everyUser == null){ + return builder; + } CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder() .setRank(1) .setParam1(getParam1(data.getScore())) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildForceRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildForceRank.java index aa6036990..cab929826 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildForceRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildForceRank.java @@ -10,6 +10,7 @@ import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; import org.springframework.data.redis.core.ZSetOperations; +import java.util.Map; import java.util.Set; /** @@ -69,6 +70,8 @@ public class GuildForceRank extends AbstractRank { .setParam2(getParam2(zSetScore)).build(); allUserResponse.setMyRankInfo(towerRankInfo); } + + @Override public CommonProto.UserRank.Builder getFirst(int activityId) throws Exception { Set> rankByKey = getRankByKey(activityId==0?"":String.valueOf(activityId), 0, 0); CommonProto.UserRank.Builder builder = CommonProto.UserRank.newBuilder(); @@ -82,11 +85,15 @@ public class GuildForceRank extends AbstractRank { .setParam2(getParam2(data.getScore())) .setParam3(getParam3(data.getScore())); int gid = Integer.parseInt(data.getValue()); - GuildInfo guildInfo = GuilidManager.guildInfoMap.get(gid); + Map map = GuilidManager.guildInfoMap; + if (map == null || map.isEmpty()){ + return builder; + } + GuildInfo guildInfo = map.get(gid); Set chairMan = guildInfo.getMembers().get(GlobalsDef.CHAIRMAN); int chairManId = chairMan.iterator().next(); User user = UserManager.getUser(chairManId); - CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder() + builder = CommonProto.UserRank.newBuilder() .setUid(chairManId) .setUserName(user.getPlayerInfoManager().getNickName()) .setHead(user.getPlayerInfoManager().getHead()) @@ -96,6 +103,6 @@ public class GuildForceRank extends AbstractRank { .setForce(user.getPlayerInfoManager().getMaxForce()) .setSex(user.getPlayerInfoManager().getSex()) .setGuildName(guildInfo.getName()); - return everyRank; + return builder; } } diff --git a/tablemanager/src/main/java/config/SWorldBossRewardConfig.java b/tablemanager/src/main/java/config/SWorldBossRewardConfig.java index 213a7433c..baab5e880 100644 --- a/tablemanager/src/main/java/config/SWorldBossRewardConfig.java +++ b/tablemanager/src/main/java/config/SWorldBossRewardConfig.java @@ -19,6 +19,8 @@ public class SWorldBossRewardConfig implements BaseConfig { private int type; + private int bossId; + public static Map> rewardByTypeAndRankMap = new HashMap<>(); @@ -50,4 +52,8 @@ public class SWorldBossRewardConfig implements BaseConfig { public int getType() { return type; } + + public int getBossId() { + return bossId; + } } \ No newline at end of file