diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index 43497b9aa..051c8a081 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -173,7 +173,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); } - private void getAllMissRewards(User user, ISession session, List itemAttrs) throws Exception { + public void getAllMissRewards(User user, ISession session, List itemAttrs) throws Exception { List misssIds = new LinkedList<>(); List cfgs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); if (null == cfgs) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java index 0d5bb4a09..f8bd890a6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java @@ -69,28 +69,11 @@ public class TreasureActivity extends AbstractActivity { private void takeTreasureReward(ISession session, User user, int activityId, int missionId) throws Exception { int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE; ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(activityId); - PlayerManager playerInfoManager = user.getPlayerInfoManager(); - int changeState = ActivityType.HAD_TAKED; - int hadBuyTreasure = playerInfoManager.getHadBuyTreasure(); - if (hadBuyTreasure == 1) { - changeState = ActivityType.FINISH_TAKED; - } + int changeState = getChangerState(user); List dropList = new ArrayList<>(2); - Set missionIds = new HashSet<>(); +// Set missionIds = new HashSet<>(); if(missionId==-1){ - for(int i = 1 ; i<=user.getPlayerInfoManager().getTreasureLevel();i++){ - Map progressInfoMap = activityMission.getActivityProgressInfoMap(); - int state =progressInfoMap.get(i).getState(); - if(state==changeState||state==ActivityType.FINISH_TAKED) { - continue; - } - missionIds.add(i); - dropByState(dropList,state,changeState,i); - ActivityProgressInfo progressInfo = new ActivityProgressInfo(0,changeState); - activityMission.updateProgressInfo(i, progressInfo); - - } - + getAllTreasureRewards(user,activityMission,changeState,dropList); }else{ int state = activityMission.getActivityProgressInfoMap().get(missionId).getState(); if(state==changeState||state==ActivityType.FINISH_TAKED){ @@ -99,7 +82,7 @@ public class TreasureActivity extends AbstractActivity { dropByState(dropList,state,changeState,missionId); ActivityProgressInfo progressInfo = new ActivityProgressInfo(0,changeState); activityMission.updateProgressInfo(missionId, progressInfo); - missionIds.add(missionId); +// missionIds.add(missionId); } // sendActivityProgress(session,activityMission,missionIds); @@ -205,4 +188,31 @@ public class TreasureActivity extends AbstractActivity { } } + + private int getChangerState(User user){ + PlayerManager playerInfoManager = user.getPlayerInfoManager(); + int changeState = ActivityType.HAD_TAKED; + int hadBuyTreasure = playerInfoManager.getHadBuyTreasure(); + if (hadBuyTreasure == 1) { + changeState = ActivityType.FINISH_TAKED; + } + return changeState; + } + private void getAllTreasureRewards(User user,ActivityMission activityMission,int changeState,List dropList){ + for(int i = 1 ; i<=user.getPlayerInfoManager().getTreasureLevel();i++){ + Map progressInfoMap = activityMission.getActivityProgressInfoMap(); + int state =progressInfoMap.get(i).getState(); + if(state==changeState||state==ActivityType.FINISH_TAKED) { + continue; + } + dropByState(dropList,state,changeState,i); + ActivityProgressInfo progressInfo = new ActivityProgressInfo(0,changeState); + activityMission.updateProgressInfo(i, progressInfo); + + } + } + @Override + public void getAllMissRewards(User user, ISession session, List itemAttrs){ + getAllTreasureRewards(user, user.getActivityManager().getActivityMissionMap().get(id), getChangerState(user), itemAttrs); + } }