From df0059632afaed7588831bf9da06c75fbf32d90f Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Fri, 17 Dec 2021 16:13:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E7=89=88=E7=A7=AF=E5=A4=A9=E8=B1=AA?= =?UTF-8?q?=E7=A4=BC=E6=B4=BB=E5=8A=A8=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/AbstractActivity.java | 24 +++--- .../jieling/logic/activity/ActivityLogic.java | 4 +- .../jieling/logic/activity/ActivityType.java | 3 +- .../logic/activity/ActivityTypeEnum.java | 3 +- .../activity/NewRechargeSumDayActivity.java | 80 ++++++++++--------- .../jieling/logic/store/BuyGoodsNewLogic.java | 5 +- .../jieling/logic/store/GiftGoodsType.java | 3 +- 7 files changed, 68 insertions(+), 54 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 efd246e22..a55b50440 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 @@ -409,18 +409,20 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { * @param filterMissId miss过滤 */ public void sendActivityProgress(ISession session, ActivityMission activityMission, Set filterMissId) { + if (session == null) { + return; + } PlayerInfoProto.ActivityUpateProgressIndication.Builder builder = PlayerInfoProto.ActivityUpateProgressIndication.newBuilder(); - if (session != null) { - User user = UserManager.getUserInMem(session.getUid()); - if (user != null && activityMission != null){ - List missInfo = getAllMissInfo(user, activityMission, filterMissId); - CommonProto.ActivityInfo.Builder builder1 = CommonProto.ActivityInfo.newBuilder() - .setValue(activityMission.getV()) - .addAllMission(missInfo) - .setActivityId(id); - builder.setActivityInfo(builder1); - MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_PROGRESS_INDICATION_VALUE, builder.build(), true); - } + + User user = UserManager.getUserInMem(session.getUid()); + if (user != null && activityMission != null) { + List missInfo = getAllMissInfo(user, activityMission, filterMissId); + CommonProto.ActivityInfo.Builder builder1 = CommonProto.ActivityInfo.newBuilder() + .setValue(activityMission.getV()) + .addAllMission(missInfo) + .setActivityId(id); + builder.setActivityInfo(builder1); + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_PROGRESS_INDICATION_VALUE, builder.build(), true); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 616abe26b..aace5081d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -101,7 +101,8 @@ public class ActivityLogic implements IEventHandler{ ActivityLogic.getInstance().resumeActivity(user, ActivityType.RECHARGE_SUM_DAY); //更新新积天豪礼天数 - ActivityLogic.getInstance().resumeActivity(user, ActivityType.NEW_RECHARGE_SUM_DAY); + ActivityLogic.getInstance().resumeActivity(user, ActivityType.NEW_RECHARGE_SUM_DAY_6); + ActivityLogic.getInstance().resumeActivity(user, ActivityType.NEW_RECHARGE_SUM_DAY_30); ActivityLogic.getInstance().resumeActivity(user, ActivityType.LUCKY_GET); @@ -601,6 +602,7 @@ public class ActivityLogic implements IEventHandler{ if(sGlobalActivity == null){ continue; } + ///旧版积天豪礼数据兼容 if (sGlobalActivity.getType()==ActivityType.RECHARGE_SUM_DAY){ if (activityMissionMap.get(activityId).getV()<=0||activityMissionMap.get(activityId).getV()>=15) { continue; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index 6f93c52e7..21ff70b43 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -105,7 +105,8 @@ public interface ActivityType { int CONTINUOUS_GIFT_NEW = 87;//新连续礼包 int ARENA_RANK_EXPERIMENT = 88;//竞技试炼 int DAILY_PREFERENTIAL_GIFT = 89;//每日特惠礼包开启的活动 - int NEW_RECHARGE_SUM_DAY = 90;//新积天豪礼 + int NEW_RECHARGE_SUM_DAY_6 = 90;//新积天豪礼6元充值活动 + int NEW_RECHARGE_SUM_DAY_30 = 92;//新积天豪礼30元充值活动 int SPECIAL_MONSTER_RANDOM_ACTIVITY = 100;//灵兽宝阁活动 int SPECIAL_MONSTER_GIFT_ACTIVITY = 101;//灵兽礼包 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java index cf1f35e87..25da612f0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java @@ -94,7 +94,8 @@ public enum ActivityTypeEnum { TRANSFORMATION_DRAW_CARD(ActivityType.TRANSFORMATION_DRAW_CARD,DefaultEmptyActivity::new),//方寸寻宝 CONTINUOUS_GIFT_NEW(ActivityType.CONTINUOUS_GIFT_NEW,ContinuousGiftActivity::new),//新连续礼包 ARENA_RANK_EXPERIMENT(ActivityType.ARENA_RANK_EXPERIMENT,ArenaRankActivity::new),//竞技试炼 - NEW_RECHARGE_SUM_DAY(ActivityType.NEW_RECHARGE_SUM_DAY,NewRechargeSumDayActivity::new),//新积天豪礼 + NEW_RECHARGE_SUM_DAY_6(ActivityType.NEW_RECHARGE_SUM_DAY_6,NewRechargeSumDayActivity::new),//新积天豪礼 + NEW_RECHARGE_SUM_DAY_30(ActivityType.NEW_RECHARGE_SUM_DAY_30,NewRechargeSumDayActivity::new),//新积天豪礼 DAILY_PREFERENTIAL_GIFT(ActivityType.DAILY_PREFERENTIAL_GIFT,DailyPreferentialGiftActivity::new), SUMMON_TREASURE(ActivityType.SUMMON_TREASURE,SummonTreasureActivity::new),//招募秘宝 NEW_PLAYER_SHOP(ActivityType.NEW_PLAYER_SHOP, NewPlayerShopActivity::new) 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 02c8f562d..3cdbd6909 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,17 @@ 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.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.store.GiftGoodsType; +import com.ljsd.jieling.logic.store.newRechargeInfo.RechargeType; import com.ljsd.jieling.network.session.ISession; import config.SActivityRewardConfig; +import config.SRechargeCommodityNewConfig; import manager.STableManager; import java.util.Map; @@ -17,10 +24,44 @@ class NewRechargeSumDayActivity extends AbstractActivity { public NewRechargeSumDayActivity(int id) { super(id); + Poster.getPoster().listenEvent(this, BuyGoodsDirectEvent.class); } @Override - public void onResume(User user) { + public void onEvent(IEvent event) throws Exception { + super.onEvent(event); + if (!(event instanceof BuyGoodsDirectEvent)) { + 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()); + 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; + } + activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo); + } + if (isSend){ + //更新进度 + ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); + sendActivityProgress(sessionByUid, activityMission, null); + } + + } + + @Override + public void onResume(User user)throws Exception { ActivityManager activityManager = user.getActivityManager(); ActivityMission activityMission = activityManager.getActivityMissionMap().get(id); int buyNum=0; @@ -35,42 +76,9 @@ class NewRechargeSumDayActivity extends AbstractActivity { if (activityMission.getV() >= SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).size()) { ActivityLogic.getInstance().initMissionInfo(activityMission,id); } + ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); + sendActivityProgress(sessionByUid, activityMission, null); } - @Override - void updateProgress(ActivityMission activityMission, int count) { - - int missionId =STableManager.getFigureConfig(ActivityStaticConfig.class).getRechargeDaySum().get(activityMission.getV() + 1); - ActivityProgressInfo activityProgressInfo = activityMission.getActivityMissionMap().get(missionId); - if (activityProgressInfo == null || activityProgressInfo.getProgrss() == 1) { - return; - } - if (count>0 ) {//只要是充值就算 - //>= SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId).getValues()[0][0] - activityProgressInfo.setProgrss(1); - } - } - - @Override - boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { - return checkValue(session, sActivityRewardConfig, activityProgressInfo); - } - - /** - * 根据配置解析数值进度完成度 - */ - @Override - boolean checkValue(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { - int[][] values = sActivityRewardConfig.getValues(); - User user = UserManager.getUser(session.getUid()); - int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getV() + 1; - if (value < values[0][1]) { - return false; - } - if(activityProgressInfo.getProgrss()!=1){ - return false; - } - return true; - } } 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 d746f4ec6..067c18e49 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 @@ -382,9 +382,8 @@ public class BuyGoodsNewLogic { if(dropArray!=null && dropArray.length>=1){ drop = ItemUtil.drop(user,dropArray, BIReason.DIRECT_BUY); } - - if(type==GiftGoodsType.RED_PACKET){ - //红包事件 + //红包事件 和积天豪礼事件 + if(type==GiftGoodsType.RED_PACKET||type==GiftGoodsType.RechargeSumDay){ Poster.getPoster().dispatchEvent(new BuyGoodsDirectEvent(user.getId(),config.getId())); } if(type==GiftGoodsType.SKY_TREASURE){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/GiftGoodsType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/GiftGoodsType.java index cd3224bf8..841ddf37c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/GiftGoodsType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/GiftGoodsType.java @@ -15,6 +15,7 @@ public interface GiftGoodsType { int SKY_TREASURE = 12; //天宫秘宝 int ENDLESS_TREASURE = 14;//无尽秘宝 int DailyPreferentialGift = 17 ;//每日特惠礼包 - + int RechargeSumDay = 18 ;//超值返利礼包(在积天豪礼活动里购买) } +