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 0d2771453..ebffbddc1 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 @@ -120,15 +120,15 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { * @param activityMission * @return */ - public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission) { + public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission) throws Exception { Map activityProgressInfoMap = activityMission.getActivityMissionMap(); if (activityProgressInfoMap.isEmpty()) { return false; } - for (Map.Entry item : activityProgressInfoMap.entrySet()) { - ActivityProgressInfo activityProgressInfo = item.getValue(); - int missionStatus = activityProgressInfo.getState(); - if (missionStatus == ActivityType.WILL_TAKE) { + User user = UserManager.getUser(uid); + List allMissInfo = getAllMissInfo(user, activityMission); + for (CommonProto.ActivityInfo.MissionInfo info : allMissInfo) { + if (info.getState() == ActivityType.WILL_TAKE) { return false; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java index 9446bb0e6..bc4d26809 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java @@ -6,16 +6,14 @@ import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.OnlineUserManager; -import com.ljsd.jieling.logic.activity.event.IEvent; -import com.ljsd.jieling.logic.activity.event.Poster; -import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; -import com.ljsd.jieling.logic.activity.event.TotalItemEvent; +import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.SActivityRewardConfig; +import config.SGlobalActivity; import config.SRechargeCommodityNewConfig; import config.SSuperZhenChong; import rpc.protocols.CommonProto; @@ -168,4 +166,31 @@ public class MoneyTotalRechargeActivity extends AbstractActivity { return true; } + /** + * 检查活动是否完成或者可以领取 + * @param uid + * @param activityId + * @param activityMission + * @return + */ + public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission) throws Exception { + Map activityProgressInfoMap = activityMission.getActivityMissionMap(); + if (activityProgressInfoMap.isEmpty()) { + return false; + } + User user = UserManager.getUser(uid); + List allMissInfo = getAllMissInfo(user, activityMission); + for (CommonProto.ActivityInfo.MissionInfo info : allMissInfo) { + if (info.getState() != 2) { + return false; + } + } + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); + if(sGlobalActivity.getResetGrade()==0){ + activityMission.setActivityState(ActivityType.FINISH_STATE); + Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(uid,activityId,ActivityType.FINISH_STATE)); + } + return true; + } + }