From e2fc3f54cded2a693a1481e97e57c2cc82979e92 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Sat, 26 Feb 2022 00:05:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E5=80=BC=E8=BF=94=E5=88=A9=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E4=BF=AE=E6=94=B9=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/NewRechargeSumDayActivity.java | 44 +++++++++---------- .../jieling/logic/store/BuyGoodsNewLogic.java | 4 +- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java index 5df69f583..2516f8c6a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java @@ -5,10 +5,7 @@ import com.ljsd.jieling.jbean.ActivityManager; 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.BuyGoodsDirectEvent; -import com.ljsd.jieling.logic.activity.event.IEvent; -import com.ljsd.jieling.logic.activity.event.NewWelfareEvent; -import com.ljsd.jieling.logic.activity.event.Poster; +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.logic.store.GiftGoodsType; @@ -26,40 +23,33 @@ class NewRechargeSumDayActivity extends AbstractActivity { public NewRechargeSumDayActivity(int id) { super(id); - Poster.getPoster().listenEvent(this, BuyGoodsDirectEvent.class); + Poster.getPoster().listenEvent(this, RechargeRewardEvent.class); } @Override public void onEvent(IEvent event) throws Exception { super.onEvent(event); - if (!(event instanceof BuyGoodsDirectEvent)) { + if (!(event instanceof RechargeRewardEvent)) { return; } - BuyGoodsDirectEvent buyGoodsDirectEvent = (BuyGoodsDirectEvent) event; - int goodsId=buyGoodsDirectEvent.getGoodsId(); - SRechargeCommodityNewConfig rechargeConfig=SRechargeCommodityNewConfig.getConfigById(goodsId); - if (rechargeConfig==null||rechargeConfig.getType()!= GiftGoodsType.RechargeSumDay){ - return; - } - User user = UserManager.getUser(buyGoodsDirectEvent.getUid()); + RechargeRewardEvent rechargeRewardEvent = (RechargeRewardEvent) event; + int rechargeCount=rechargeRewardEvent.getRechargeCount(); + User user = UserManager.getUser(rechargeRewardEvent.getUid()); ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); - boolean isSend=false; for (Map.Entry item : activityMission.getActivityMissionMap().entrySet()) { ActivityProgressInfo activityProgressInfo = item.getValue(); int missionId=item.getKey(); SActivityRewardConfig missionConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId); - if (missionConfig.getValues()[0][0]==goodsId&&missionConfig.getSort()-1==activityMission.getV()&&activityProgressInfo.getState()==ActivityType.WILL_TAKE){ - activityProgressInfo.setState(1); - isSend=true; + if (missionConfig.getSort()-1==activityMission.getV()&&activityProgressInfo.getState()==ActivityType.WILL_TAKE){ + int dayRechargeCount= activityProgressInfo.getProgrss()+rechargeCount; + activityProgressInfo.setProgrss(dayRechargeCount); } activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo); - } - if (isSend){ - //更新进度 - ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); - } + } + //更新进度 + ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); + sendActivityProgress(sessionByUid, activityMission, null); } @Override @@ -68,14 +58,20 @@ class NewRechargeSumDayActivity extends AbstractActivity { ActivityMission activityMission = activityManager.getActivityMissionMap().get(id); int buyNum=0; for (Map.Entry progressInfoEntry : activityMission.getActivityMissionMap().entrySet()) { - if (progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED){ + SActivityRewardConfig rewardConfig= SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey()); + if (progressInfoEntry.getValue().getProgrss()>=rewardConfig.getValues()[0][0]){ buyNum++; + }else{ + progressInfoEntry.getValue().setProgrss(0); } } if (buyNum > activityMission.getV()) { activityMission.setV(activityMission.getV() + 1); } if (activityMission.getV() >= SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).size()) { + //补发未领取的奖励 + ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); + takeAllReward(sessionByUid); ActivityLogic.getInstance().initMissionInfo(activityMission,id); } ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 4da5280be..872f6b650 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -384,8 +384,8 @@ public class BuyGoodsNewLogic { if(dropArray!=null && dropArray.length>=1){ drop = ItemUtil.drop(user,dropArray, BIReason.DIRECT_BUY); } - //红包事件 和积天豪礼事件 - if(type==GiftGoodsType.RED_PACKET||type==GiftGoodsType.RechargeSumDay){ + //红包事件 + if(type==GiftGoodsType.RED_PACKET){ Poster.getPoster().dispatchEvent(new BuyGoodsDirectEvent(user.getId(),config.getId())); } if(type==GiftGoodsType.SKY_TREASURE){