From 0b67387c7778b7788fa000736a21126f80c63da5 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Thu, 11 Nov 2021 13:51:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/db/redis/RedisUtil.java | 3 ++- .../crossService/CrossServiceLogic.java | 14 +++++--------- .../ljsd/jieling/logic/player/PlayerLogic.java | 17 ++++++++++------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java index d1d425850..abfff5cf7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java @@ -3,6 +3,7 @@ package com.ljsd.jieling.db.redis; import com.google.gson.Gson; import com.ljsd.GameApplication; import com.ljsd.common.mogodb.util.GlobalData; +import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.db.mongo.AreaManager; import com.ljsd.jieling.util.ConfigurableApplicationContextManager; import org.slf4j.Logger; @@ -1408,7 +1409,7 @@ public class RedisUtil { } else if (!RedisKey.newAreaCacChe.contains(type) && !RedisKey.rankCacChe.contains(type)) { if (key.length() == 8) { - Integer serverId = RedisUtil.getInstence().getObject(RedisKey.CUser_ServerId_Key, key, Integer.class, -1); + Integer serverId = RedisUtil.getInstence().getObject(RedisKey.CUser_ServerId_Key, key, Integer.class, GlobalsDef.REDIS_OVER_TIME_DAY * 10); if (serverId != null && !AreaManager.getInstance().checkServerIdAllowPermit(serverId)) { result = serverId + RedisKey.Delimiter_colon + type + RedisKey.Delimiter_colon + key; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java index 3c0af39e8..cac7e9513 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java @@ -161,16 +161,12 @@ public class CrossServiceLogic { if(bol && player != null){ return player; } - try { - User user = PlayerLogic.getInstance().getUserByRpc(uid); - if (user == null) { - return null; - } - player = formatUserToPlayer(user); - RedisUtil.getInstence().setObject(getKey(player.getUserId()), player, EXPIRE); - } catch (Exception e) { - e.printStackTrace(); + User user = PlayerLogic.getInstance().getUserByRpc(uid); + if (user == null) { + return null; } + player = formatUserToPlayer(user); + RedisUtil.getInstence().setObject(getKey(player.getUserId()), player, EXPIRE); return player; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 2e8407ba8..47066f3a2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -9,6 +9,7 @@ import com.ljsd.jieling.config.json.CoreSettings; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType; +import com.ljsd.jieling.db.mongo.AreaManager; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.exception.ErrorCode; @@ -1695,13 +1696,18 @@ public class PlayerLogic { * @return * @throws Exception */ - public User getUserByRpc(int uid) throws Exception { - Integer serverId = RedisUtil.getInstence().getObject(RedisKey.CUser_ServerId_Key, Integer.toString(uid), Integer.class, -1); - if (serverId == null) { + public User getUserByRpc(int uid) { + int serverId = AreaManager.getInstance().getServerIdByUid(uid, GameApplication.serverId); + if (serverId == 0) { return null; } if (serverId == GameApplication.serverId) { - return UserManager.getUser(uid, true); + try { + return UserManager.getUser(uid, true); + } catch (Exception e) { + LOGGER.info("getUserByRpc Exception uid={} e={}", uid, e); + return null; + } } String rpcString = RedisUtil.getInstence().getObject(RedisKey.LOGIC_SERVER_INFO, Integer.toString(serverId), String.class, -1); String[] split = rpcString.split(":"); @@ -1711,9 +1717,6 @@ public class PlayerLogic { } String ip = rpcString.split(":")[0]; String port = rpcString.split(":")[3]; - //rpc 数据调用 - //String ip =csPlayer.getRpcIp(); - //int port = csPlayer.getRpcPort(); StringBuilder sb = new StringBuilder(); sb.append("RPCCORE").append("|") .append(ip).append("|")