diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/AreaManager.java b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/AreaManager.java index 24b88351e..f4a0693b6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/AreaManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/AreaManager.java @@ -416,7 +416,10 @@ public class AreaManager { } public int getServerIdByUid(int uid, int defaultServerId) { -// Integer serverIdByUid = RedisUtil.getInstence().getMapEntry(RedisKey.CUser_ServerId_Key,"",Integer.toString(uid),Integer.class); + if (defaultServerId == GameApplication.serverId){ + return defaultServerId; + } + if (serverIds.contains(uid)) { return uid; } @@ -424,11 +427,17 @@ public class AreaManager { if (serverIdByUid != null) { return serverIdByUid; } + int serverIdFromMongo = CoreLogic.getInstance().findServerIdFromMongo(uid); - if (serverIdFromMongo > 0) { - String key = RedisKey.CUser_ServerId_Key + RedisKey.Delimiter_colon + uid; - RedisUtil.getInstence().setObject(key, Integer.toString(serverIdFromMongo), GlobalsDef.REDIS_OVER_TIME_DAY * 10); - } +// if (serverIdFromMongo > 0) { +// String key = RedisKey.CUser_ServerId_Key + RedisKey.Delimiter_colon + uid; +// RedisUtil.getInstence().setObject(key, Integer.toString(serverIdFromMongo), GlobalsDef.REDIS_OVER_TIME_DAY * 10); +// } return serverIdFromMongo; } + + public void putCUserServer(int uid, int serverId){ + String key = RedisKey.CUser_ServerId_Key + RedisKey.Delimiter_colon + uid; + RedisUtil.getInstence().setObject(key, serverId, GlobalsDef.REDIS_OVER_TIME_DAY * 10); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index 596483885..49b9ee525 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.ljsd.GameApplication; import com.ljsd.jieling.config.clazzStaticCfg.HeroStaticConfig; import com.ljsd.jieling.core.GlobalsDef; +import com.ljsd.jieling.db.mongo.AreaManager; import com.ljsd.jieling.db.mongo.LjsdMongoTemplate; import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.db.mongo.gmActivity.ARBActivity; @@ -83,6 +84,9 @@ public class GetPlayerInfoHandler extends BaseHandler{ int token = netData.getToken(); int msgId = netData.getMsgId(); int msgIndex = netData.getIndex(); + + AreaManager.getInstance().putCUserServer(userId, GameApplication.serverId); + PlayerInfoProto.GetPlayerInfoRequest getPlayerInfoRequest = PlayerInfoProto.GetPlayerInfoRequest.parseFrom(netData.parseClientProtoNetData()); LOGGER.info("processMessage->uid={},token={},msgId={},msgIndex={},messageNum={},messageStr={}", userId, token,msgId,msgIndex,getPlayerInfoRequest.getNum(),getPlayerInfoRequest.getStr()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java index 824fdd825..defd47ee3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java @@ -182,7 +182,7 @@ public class CSPlayer { } public int getServerId() { - return AreaManager.getInstance().getServerIdByUid(userId, GameApplication.serverId); + return AreaManager.getInstance().getServerIdByUid(userId, 0); } public void setServerId(int serverId) {