From 7d0388eaedf7041bac15122c2845912d8f927345 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Wed, 7 Aug 2019 17:54:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BE=BE=E4=BA=BA=E6=8E=92=E8=A1=8C=E6=A6=9C?= =?UTF-8?q?=E6=A6=9C=E5=8D=95=E8=B0=83=E6=95=B4=20=20=E8=BF=9E=E7=BB=AD?= =?UTF-8?q?=E5=85=85=E5=80=BC=E5=91=A8=E6=9C=9F=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/ActivityLogic.java | 25 ++++++++++++------- .../logic/activity/ActivityTypeEnum.java | 5 +++- .../activity/RechargeSumDayActivity.java | 9 ++++--- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index c1348b198..ae5aa416b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -70,6 +70,9 @@ public class ActivityLogic { Map sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap(); for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) { int time = sGlobalActivity.getTime(); + if(ActivityTypeEnum.getActicityCacheSize()==0){//init cache + ActivityTypeEnum.getActicityType(sGlobalActivity.getId()); + } if (time == 2) { continue; } @@ -937,7 +940,7 @@ public class ActivityLogic { int start = 0; int maxSize = SGameSetting.getGameSetting().getShowRank(); - List expertInfos = new ArrayList<>(maxSize); + List expertInfos = new LinkedList<>(); Set> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.FORCE_RANK, Integer.toString(acitvityId), 0, maxSize - 1); for (ZSetOperations.TypedTuple item : rankInfo) { String value = item.getValue(); @@ -949,17 +952,21 @@ public class ActivityLogic { CommonProto.ExpertInfo personInfoBuild = CommonProto.ExpertInfo.newBuilder() .setName(playerInfoManager.getNickName()) .setScore(score) + .setLevel(playerInfoManager.getLevel()) + .setHeadFrame(playerInfoManager.getHeadFrame()) + .setHead(0) .setRank(++start) .build(); expertInfos.add(personInfoBuild); } - if (rankInfo.size() > 2 * maxSize) { - //删除多余数据 预留一些 长度maxSize - String key = RedisKey.getKey(RedisKey.EXPERT_RANK, String.valueOf(acitvityId), false); - int size = RedisUtil.getInstence().getZsetSize(key); - RedisUtil.getInstence().removeZSetRangeByRank(key, maxSize, size); - } + //策划要全部数据 +// if (rankInfo.size() > 2 * maxSize) { +// //删除多余数据 预留一些 长度maxSize +// String key = RedisKey.getKey(RedisKey.EXPERT_RANK, String.valueOf(acitvityId), false); +// int size = RedisUtil.getInstence().getZsetSize(key); +// RedisUtil.getInstence().removeZSetRangeByRank(key, maxSize, size); +// } int uid = session.getUid(); int score = RedisUtil.getInstence().getZSetScore(RedisKey.EXPERT_RANK, Integer.toString(acitvityId), Integer.toString(uid)).intValue(); @@ -967,10 +974,10 @@ public class ActivityLogic { PlayerInfoProto.GetExpertInfoResponse buildResponse = PlayerInfoProto.GetExpertInfoResponse.newBuilder() .setMyRank(myRank) - .setMyScore(score) .addAllExpert(expertInfos) + .setMyScore(score) .build(); - MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.GETF_EXPERT_RANK_INFO_REQUEST_VALUE, buildResponse, true); + MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.GETF_EXPERT_RANK_INFO_RESPONSE_VALUE, buildResponse, true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java index aacb90ff4..ec14c8b86 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java @@ -41,7 +41,6 @@ public enum ActivityTypeEnum { } public AbstractActivity toActivity(int id) { - if (acticityCache.containsKey(id)) { return acticityCache.get(id); } @@ -90,6 +89,10 @@ public enum ActivityTypeEnum { // } } + public static Integer getActicityCacheSize() { + return acticityCache.size(); + } + public int getType() { return type; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java index 5908be916..c5cce8139 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java @@ -16,10 +16,13 @@ class RechargeSumDayActivity extends AbstractActivity { } @Override - public void onResume(User user) throws Exception { + public void onResume(User user) { ActivityManager activityManager = user.getActivityManager(); ActivityMission activityMission = activityManager.getActivityMissionMap().get(id); - activityMission.setValue(0); + if (activityMission.getValue() == SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).size()) { + activityMission.initMissionInfo(id); + return; + } int missionId = SActivityRewardConfig.getRechargeDaySum().get(activityMission.getValue() + 1); if (user.getPlayerInfoManager().getRechargedaily() > SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId).getValues()[0][0]) { activityMission.setValue(activityMission.getValue() + 1); @@ -51,7 +54,7 @@ class RechargeSumDayActivity extends AbstractActivity { boolean checkValue(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { int[][] values = sActivityRewardConfig.getValues(); User user = UserManager.getUser(session.getUid()); - int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getValue()+1; + int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getValue() + 1; if (value < values[0][1]) { MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "value illegality"); return false;