From 3463c2052bd0475569a1156a4055bc47f7a8caf5 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 8 Dec 2022 17:33:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=96=E6=99=B6=E7=B4=AF=E5=85=85=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E5=92=8C=E4=BB=99=E6=99=B6=E7=B4=AF=E5=85=85=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8,=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/AbstractActivity.java | 10 +++--- .../activity/MoneyTotalRechargeActivity.java | 33 ++++++++++++++++--- 2 files changed, 34 insertions(+), 9 deletions(-) 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; + } + }