diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java index bd04aad03..33cc706b8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java @@ -7,6 +7,8 @@ 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.ActivityStateChangeEvent; +import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.store.newRechargeInfo.NewRechargeInfo; @@ -14,6 +16,7 @@ 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.SLuxuryFund; import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; @@ -140,6 +143,30 @@ class RechargeTotalActivity extends AbstractActivity { //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); sendActivityProgress(sessionByUid, activityMission, null); + } + public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission){ + try { + User user = UserManager.getUser(uid); + Map missionMap = activityMission.getActivityMissionMap(); + List rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); + for (SActivityRewardConfig config : rewardConfigs) { + ActivityProgressInfo info = missionMap.get(config.getId()); + int state = getState(user, config, info); + if (state != ActivityType.HAD_TAKED) { + return false; + } + } + }catch (Exception e){ + e.printStackTrace(); + 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; } }