diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/question/QuestionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/question/QuestionLogic.java index 4be4c02c3..3d77ff201 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/question/QuestionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/question/QuestionLogic.java @@ -37,8 +37,10 @@ public class QuestionLogic { public void onLogin(User user) throws Exception{ GlobalSystemControl globalSystemControl = GlobalSystemControl.getGlobalSystemControl(); if (user.getQuestionManager().getQuestId() != globalSystemControl.getQuestId()) { - user.getQuestionManager().setQuestId(globalSystemControl.getQuestId()); - user.getQuestionManager().setQuestState(0); + if(!user.getQuestionManager().getAnswerMap().containsKey(String.valueOf(globalSystemControl.getQuestId()))){ + user.getQuestionManager().setQuestId(globalSystemControl.getQuestId()); + user.getQuestionManager().setQuestState(0); + } } } @@ -54,7 +56,7 @@ public class QuestionLogic { TreeSet last = new TreeSet<>((CQuestionBean o1, CQuestionBean o2) -> { if (Long.valueOf(o1.getStart()) > Long.valueOf(o2.getStart())) { return -1; - } else if (Long.valueOf(o1.getStart()) == Long.valueOf(o2.getStart())) { + } else if (Long.valueOf(o1.getStart()) .equals( Long.valueOf(o2.getStart()))) { return 0; } else { return 1; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java index 790b90fd1..7ec7b1e82 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java @@ -274,8 +274,20 @@ public class ProtocolsManager implements ProtocolsAbstract { int uid = packetNetData.getUserId(); int token = packetNetData.getToken(); session.setUid(uid); - session.setToken(token); - session.setUserLoginTime(System.currentTimeMillis()/1000); + String tokenKey = RedisKey.getKey(RedisKey.TOKEN, String.valueOf(uid),false); + if(null==tokenKey||tokenKey.isEmpty()){ + return false; + } + String tokenK = (String)RedisUtil.getInstence().get(tokenKey); + if(null==tokenK||tokenK.isEmpty()){ + return false; + } + int serverToken = Integer.parseInt((String)RedisUtil.getInstence().get(tokenKey)); + if (token == serverToken){ + session.setToken(token); + session.setUserLoginTime(System.currentTimeMillis()/1000); + return true; + } return true; }