diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/BlessInfoConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/BlessInfoConfig.java index aefec5141..ac114df55 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/BlessInfoConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/BlessInfoConfig.java @@ -25,9 +25,15 @@ public class BlessInfoConfig { public static final int REWARD_VIEW_END_ID = 48; /** - * 过程状态(0:奖励保存前;-1:保存后;1及以上:抽取次数) + * 过程状态(0:奖励保存前;-1:保存后) + */ + public static final int BLESS_STATUS = 98; + + /** + * 抽取次数 */ public static final int BLESS_PROGRESS_STATUS = 99; + /** * 上次刷新时间 */ 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 c04a409f7..8ff4168d1 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 @@ -861,7 +861,7 @@ public class ActivityLogic implements IEventHandler{ throw new ErrorCodeException(ErrorCode.newDefineCode("已经抽过改格子")); } int resultRewardId = 0; - if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() == -1) { + if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_STATUS).getProgrss() == -1) { Map poolMap = STableManager.getConfig(SBlessingRewardPool.class); int[][] result = new int[BlessInfoConfig.START_CAPACITY][]; int index = 0; @@ -889,12 +889,19 @@ public class ActivityLogic implements IEventHandler{ activityMission.getActivityMissionMap().put(entry.getKey(), progress); index++; } - ActivityProgressInfo activityProgressInfo1 = new ActivityProgressInfo(); - activityProgressInfo1.setProgrss(1); - activityProgressInfo1.setState(0); - activityMission.getActivityMissionMap().put(BlessInfoConfig.BLESS_PROGRESS_STATUS,activityProgressInfo1); - // activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS, new ActivityProgressInfo(1, 0)); + +// ActivityProgressInfo activityProgressInfo1 = activityProgressInfoMap.getOrDefault(BlessInfoConfig.BLESS_PROGRESS_STATUS,new ActivityProgressInfo()); +// activityProgressInfo1.setProgrss(activityProgressInfo1.getProgrss()+1); +// activityProgressInfo1.setState(0); +// activityMission.getActivityMissionMap().put(BlessInfoConfig.BLESS_PROGRESS_STATUS,activityProgressInfo1); + activityMission.getActivityMissionMap().put(BlessInfoConfig.BLESS_STATUS,new ActivityProgressInfo()); + + // activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS, new ActivityProgressInfo(1, 0)); } + ActivityProgressInfo activityProgressInfo1 = new ActivityProgressInfo(); + activityProgressInfo1.setProgrss(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() + 1); + activityProgressInfo1.setState(0); + activityMission.getActivityMissionMap().put(BlessInfoConfig.BLESS_PROGRESS_STATUS,activityProgressInfo1); //检验消耗道具 int[][] costConfig = SBlessingConfig.blessingConfigMap.get(blessActivityId).getCost(); int[][] cost = new int[1][]; @@ -939,10 +946,7 @@ public class ActivityLogic implements IEventHandler{ dropItem[0] = reward; CommonProto.Drop.Builder drop = ItemUtil.dropPer(user, dropItem, BIReason.BLESS_REWARD); - ActivityProgressInfo activityProgressInfo1 = new ActivityProgressInfo(); - activityProgressInfo1.setProgrss(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() + 1); - activityProgressInfo1.setState(0); - activityMission.getActivityMissionMap().put(BlessInfoConfig.BLESS_PROGRESS_STATUS,activityProgressInfo1); + // if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() == BlessInfoConfig.START_CAPACITY + 1) { // if (SBlessingConfig.sBlessingConfig.getIsRefresh() != 0) { // blessRefresh(user); @@ -972,7 +976,7 @@ public class ActivityLogic implements IEventHandler{ PlayerInfoProto.blessResponse.Builder response = PlayerInfoProto.blessResponse.newBuilder(); Map blessInfoMap = activityMission.getActivityMissionMap(); //保存之前 - if (blessInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() == 0) { + if (blessInfoMap.get(BlessInfoConfig.BLESS_STATUS).getProgrss() == -1) { for (Map.Entry entry : blessInfoMap.entrySet()) { if (entry.getKey() / BlessInfoConfig.COUNT_REWARD_START_ID > 0) { CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder() @@ -1061,6 +1065,7 @@ public class ActivityLogic implements IEventHandler{ } } + response.setCount(blessInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()); response.setLastRefreshTime(blessInfoMap.get(BlessInfoConfig.LAST_REFRESH_TIME).getProgrss()); return response; } @@ -1081,7 +1086,7 @@ public class ActivityLogic implements IEventHandler{ } SBlessingConfig blessingConfig =SBlessingConfig.blessingConfigMap.get(blessActivityId) ; ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(blessActivityId); - if (activityMission.getActivityMissionMap().get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss() != 0) { + if (activityMission.getActivityMissionMap().get(BlessInfoConfig.BLESS_STATUS).getProgrss() != -1) { throw new ErrorCodeException(ErrorCode.newDefineCode("您当前不能进行保存")); } if (blessingConfig.getRandomNum() != BlessInfoConfig.START_CAPACITY - rewardIds.length) { @@ -1100,7 +1105,7 @@ public class ActivityLogic implements IEventHandler{ ActivityProgressInfo activityProgressInfo1 = new ActivityProgressInfo(); activityProgressInfo1.setProgrss(-1); activityProgressInfo1.setState(0); - activityMission.getActivityMissionMap().put(BlessInfoConfig.BLESS_PROGRESS_STATUS, activityProgressInfo1); + activityMission.getActivityMissionMap().put(BlessInfoConfig.BLESS_STATUS, activityProgressInfo1); MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BlessActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BlessActivity.java index 002d93e1f..48843d8f0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BlessActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BlessActivity.java @@ -43,7 +43,7 @@ public class BlessActivity extends AbstractActivity { @Override public void initActivity(User user){ - blessInfoInit(user.getActivityManager(), id); + blessInfoInit(user.getActivityManager(), id,false); } @Override @@ -61,7 +61,7 @@ public class BlessActivity extends AbstractActivity { * @param activityId * @return */ - private ActivityMission blessInfoInit(ActivityManager activityManager, int activityId) { + private ActivityMission blessInfoInit(ActivityManager activityManager, int activityId,boolean isRefresh) { SBlessingConfig sBlessingConfig = SBlessingConfig.blessingConfigMap.get(activityId); if(sBlessingConfig==null){ return null; @@ -141,8 +141,8 @@ public class BlessActivity extends AbstractActivity { ActivityProgressInfo progressInfo = new ActivityProgressInfo(); activityMission.getActivityMissionMap().put(i, progressInfo); } - //初始化状态 activityMission.getActivityMissionMap().put(BlessInfoConfig.BLESS_PROGRESS_STATUS, new ActivityProgressInfo()); + //初始化上次刷新时间 if (activityMission.getActivityMissionMap().get(BlessInfoConfig.LAST_REFRESH_TIME) == null) { activityMission.getActivityMissionMap().put(BlessInfoConfig.LAST_REFRESH_TIME, new ActivityProgressInfo()); @@ -157,10 +157,30 @@ public class BlessActivity extends AbstractActivity { progressInfo.setProgrss(supremeResult[i]); activityMission.getActivityMissionMap().put(BlessInfoConfig.SUPREME_REWARD_START_ID + i, progressInfo); } - for (int i = 0; i < countResult.length; i++) { - ActivityProgressInfo progressInfo = new ActivityProgressInfo(); - progressInfo.setProgrss(countResult[i]); - activityMission.getActivityMissionMap().put(BlessInfoConfig.COUNT_REWARD_START_ID + counts[i], progressInfo); + + ActivityProgressInfo statusInfo = new ActivityProgressInfo(); + statusInfo.setProgrss(-1); + activityMission.getActivityMissionMap().put(BlessInfoConfig.BLESS_STATUS,statusInfo); + //初始化状态 + if(!isRefresh){ + activityMission.getActivityMissionMap().put(BlessInfoConfig.BLESS_PROGRESS_STATUS, new ActivityProgressInfo()); + for (int i = 0; i < countResult.length; i++) { + ActivityProgressInfo progressInfo = new ActivityProgressInfo(); + progressInfo.setProgrss(countResult[i]); + activityMission.getActivityMissionMap().put(BlessInfoConfig.COUNT_REWARD_START_ID + counts[i], progressInfo); + } + }else{ + ActivityMission activityMission1 = activityManager.getActivityMissionMap().get(activityId); + ActivityProgressInfo missionInfo1 = activityMission1.getActivityMissionMap().get(BlessInfoConfig.BLESS_PROGRESS_STATUS); + activityMission.getActivityMissionMap().put(BlessInfoConfig.BLESS_PROGRESS_STATUS,missionInfo1); + for(Map.Entry entry:activityMission1.getActivityMissionMap().entrySet()){ + + if (entry.getKey() / BlessInfoConfig.COUNT_REWARD_START_ID >0) { + activityMission.getActivityMissionMap().put(entry.getKey(),entry.getValue()); + } + } +// ActivityProgressInfo missionInfo2 = activityMission1.getActivityMissionMap().get(BlessInfoConfig.COUNT_REWARD_START_ID); + } activityManager.getActivityMissionMap().put(activityId, activityMission); return activityMission; @@ -188,9 +208,14 @@ public class BlessActivity extends AbstractActivity { ActivityProgressInfo tempProgress = new ActivityProgressInfo(); //数据清空 for (Map.Entry entry : activityMission.getActivityMissionMap().entrySet()) { + + if(entry.getKey()/BlessInfoConfig.COUNT_REWARD_START_ID>0||entry.getKey()==BlessInfoConfig.BLESS_PROGRESS_STATUS){ + continue; + } + activityMission.getActivityMissionMap().put(entry.getKey(), tempProgress); } - activityMission = blessInfoInit(activityManager, activityId); + activityMission = blessInfoInit(activityManager, activityId,true); return activityMission; }