diff --git a/serverlogic/src/main/java/com/ljsd/jieling/jbean/ActivityMission.java b/serverlogic/src/main/java/com/ljsd/jieling/jbean/ActivityMission.java index 1100ef160..c2a88cfbd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/jbean/ActivityMission.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/jbean/ActivityMission.java @@ -7,6 +7,8 @@ import java.util.Set; import java.util.HashSet; import java.util.List; import java.util.LinkedList; + +import config.SWishActivityUp; import org.springframework.data.annotation.Transient; import com.ljsd.common.mogodb.dblog.*; @@ -83,6 +85,18 @@ public final class ActivityMission extends MongoBase { return choiceRewardId; } + public int getChoiceRewardIdByActivity(int activityId) { + Map map = SWishActivityUp.upMap.get(activityId); + if (map == null){ + return 0; + } + int[] ints = map.get(choiceRewardId); + if (ints == null){ + choiceRewardId = SWishActivityUp.defaultMap.get(activityId); + } + return choiceRewardId; + } + public void setChoiceRewardId(int choiceRewardId) { this.choiceRewardId = choiceRewardId; updateString("choiceRewardId",choiceRewardId); 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 460174301..2b8103f33 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 @@ -580,7 +580,7 @@ public class ActivityLogic implements IEventHandler{ .setEndTime(endTime) .setValue(activityMission.getV()) .setReallyOpen(activityMission.getOpenType()) - .setChoiceRewardId(activityMission.getChoiceRewardId()) + .setChoiceRewardId(activityMission.getChoiceRewardIdByActivity(activityId)) .build(); activityInfoList.add(build); } @@ -1605,7 +1605,7 @@ public class ActivityLogic implements IEventHandler{ // 事件分发 Poster.getPoster().dispatchEvent(new ChoiceDrawCardEvent(user.getId(),activityId,num)); // 数数上报 - int choiceRewardId = user.getActivityManager().getActivityMissionMap().get(activityId).getChoiceRewardId(); + int choiceRewardId = user.getActivityManager().getActivityMissionMap().get(activityId).getChoiceRewardIdByActivity(activityId); //限时招募 计次数 user.getUserMissionManager().onGameEvent(user, GameEvent.LIMIT_TIME_CHOICE_CARD,num); List list = rewardArrayToList(markRewards); @@ -1652,7 +1652,7 @@ public class ActivityLogic implements IEventHandler{ // 累计得抽奖次数 int count = mission.getV(); // up奖励id - int upRewardId = mission.getChoiceRewardId(); + int upRewardId = mission.getChoiceRewardIdByActivity(activityId); // 根据活动获取本期得全部up信息 Map up = SWishActivityUp.upMap.get(activityId); // 根据玩家选取得up奖励id获取详细信息 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java index aa68f5785..39a03560f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java @@ -91,7 +91,7 @@ public class ChoiceDrawCardActivity extends AbstractActivity { throw new ErrorCodeException(ErrorCode.newDefineCode("未达到领取条件")); } // 验证配置表 - int[] incs = SWishActivityUp.rewardMap.get(id).get(mission.getChoiceRewardId()); + int[] incs = SWishActivityUp.rewardMap.get(id).get(mission.getChoiceRewardIdByActivity(id)); if (incs == null){ throw new ErrorCodeException(ErrorCode.newDefineCode("数据错误")); } @@ -160,7 +160,7 @@ public class ChoiceDrawCardActivity extends AbstractActivity { continue; } //up miss - int[] incs = SWishActivityUp.rewardMap.get(id).get(activityMission.getChoiceRewardId()); + int[] incs = SWishActivityUp.rewardMap.get(id).get(activityMission.getChoiceRewardIdByActivity(id)); int[][] reward = getReward(sActivityRewardConfig.getReward(),incs[sActivityRewardConfig.getSort()-1]); itemAttrs.add(reward); isTake = true;