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 c386c0b52..6d00e09de 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 @@ -1224,6 +1224,7 @@ public class RedisUtil { return result; } } catch (Exception e) { + LOGGER.info("getAllSetToList key={} exception={}", key, e); TimeUtils.sleep(FAILED_SLEEP); } } @@ -1419,7 +1420,7 @@ public class RedisUtil { else if ( RedisKey.PLAYER_INFO_CACHE.equals(type) || RedisKey.FAMILY_INFO.equals(type) || RedisKey.PIDGIDTEMP.equals(type) || RedisKey.SERVER_WORLDLEVE_INFO.equals(type) || - RedisKey.SERVER_SPLIT_INFO.equals(type) || + RedisKey.SERVER_SPLIT_INFO.equals(type) || RedisKey.FAMILY_LOGS.equals(type) || RedisKey.SERVER_SPLIT_MAIL_INFO.equals(type) || RedisKey.CROSS_ARENA_ROBOT_INFO.equals(type) || RedisKey.CROSS_SERVICE_ARENA.equals(type) || RedisKey.WORLD_ARENA_RANK_MY_MATH.equals(type) || RedisKey.WORLD_ARENA_MY_PRON.equals(type) || RedisKey.WORLD_ARENA_RRECORD.equals(type) || diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java index 48f5edf86..da3068545 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java @@ -9,6 +9,7 @@ import com.ljsd.jieling.logic.dao.GuilidManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.GuildInfo; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.player.PlayerLogic; import rpc.protocols.CommonProto; import rpc.protocols.Family; import rpc.protocols.MessageTypeProto; @@ -50,7 +51,7 @@ public class GuildHelpGetAllRequestHandler extends BaseHandler> entries = target.getGuildMyInfo().getGuidHelpInfo().entrySet(); Family.GuildHelpInfoIndication.Builder builder = Family.GuildHelpInfoIndication.newBuilder(); Map guidHelpHadTakeInfo = target.getGuildMyInfo().getGuidHelpHadTakeInfo(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java index ddf223356..588bb36a1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java @@ -117,9 +117,14 @@ public class GuilidManager { } public static List getGuilidLog(int guildId) { - String key = RedisKey.FAMILY_LOGS + RedisKey.Delimiter_colon + guildId; - List allSetToList = RedisUtil.getInstence().getAllSetToList(key, GuildLog.class); - return allSetToList; + List allSetToList = RedisUtil.getInstence().lGet(RedisKey.FAMILY_LOGS, Integer.toString(guildId), 0, -1); + Gson gson = RedisUtil.getInstence().getGson(); + List logs = new ArrayList<>(allSetToList.size()); + for (String s : allSetToList) { + GuildLog guildLog = gson.fromJson(s, GuildLog.class); + logs.add(guildLog); + } + return logs; } public static void init() throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index 0a0926779..90f63a89d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -416,6 +416,12 @@ public class GuildLogic { } Family.GetFamilyLogResponse.Builder builder = Family.GetFamilyLogResponse.newBuilder(); List guildLogs = GuilidManager.getGuilidLog(user.getPlayerInfoManager().getGuildId()); + Collections.sort(guildLogs, new Comparator(){ + @Override + public int compare(GuildLog o1, GuildLog o2) { + return Integer.compare(o2.getLogTime(), o1.getLogTime()); + } + }); if(guildLogs!=null){ for(GuildLog guildLog : guildLogs){ builder.addFamilyLogInfo(Family.FamilyLogInfo.newBuilder() @@ -1034,7 +1040,7 @@ public class GuildLogic { } MailLogic.getInstance().sendMail(uid,title,content,"",(int) (TimeUtils.now()/1000), Global.MAIL_EFFECTIVE_TIME); Family.FamilyPositionUpdateIndication build = Family.FamilyPositionUpdateIndication.newBuilder().setPosition(position).setUid(uid).build(); - User userInMem = UserManager.getUserInMem(uid); + User userInMem = PlayerLogic.getInstance().getUserByRpc(uid); sendIndicationToMember(GuilidManager.getGuildInfo(userInMem.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.FAMILY_POSITION_UPDATE_INDICAITON,build); } 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 8697e4e50..fbe015bc8 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 @@ -566,7 +566,7 @@ public class PlayerLogic { } public CommonProto.TeamOneInfo.Builder getUserTeamOneInfo(int uid,int teamId) throws Exception { - User user = UserManager.getUser(uid); + User user = PlayerLogic.getInstance().getUserByRpc(uid); CommonProto.TeamOneInfo.Builder oneInfo = CBean2Proto.getTeamOneInfo(user); TeamPosManager teamPosManager = user.getTeamPosManager(); CommonProto.TeamOneTeamInfo.Builder teamInfo = CommonProto.TeamOneTeamInfo.newBuilder(); @@ -630,6 +630,9 @@ public class PlayerLogic { } oneInfo.setTeam(teamInfo); + if(user.getFriendManager().getMyApplyFriends().contains(uid)){ + oneInfo.setIsApplyed(1); + } return oneInfo; } @@ -693,9 +696,6 @@ public class PlayerLogic { oneInfo = getRobotOneInfo(sArenaRobotConfig,info); }else{ oneInfo = getUserTeamOneInfo(id, teamId); - if(UserManager.getUser(id).getFriendManager().getMyApplyFriends().contains(id)){ - oneInfo.setIsApplyed(1); - } } PlayerInfoProto.GetPlayerOneTeamInfoResponse.Builder playerTeamInfo = PlayerInfoProto.GetPlayerOneTeamInfoResponse.newBuilder().setTeamInfo(oneInfo); return playerTeamInfo.build();