diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/function/ExpeditionFunction.java b/serverlogic/src/main/java/com/ljsd/jieling/core/function/ExpeditionFunction.java index 110ce8612..2dab17333 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/function/ExpeditionFunction.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/function/ExpeditionFunction.java @@ -1,12 +1,7 @@ package com.ljsd.jieling.core.function; import com.ljsd.jieling.core.FunctionManager; -import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.TimeControllerOfFunction; -import com.ljsd.jieling.logic.expedition.ExpeditionLogic; -import com.ljsd.jieling.util.InnerMessageUtil; - -import java.util.ArrayList; /** * Description: 猎妖之路 @@ -18,7 +13,7 @@ public class ExpeditionFunction implements FunctionManager { public void startAction(TimeControllerOfFunction timeControllerOfFunction) throws Exception { // int times = timeControllerOfFunction.getTimes(); - InnerMessageUtil.broadcastWithRandom(user -> ExpeditionLogic.getInstance().flushUserdataEveryDay(user),new ArrayList<>(OnlineUserManager.sessionMap.keySet()), 20); +// InnerMessageUtil.broadcastWithRandom(user -> ExpeditionLogic.getInstance().flushUserdataEveryDay(user),new ArrayList<>(OnlineUserManager.sessionMap.keySet()), 20); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java index 6ac11347f..4d1ae29d5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java @@ -93,22 +93,13 @@ public class EndExpeditionBattleRequest extends BaseHandler gropFightTeamInfoWithDouble = ExpeditionLogic.getGropFightTeamInfoWithDouble(tid, nodeInfo.getBossHP()); -// getFightData = FightDataUtil.getFinalFightData(fightTeamInfo, gropFightTeamInfoWithDouble); -// }else { - CommonProto.FightTeamInfo deffightTeamInfo = FightUtil.makeFightBySnapDataWithDouble(new DefFightSnapData(deffightInfo.getHeroAttribute(),deffightInfo.getHeroSkills(),deffightInfo.getPokenmonSkills(),deffightInfo.getPassiveSkills()),nodeInfo.getBossHP()); - getFightData = FightDataUtil.getFinalPlayerFightData(fightTeamInfo, deffightTeamInfo); -// } + CommonProto.FightTeamInfo deffightTeamInfo = FightUtil.makeFightBySnapDataWithDouble(new DefFightSnapData(deffightInfo.getHeroAttribute(),deffightInfo.getHeroSkills(),deffightInfo.getPokenmonSkills(),deffightInfo.getPassiveSkills()),nodeInfo.getBossHP()); + LuaValue getFightData = FightDataUtil.getFinalPlayerFightData(fightTeamInfo, deffightTeamInfo); - LuaValue getOptionData = FightDataUtil.getOptionData(uid+""); + LuaValue getOptionData = FightDataUtil.getOptionData(String.valueOf(uid)); long[] checkResult = CheckFight.getInstance().checkFight(seed, maxTime, getFightData, getOptionData, GameFightType.Expediton.getFightType()); FightResult fight = FightResult.newBuilder().setCheckResult(checkResult).build(); @@ -151,10 +142,6 @@ public class EndExpeditionBattleRequest extends BaseHandler -// nodeInfo.getBossHP().put(s, (double) remainHp.remove(0) / (double) familyHeroInfo.getAttribute().get(HeroAttributeEnum.CurHP.getPropertyId())) -// ); nodeInfo.getSnapFightInfo().getHeroAttribute().forEach((s, familyHeroInfo) ->{ SMonsterConfig sMonsterConfig = STableManager.getConfig(SMonsterConfig.class).get(Integer.valueOf(s)); if(sMonsterConfig!=null){ @@ -162,7 +149,6 @@ public class EndExpeditionBattleRequest extends BaseHandler @@ -201,7 +187,7 @@ public class EndExpeditionBattleRequest extends BaseHandler heroList = new ArrayList<>(); - Map heroMap = user.getExpeditionManager().getHeroMap(); - for(Hero hero : heroMap.values()){ - heroList.add(CBean2Proto.getHero(hero)); - } - builder.addAllHeroList(heroList); - Map equipMap = user.getExpeditionManager().getEquipMap(); - List equipList = new ArrayList<>(); -// for(PropertyItem equipInfo: equipMap.values()){ -// if(equipInfo instanceof Equip) -// equipList.add(CBean2Proto.getEquipProto(equipInfo)); -// } - builder.addAllEquip(equipList); - List soulEquipList = new ArrayList<>(); - for(PropertyItem equipInfo: equipMap.values()){ - if(equipInfo instanceof Jewel) - soulEquipList.add(CBean2Proto.getEquipProto(equipInfo)); - } - builder.addAllSoulEquip(soulEquipList); - - - TimeControllerOfFunction timeControllerOfFunction = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.Expedition); - if( null != timeControllerOfFunction){ - builder.setStartTime((int)(timeControllerOfFunction.getStartTime()/1000)); - } + builder.addAllLay(manager.getRewardBox()); + builder.addAllHeroInfo(ExpeditionLogic.getInstance().getAllHeroInfo(user)); + builder.addAllNodeInfo(ExpeditionLogic.getInstance().getNodeInfo(user)); + builder.addAllEquipIds(ExpeditionLogic.getInstance().getEquipnfo(user)); + List heroList = new ArrayList<>(); + Map heroMap = user.getExpeditionManager().getHeroMap(); + for(Hero hero : heroMap.values()){ + heroList.add(CBean2Proto.getHero(hero)); } + builder.addAllHeroList(heroList); + Map equipMap = user.getExpeditionManager().getEquipMap(); + List equipList = new ArrayList<>(); + builder.addAllEquip(equipList); + List soulEquipList = new ArrayList<>(); + for(PropertyItem equipInfo: equipMap.values()){ + if(equipInfo instanceof Jewel) + soulEquipList.add(CBean2Proto.getEquipProto(equipInfo)); + } + builder.addAllSoulEquip(soulEquipList); + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_GET_EXPEDITION_RESONSE_VALUE, builder.build(), true); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/TakeHolyEquipRequest.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/TakeHolyEquipRequest.java index 38419b5bf..0e9010fa7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/TakeHolyEquipRequest.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/TakeHolyEquipRequest.java @@ -3,22 +3,17 @@ package com.ljsd.jieling.handler.Expedition; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.handler.BaseHandler; -import com.ljsd.jieling.logic.dao.ExpeditionItem; -import com.ljsd.jieling.logic.dao.ExpeditionManager; import com.ljsd.jieling.logic.dao.ExpeditionNodeInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.expedition.ExpeditionLogic; import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.MessageUtil; import rpc.protocols.CommonProto; import rpc.protocols.Expedition; import rpc.protocols.MessageTypeProto; -import com.ljsd.jieling.util.MessageUtil; -import config.SExpeditionHolyConfig; -import manager.STableManager; import java.util.List; -import java.util.Map; import java.util.Set; /** @@ -49,59 +44,21 @@ public class TakeHolyEquipRequest extends BaseHandler nextNodeId = ExpeditionLogic.getNextNodeId(user.getExpeditionManager().getSortid(),user.getExpeditionManager().getExpeditionNodeInfos().size()); if(!nextNodeId.contains(nodeId)){ throw new ErrorCodeException(ErrorCode.newDefineCode("节点信息错误 节点状态不正确")); } - - SExpeditionHolyConfig sExpeditionHolyConfig = STableManager.getConfig(SExpeditionHolyConfig.class).get(itemId); - if(sExpeditionHolyConfig==null){ - throw new ErrorCodeException(ErrorCode.CFG_NULL); - } - //updata node Set nodeInfos = ExpeditionLogic.openLay(user,nodeInfo.getLay(),nodeId); - - - //更新背包 - ExpeditionItem expeditionItem = new ExpeditionItem(iSession.getUid(), itemId); - ExpeditionManager expeditionManager = user.getExpeditionManager(); - expeditionManager.addPropertyItems(expeditionItem); - expeditionManager.setGetHolyTiem(expeditionManager.getGetHolyTiem()+1); - //更新effectitem 参与计算 - if(expeditionManager.getEffectItems().size()==0){ - ExpeditionLogic.getFirstRankHoly(expeditionManager); - } - Map effectItems = expeditionManager.getEffectItems(); - SExpeditionHolyConfig orDefault = effectItems.getOrDefault(sExpeditionHolyConfig.geteffect(), null); - - if(orDefault==null){ - effectItems.put(sExpeditionHolyConfig.geteffect(),sExpeditionHolyConfig); - }else { - if(sExpeditionHolyConfig.gettype()>orDefault.gettype()){ - effectItems.put(sExpeditionHolyConfig.geteffect(),sExpeditionHolyConfig); - } - } - - //添加专属英雄圣物缓存 - if(sExpeditionHolyConfig.getHeroId() > 0){ - expeditionManager.addHeroItems(sExpeditionHolyConfig); - } - - //notify client - Expedition.ExpeditionEquipIndication.Builder indication = Expedition.ExpeditionEquipIndication.newBuilder(); - indication.addEquipIds(CommonProto.ExpeditionEquip.newBuilder().setId(expeditionItem.getId()).setEquiptId(expeditionItem.getEquipId()).build()); - MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_HOLY_BAG_INDICATION_VALUE, indication.build(), true); - Expedition.ExpeditionNodeInfoIndication.Builder builder = Expedition.ExpeditionNodeInfoIndication.newBuilder(); builder.addAllNodeInfo(nodeInfos); MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_NOINFO_INDICATION_VALUE, builder.build(), true); - Expedition.TakeHolyEquipResponse.Builder build = Expedition.TakeHolyEquipResponse.newBuilder().setEquipId(expeditionItem.getId()); + // 领取圣遗物 + String expeditionId = ExpeditionLogic.getInstance().takeHoly(iSession, itemId); + Expedition.TakeHolyEquipResponse.Builder build = Expedition.TakeHolyEquipResponse.newBuilder().setEquipId(expeditionId); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_TAKE_HOLY_EQUIP_RESONSE_VALUE, build.build(), true); - } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_role_gm.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_role_gm.java index 5c3da4dc9..ba3f05d42 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_role_gm.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_role_gm.java @@ -63,7 +63,6 @@ public class Cmd_role_gm extends GmRoleAbstract { manager.clearPropertyItems(); manager.getHeroHPWithChange().clear(); manager.clearHeroToTemp(); - manager.clearEquipToTemp(); manager.clearExpeditionNodeInfos(); //创建节点束河 @@ -112,7 +111,7 @@ public class Cmd_role_gm extends GmRoleAbstract { } catch (Exception e) { e.printStackTrace(); } - user.getExpeditionManager().putExpeditionNodeInfos(sortId, nodeInfo); + user.getExpeditionManager().putExpeditionNodeInfos(nodeInfo); }); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index bcffef2c1..a860a03cd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -15,15 +15,14 @@ import com.ljsd.jieling.logic.activity.activityLogic.GmSingleActivityLogic; import com.ljsd.jieling.logic.activity.activityLogic.WeekCardLogic; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; +import com.ljsd.jieling.logic.activity.event.ZeroRefreshEvent; import com.ljsd.jieling.logic.activity.eventhandler.*; import com.ljsd.jieling.logic.activity.fourChallenge.FourChallengeLogic; import com.ljsd.jieling.logic.arena.ArenaLogic; import com.ljsd.jieling.logic.arena.ChallengeLogic; -import com.ljsd.jieling.logic.championship.ChampionshipLogic; import com.ljsd.jieling.logic.dao.TimeControllerOfFunction; import com.ljsd.jieling.logic.dao.root.GlobalSystemControl; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.expedition.ExpeditionLogic; import com.ljsd.jieling.logic.family.GuildFightLogic; import com.ljsd.jieling.logic.family.GuildLogic; import com.ljsd.jieling.logic.friend.FriendLogic; @@ -425,7 +424,6 @@ public class GlobalDataManaager implements IManager { PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder); PlayerLogic.getInstance().flushUserdataEvery(user,fBuilder); GuildLogic.getInstance().flushEveryDay(user,fBuilder); - ExpeditionLogic.getInstance().flushUserdataEveryDay(user); MapLogic.getInstance().flushEndlessTreasure(user); //检测下称号 CBean2Proto.getUserTitleList(user); @@ -447,6 +445,8 @@ public class GlobalDataManaager implements IManager { ArenaLogic.getInstance().takeTitleReward(user); // gm单笔更新 GmSingleActivityLogic.getInstance().updateGmSingle(user); + // 大闹天宫隔天刷新 + Poster.getPoster().dispatchEvent(new ZeroRefreshEvent(user.getId())); WeekCardLogic.getInstance().weekCardInfoIndication(user,0,0); ChallengeLogic.getInstance().ChallengeInfoIndication(session); 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 14b9ffa71..48a495b73 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 @@ -135,6 +135,7 @@ public interface ActivityType { int FABAO_BOOK_REWARD = 118;//法宝图鉴宝箱 int DRAW_FABAO_LV_CHEST = 119;//抽卡等级宝箱 int TIAN_JIANG_GIFT = 120;//天降礼包 + int DA_NAO_TIAN_GONG = 121;//大闹天宫 //***************************************bt活动=====================================// 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 886937f68..66bb3a1c0 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 @@ -118,6 +118,7 @@ public enum ActivityTypeEnum { FABAO_BOOK_REWARD(ActivityType.FABAO_BOOK_REWARD,FabaoBookRewardActivity::new),//法宝图鉴宝箱 DRAW_FABAO_LV_CHEST(ActivityType.DRAW_FABAO_LV_CHEST,DrawLvChestActivity::new),//抽卡等级宝箱 TIAN_JIANG_GIFT(ActivityType.TIAN_JIANG_GIFT,DefaultEmptyActivity::new),//抽卡等级宝箱 + DA_NAO_TIAN_GONG(ActivityType.DA_NAO_TIAN_GONG, DaNaoTianGongActivity::new),//大闹天宫 /****************************************************** bt **********************************************************/ BRUSH_PRIVILEGE(ActivityType.BRUSH_PRIVILEGE, BrushPrivilegeActivity::new),//刷充特权 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DaNaoTianGongActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DaNaoTianGongActivity.java new file mode 100644 index 000000000..534ed41d6 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DaNaoTianGongActivity.java @@ -0,0 +1,105 @@ +package com.ljsd.jieling.logic.activity; + +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.jbean.ActivityMission; +import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.ZeroRefreshEvent; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.expedition.ExpeditionLogic; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.SSpecialConfig; +import rpc.protocols.CommonProto; +import rpc.protocols.PlayerInfoProto; + +import java.text.MessageFormat; +import java.util.ArrayList; + +public class DaNaoTianGongActivity extends AbstractActivity{ + + public DaNaoTianGongActivity(int id) { + super(id); + Poster.getPoster().listenEvent(this, ZeroRefreshEvent.class); + } + + @Override + public void initActivity(User user) throws Exception { + ActivityMission mission = new ActivityMission(); + ActivityLogic.getInstance().initOtherMission(mission,new ArrayList<>()); + user.getActivityManager().getActivityMissionMap().put(id, mission); + + ExpeditionLogic.getInstance().flushUserdataEveryDay(user); + refresh(user); + LOGGER.info("大闹天宫初始化...uid={} activityId={}",user.getId(), id); + } + + @Override + public void onEvent(IEvent event) throws Exception { + // 类型验证 + if (!(event instanceof ZeroRefreshEvent)) { + return; + } + // 获取信息 + ZeroRefreshEvent event1 = (ZeroRefreshEvent) event; + User user = UserManager.getUser(event1.getUid()); + refresh(user); + } + + private void refresh(User user){ + + } + + @Override + public boolean takeReward(ISession session, int missionId) throws Exception { + User user = UserManager.getUser(session.getUid()); + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null || mission.getActivityState() != ActivityType.OPEN_STATE){ + String format = MessageFormat.format("大闹天宫退出,活动数据未开启,uid:{0},活动id:{1}", user.getId(), id); + throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN, format); + } + if (mission.getV() == 1) { + String format = MessageFormat.format("大闹天宫退出,奖励已领取,uid:{0},活动id:{1},档位id:{2}", user.getId(), id, missionId); + throw new ErrorCodeException(ErrorCode.HAD_TAKE_REWARD, format); + } + + checkAndSetProgress(mission,missionId,ActivityType.HAD_TAKED); + + int[] value = SSpecialConfig.getOnceArrayValue("Danaotiangong_daily_reward"); + int[][] reward = {value}; + + // reward + CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD); + PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); + MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); + // 状态推送 + sendActivityProgress(session, null); + // 打点上报 + reportTakeActivityReward(user,reward,missionId); + return true; + } + + /** + * 领奖后更新奖励进度 + */ + public void checkAndSetProgress(ActivityMission activityMission, int missionId, int state) { + ActivityProgressInfo progressInfo = new ActivityProgressInfo(); + progressInfo.setState(state); + activityMission.getActivityMissionMap().put(missionId, progressInfo); + activityMission.setV(1); + } + + + + @Override + public boolean checkActivityMissionFinishAndTake(int uid, int activityId, ActivityMission activityMission) { + return false; + } + + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java index f183b8b20..850c6f5c9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java @@ -2,11 +2,8 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; -import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.jbean.ActivityMission; -import com.ljsd.jieling.jbean.ActivityProgressInfo; -import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.activityLogic.WeekCardLogic; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; @@ -14,19 +11,9 @@ import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mail.MailLogic; -import com.ljsd.jieling.logic.store.newRechargeInfo.NewRechargeInfo; -import com.ljsd.jieling.logic.store.newRechargeInfo.RechargeType; -import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag; -import com.ljsd.jieling.logic.store.newRechargeInfo.bean.PerpetualWelfareBag; -import com.ljsd.jieling.logic.store.newRechargeInfo.bean.ReceiveWelfareBag; -import com.ljsd.jieling.logic.store.newRechargeInfo.rechargeHandler.RechargeHandler; -import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; -import com.ljsd.jieling.util.MessageUtil; import config.*; import manager.STableManager; -import rpc.protocols.CommonProto; -import rpc.protocols.PlayerInfoProto; import util.TimeUtils; import java.util.*; @@ -52,7 +39,6 @@ public class WeekCardActivity extends AbstractActivity { // 初始化礼包信息 user.getPlayerInfoManager().setWeekCard(new HashMap<>()); - LOGGER.info("月卡初始化...uid={} activityId={}",user.getId(), id); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/ZeroRefreshEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/ZeroRefreshEvent.java new file mode 100644 index 000000000..6e834eaf8 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/ZeroRefreshEvent.java @@ -0,0 +1,21 @@ +package com.ljsd.jieling.logic.activity.event; + + +/** + * 每日零点刷新 + */ +public class ZeroRefreshEvent implements IEvent{ + private int uid; + + public ZeroRefreshEvent(int uid) { + this.uid = uid; + } + + public int getUid() { + return uid; + } + + public void setUid(int uid) { + this.uid = uid; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionManager.java index 7ac4fbd87..a119ae72f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionManager.java @@ -1,14 +1,13 @@ package com.ljsd.jieling.logic.dao; import com.ljsd.common.mogodb.MongoBase; -import com.ljsd.jieling.core.FunctionIdEnum; -import com.ljsd.jieling.logic.GlobalDataManaager; -import com.ljsd.jieling.logic.dao.root.User; import config.SExpeditionHolyConfig; -import manager.STableManager; import org.springframework.data.annotation.Transient; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; /** * Description: @@ -38,16 +37,15 @@ public class ExpeditionManager extends MongoBase { private Map heroMap = new HashMap<>(); private Map equipMap = new HashMap<>(); - private Map heroMapTemp = new HashMap<>(); private Map> heroNodeMapTemp = new HashMap<>(); - private Map equipMapTemp = new HashMap<>(); public ExpeditionManager(){ //初始化的时候把当前轮数赋值,不能使用0 - TimeControllerOfFunction openTimeOfFuntionCacheByType = GlobalDataManaager.getInstance().getOpenTimeOfFuntionCacheByType(FunctionIdEnum.Expedition); - this.setCurrentTime(openTimeOfFuntionCacheByType==null?1:openTimeOfFuntionCacheByType.getTimes()); +// TimeControllerOfFunction openTimeOfFuntionCacheByType = GlobalDataManaager.getInstance().getOpenTimeOfFuntionCacheByType(FunctionIdEnum.Expedition); +// this.setCurrentTime(openTimeOfFuntionCacheByType==null?1:openTimeOfFuntionCacheByType.getTimes()); } - public void putExpeditionNodeInfos(Integer key, ExpeditionNodeInfo nodeInfo) { + + public void putExpeditionNodeInfos(ExpeditionNodeInfo nodeInfo) { this.expeditionNodeInfos.put(nodeInfo.getSortId(), nodeInfo); nodeInfo.init(this.getRootId(), getMongoKey() + ".expeditionNodeInfos." + nodeInfo.getSortId()); updateString("expeditionNodeInfos." + nodeInfo.getSortId(), nodeInfo); @@ -124,26 +122,10 @@ public class ExpeditionManager extends MongoBase { updateString("propertyItems", this.propertyItems); } - - - public int getForceSnap() { - return forceSnap; - } - - public void setForceSnap(int forceSnap) { - updateString("forceSnap", forceSnap); - this.forceSnap = forceSnap; - } - public Map getEffectItems() { return effectItems; } - public void resetTreasureReward(){ - worldTreasureReward.reset(); - onlyUpdateTreasureReward(); - } - public WorldTreasureReward getWorldTreasureReward() { updateString("worldTreasureReward", worldTreasureReward); return worldTreasureReward; @@ -181,14 +163,14 @@ public class ExpeditionManager extends MongoBase { } - public void addHero(Hero hero) throws Exception { + public void addHero(Hero hero) { //绑定关系 hero.init(this.getRootId(),getMongoKey() + ".heroMap." + hero.getId()); updateString("heroMap." + hero.getId(), hero); heroMap.put(hero.getId(), hero); } - public void addHeroToTemp(Hero hero,int nodeID) throws Exception { + public void addHeroToTemp(Hero hero,int nodeID) { //绑定关系 hero.init(this.getRootId(),getMongoKey() + ".heroNodeMapTemp."+nodeID+"."+ hero.getId()); Map orDefault = heroNodeMapTemp.getOrDefault(nodeID, new HashMap<>()); @@ -197,7 +179,7 @@ public class ExpeditionManager extends MongoBase { heroNodeMapTemp.put(nodeID,orDefault); } - public void clearHeroToTemp() throws Exception { + public void clearHeroToTemp() { heroNodeMapTemp.clear(); updateString("heroNodeMapTemp" , heroNodeMapTemp); } @@ -225,17 +207,6 @@ public class ExpeditionManager extends MongoBase { updateString("equipMap", equipMap); } - public void clearEquipToTemp(){ - equipMapTemp.clear(); - updateString("equipMapTemp" , equipMapTemp); - } - - public void addEquipToTemp(PropertyItem equip){ - equip.init(this.getRootId(),getMongoKey() + ".equipMapTemp." + equip.getId()); - updateString("equipMapTemp." + equip.getId(), equip); - equipMapTemp.put(equip.getId(),equip); - } - public int getFreshTime() { return freshTime; } @@ -249,10 +220,6 @@ public class ExpeditionManager extends MongoBase { return heroNodeMapTemp.getOrDefault(sortid,new HashMap<>()); } - public Map getEquipMapTemp() { - return equipMapTemp; - } - public Map getEquipMap() { return equipMap; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/BattleNode.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/BattleNode.java index 10101e64b..53b06de44 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/BattleNode.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/BattleNode.java @@ -95,10 +95,10 @@ public class BattleNode extends AbstractExpedition { private void nodeHolyInfo(User user, int type, SExpeditionFloorConfig cfg, ExpeditionNodeInfo nodeInfo){ Set staffsSet = new HashSet<>(); while (staffsSet.size()<3){ - - int[][] holyProbability = new int[cfg.getHolyProbability().length][2]; + int[][] probability = cfg.getHolyProbability(); + int[][] holyProbability = new int[probability.length][2]; for(int j = 0; j < holyProbability.length; j++){ - System.arraycopy(cfg.getHolyProbability()[j], 0, holyProbability[j], 0, 2); + System.arraycopy(probability[j], 0, holyProbability[j], 0, 2); } SExpeditionNodeConfig sExpeditionNodeConfig = STableManager.getConfig(SExpeditionNodeConfig.class).get(type); @@ -113,7 +113,7 @@ public class BattleNode extends AbstractExpedition { }catch (Exception e){ break; } - Map type2holy2weight = getType2holy2weightRemoveHas(user,ints); + Map type2holy2weight = getType2holy2weightRemoveHas(user, ints); int i1 = ExpeditionLogic.ranndomFromWeight(type2holy2weight); staffsSet.add(i1); } @@ -161,7 +161,7 @@ public class BattleNode extends AbstractExpedition { int level = originalLevel+offset; - return level>1?level:1; + return Math.max(level, 1); } /** @@ -236,7 +236,7 @@ public class BattleNode extends AbstractExpedition { Map expeditonHeroMap = expeditionManager.getHeroMap(); Set expeditonHeroIds = new HashSet<>(); expeditonHeroMap.values().forEach(v->expeditonHeroIds.add(v.getTemplateId())); - expeditionManager.getGHeroSet().forEach(v->expeditonHeroIds.add(v)); + expeditonHeroIds.addAll(expeditionManager.getGHeroSet()); // 已生成得节点圣物信息 Set nodeHolyInfo = getNodeHolyInfo(user); @@ -262,7 +262,6 @@ public class BattleNode extends AbstractExpedition { // 已经生成过得圣物 if(nodeHolyInfo.contains(v)){ iterator.remove(); - continue; } } return valueMap; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index 742137441..f0e5c1729 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -3,14 +3,11 @@ package com.ljsd.jieling.logic.expedition; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.config.clazzStaticCfg.PlayStaticConfig; import com.ljsd.jieling.config.clazzStaticCfg.WorldBossTreasureStaticConfig; -import com.ljsd.jieling.core.FunctionIdEnum; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.handler.Expedition.expedtionItem.ExpedtionItemHandler; import com.ljsd.jieling.handler.Expedition.expedtionItem.HolyEnum; -import com.ljsd.jieling.logic.GlobalDataManaager; -import com.ljsd.jieling.logic.GlobleSystemLogic; import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; @@ -18,9 +15,7 @@ import com.ljsd.jieling.logic.hero.HeroAttributeEnum; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mission.GameEvent; -import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.StoreLogic; -import com.ljsd.jieling.logic.store.newRechargeInfo.bean.ReceiveWelfareBag; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; @@ -85,19 +80,8 @@ public class ExpeditionLogic { //每日重置 public void flushUserdataEveryDay(User user) throws Exception { LOGGER.info("大闹天宫刷新逻辑开始"); - checkAndResetTreasure(user); - - TimeControllerOfFunction openTimeOfFuntionCacheByType = GlobalDataManaager.getInstance().getOpenTimeOfFuntionCacheByType(FunctionIdEnum.Expedition); - if (openTimeOfFuntionCacheByType == null){ - LOGGER.error("大闹天宫刷新逻辑退出,大闹天宫功能类型为空"); - return; - } ExpeditionManager manager = user.getExpeditionManager(); - if(manager.getCurrentTime()==openTimeOfFuntionCacheByType.getTimes()){ - LOGGER.error("大闹天宫刷新逻辑退出 ,usertimes:{},systimes:{}",manager.getCurrentTime(),openTimeOfFuntionCacheByType.getTimes()); - return; - } takeAllReward(user); manager.clearExpeditionNodeInfos(); manager.setLay(1); @@ -110,15 +94,12 @@ public class ExpeditionLogic { manager.clearRewardBox(); manager.clearPropertyItems(); manager.getHeroHPWithChange().clear(); - manager.setCurrentTime(openTimeOfFuntionCacheByType.getTimes()); manager.clearHeroToTemp(); manager.getHeroMap().clear(); - manager.clearEquipToTemp(); manager.clearEquip();//删除多余装备 manager.getEffectItems().clear(); manager.clearHeroItems(); manager.getGHeroSet().clear(); - manager.setFreshTime((int)(openTimeOfFuntionCacheByType.getStartTime()/1000)); SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1); if(sExpeditionSetting == null){ @@ -132,9 +113,8 @@ public class ExpeditionLogic { manager.setSortid(0); } - SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.Expedition.getFunctionType()); ISession session = OnlineUserManager.getSessionByUid(user.getId()); - if (GlobleSystemLogic.checkOpen(user,sGlobalSystemConfig) && session !=null) { + if (session != null) { builder.addAllLay(manager.getRewardBox()); builder.addAllHeroInfo(ExpeditionLogic.getInstance().getAllHeroInfo(user)); builder.addAllNodeInfo(ExpeditionLogic.getInstance().getNodeInfo(user)); @@ -143,8 +123,8 @@ public class ExpeditionLogic { builder.addAllEquip(new ArrayList<>()); builder.addAllEquip(new ArrayList<>()); builder.setStartTime(manager.getFreshTime()); + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ExpeditionResetIndication.getNumber(), builder.build(), true); } - MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ExpeditionResetIndication.getNumber(), builder.build(), true); } private void takeAllReward(User user)throws Exception { @@ -170,6 +150,49 @@ public class ExpeditionLogic { MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); } + /** + * 领取圣遗物入库 + * @param session + * @param itemId + * @return + * @throws ErrorCodeException + */ + public String takeHoly(ISession session, int itemId) throws Exception { + SExpeditionHolyConfig sExpeditionHolyConfig = STableManager.getConfig(SExpeditionHolyConfig.class).get(itemId); + if(sExpeditionHolyConfig==null){ + throw new ErrorCodeException(ErrorCode.CFG_NULL); + } + User user = UserManager.getUser(session.getUid()); + //更新背包 + ExpeditionItem expeditionItem = new ExpeditionItem(user.getId(), itemId); + ExpeditionManager expeditionManager = user.getExpeditionManager(); + expeditionManager.addPropertyItems(expeditionItem); + expeditionManager.setGetHolyTiem(expeditionManager.getGetHolyTiem()+1); + //更新effectitem 参与计算 + if(expeditionManager.getEffectItems().size()==0){ + ExpeditionLogic.getFirstRankHoly(expeditionManager); + } + Map effectItems = expeditionManager.getEffectItems(); + SExpeditionHolyConfig orDefault = effectItems.getOrDefault(sExpeditionHolyConfig.geteffect(), null); + + if(orDefault==null){ + effectItems.put(sExpeditionHolyConfig.geteffect(),sExpeditionHolyConfig); + }else { + if(sExpeditionHolyConfig.gettype()>orDefault.gettype()){ + effectItems.put(sExpeditionHolyConfig.geteffect(),sExpeditionHolyConfig); + } + } + //添加专属英雄圣物缓存 + if(sExpeditionHolyConfig.getHeroId() > 0){ + expeditionManager.addHeroItems(sExpeditionHolyConfig); + } + //推送背包 + Expedition.ExpeditionEquipIndication.Builder indication = Expedition.ExpeditionEquipIndication.newBuilder(); + indication.addEquipIds(CommonProto.ExpeditionEquip.newBuilder().setId(expeditionItem.getId()).setEquiptId(expeditionItem.getEquipId()).build()); + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.EXPEDITION_HOLY_BAG_INDICATION_VALUE, indication.build(), true); + return expeditionItem.getId(); + } + /** * 初始化下一层 */ @@ -294,7 +317,7 @@ public class ExpeditionLogic { /** * 获取节点结构 确定type id state */ - private Set createNodeSet(User user,int leve) throws Exception { + private void createNodeSet(User user, int leve) throws Exception { // 配置表信息 SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1); if(leve-1>sExpeditionSetting.getMatchForce().length){ @@ -307,7 +330,7 @@ public class ExpeditionLogic { // 根据层数获取对应得每行id Set ids = STableManager.getFigureConfig(CommonStaticConfig.class).leve2ids.get(leve); if(ids==null){ - return nodeSets; + return; } // 创建节点 @@ -317,7 +340,6 @@ public class ExpeditionLogic { createNodesByLay(user,sExpeditionFloorConfig.getId(),leve,nodeSets); } } - return nodeSets; } /** @@ -344,7 +366,7 @@ public class ExpeditionLogic { ExpeditionNodeInfo nodeInfo = expedition.creatNodes(user.getId(), id, leve, sort, config.getFloorLay()); nodeSets.add(nodeInfo); // mongodb:入库 - user.getExpeditionManager().putExpeditionNodeInfos(nodeInfo.getSortId(), nodeInfo); + user.getExpeditionManager().putExpeditionNodeInfos(nodeInfo); sort++; } } @@ -518,47 +540,51 @@ public class ExpeditionLogic { public static void openTreasure(User user,int type,int parm){ - SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1); - int[] openRule = sExpeditionSetting.getOpenRules(); - if(openRule[0] == type && openRule[1] == parm){ - //国服设置第十四天后开启 - user.getExpeditionManager().getWorldTreasureReward().setFirstStartTime((int)((TimeUtils.now()+14*TimeUtils.ONE_DAY)/1000)); - } +// SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1); +// int[] openRule = sExpeditionSetting.getOpenRules(); +// if(openRule[0] == type && openRule[1] == parm){ +// //国服设置第十四天后开启 +// user.getExpeditionManager().getWorldTreasureReward().setFirstStartTime((int)((TimeUtils.now()+14*TimeUtils.ONE_DAY)/1000)); +// } } + /** + * 天宫秘宝刷新逻辑,暂不用 + * @param user + * @throws Exception + */ private static void checkAndResetTreasure(User user) throws Exception { - WorldTreasureReward worldTreasureReward = user.getExpeditionManager().getWorldTreasureReward(); - int nowInt = TimeUtils.nowInt(); - if(worldTreasureReward.getFirstStartTime()> nowInt){ - return; - } - int createTime =worldTreasureReward.getCreateTime(); - //重置 - if(nowInt >=createTime){ - user.getExpeditionManager().resetTreasureReward(); - // 天宫秘宝礼包刷新 - ReceiveWelfareBag bagInfo = (ReceiveWelfareBag) user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap().get(106); - if (bagInfo == null){ - return; - } - bagInfo.refresh(); - sendAllTreasureInfo(user); - BuyGoodsNewLogic.sendGiftGooodsIndication(user.getId()); - } +// WorldTreasureReward worldTreasureReward = user.getExpeditionManager().getWorldTreasureReward(); +// int nowInt = TimeUtils.nowInt(); +// if(worldTreasureReward.getFirstStartTime()> nowInt){ +// return; +// } +// int createTime =worldTreasureReward.getCreateTime(); +// //重置 +// if(nowInt >= createTime){ +// user.getExpeditionManager().resetTreasureReward(); +// // 天宫秘宝礼包刷新 +// ReceiveWelfareBag bagInfo = (ReceiveWelfareBag) user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap().get(106); +// if (bagInfo == null){ +// return; +// } +// bagInfo.refresh(); +// sendAllTreasureInfo(user); +// BuyGoodsNewLogic.sendGiftGooodsIndication(user.getId()); +// } } private static void sendAllTreasureInfo(User user){ - ISession session = OnlineUserManager.getSessionByUid(user.getId()); - if(session!=null){ - WorldTreasureReward worldTreasureReward = user.getExpeditionManager().getWorldTreasureReward(); - Map rewardStatusMap = worldTreasureReward.getRewardStatusMap(); - WorldBossTreasureStaticConfig worldBossTreasureStaticConfig = STableManager.getFigureConfig(WorldBossTreasureStaticConfig.class); - Map> idsByPeriods = worldBossTreasureStaticConfig.getIdsByPeriods(); - Map changeStateMap = new HashMap<>(rewardStatusMap); - idsByPeriods.get(worldTreasureReward.getRound()).forEach(item->changeStateMap.putIfAbsent(item.getId(),0)); - sendTreasureRewardUpdate(session,0,changeStateMap,worldTreasureReward.getCreateTime(),worldTreasureReward.getIsBuy()); - } - +// ISession session = OnlineUserManager.getSessionByUid(user.getId()); +// if(session!=null){ +// WorldTreasureReward worldTreasureReward = user.getExpeditionManager().getWorldTreasureReward(); +// Map rewardStatusMap = worldTreasureReward.getRewardStatusMap(); +// WorldBossTreasureStaticConfig worldBossTreasureStaticConfig = STableManager.getFigureConfig(WorldBossTreasureStaticConfig.class); +// Map> idsByPeriods = worldBossTreasureStaticConfig.getIdsByPeriods(); +// Map changeStateMap = new HashMap<>(rewardStatusMap); +// idsByPeriods.get(worldTreasureReward.getRound()).forEach(item->changeStateMap.putIfAbsent(item.getId(),0)); +// sendTreasureRewardUpdate(session,0,changeStateMap,worldTreasureReward.getCreateTime(),worldTreasureReward.getIsBuy()); +// } } public static void sendTreasureRewardUpdate(ISession iSession,int score,Map changeStatusMap,int time,int isBuy){ @@ -567,7 +593,6 @@ public class ExpeditionLogic { changeStatusMap.forEach((id,status)-> builder.addTreasureRewardState(Expedition.TreasureRewardState.newBuilder().setId(id).setState(status).build())); builder.setIsBuy(isBuy); MessageUtil.sendIndicationMessage(iSession,1, MessageTypeProto.MessageType.EXPEDITION_TREASURE_STATE_INDICATION_VALUE,builder.build(),true); - } /** @@ -724,7 +749,7 @@ public class ExpeditionLogic { * 猎妖之路 使用 * 需要添加被动 */ - public static CommonProto.FightTeamInfo getFightTeamInfoWithDouble(User user, int teamId, Map attackBloodMap) { + public static CommonProto.FightTeamInfo getFightTeamInfoWithDouble(User user, int teamId, Map attackBloodMap) { user.getTeamPosManager().setCurTeamPosId(teamId); List heroFightInfos = new ArrayList<>(); List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PushWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PushWelfareBag.java index 33af1db12..23cab6ed1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PushWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PushWelfareBag.java @@ -14,10 +14,11 @@ public class PushWelfareBag extends AbstractWelfareBag { public PushWelfareBag(User user, SRechargeCommodityNewConfig config){ setModId(config.getId()); + setOpen(true); setStartTime(TimeUtils.now()); setEndTime(getStartTime() + getTime() * TimeUtils.HOUR); - user.getPlayerInfoManager().getNewRechargeInfo().addPush(this); this.setRootCollection(User._COLLECTION_NAME); + user.getPlayerInfoManager().getNewRechargeInfo().addPush(this); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/rechargeHandler/PushHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/rechargeHandler/PushHandler.java index c1a6bb980..538a4914f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/rechargeHandler/PushHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/rechargeHandler/PushHandler.java @@ -24,7 +24,6 @@ public class PushHandler extends AbstractRechargeHandler { boolean result = super.refreshStatus(user, rechargeId); AbstractWelfareBag bag = getBag(user, rechargeId); if(bag.isOpen()){ - SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(rechargeId); long now = TimeUtils.now(); // 结束时间到 if(bag.getEndTime() != 0 && now > bag.getEndTime()){