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 7ea965fa0..d307d1dff 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 @@ -415,8 +415,7 @@ public class ActivityLogic { ActivityMission value = item.getValue(); if (value.getOpenType() == 0) { value.setOpenType(1); - } - } + } } } } @@ -1147,13 +1146,14 @@ public class ActivityLogic { MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); } - public boolean getActivityStatusByType(User user,int type){ + public Object[] getActivityStatusByType(User user,int type){ List activities = SGlobalActivity.sGlobalActivityMapByType.get(type); if(activities.isEmpty()){ - return false; + return null; }else{ - Object[] objects = activities.stream().filter(n -> getActivityOpenState(user, n.getId()) == ActivityType.OPEN_STATE).toArray(); - return objects.length>0; + + Object[] objects = activities.stream().filter(n -> user.getActivityManager().getActivityMissionMap().keySet().contains(n.getId())).toArray(); + return objects; } } public void getNextActivityId(ISession session, int activityId, MessageTypeProto.MessageType messageType) throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index b1c118a60..c272eb6ef 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -191,11 +191,17 @@ public class HeroLogic{ } if(sLotterySetting.getLotteryType()==3){ //活动抽卡校验 - SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(sLotterySetting.getActivityId()); - long endTimeLong = ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), user.getPlayerInfoManager().getCreateTime(), sGlobalActivity.getGapTime()); - if(!ActivityLogic.getInstance().getActivityStatusByType(user,sLotterySetting.getActivityId())|| TimeUtils.now()>endTimeLong){ + Object[] activityStatusByType = ActivityLogic.getInstance().getActivityStatusByType(user, sLotterySetting.getActivityId()); + if(activityStatusByType.length!=1){ throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); } + if(activityStatusByType[0] instanceof SGlobalActivity){ + SGlobalActivity activity = (SGlobalActivity)activityStatusByType[0]; + long endTimeLong = ToolsUtil.getEndTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), user.getPlayerInfoManager().getCreateTime(), activity.getGapTime()); + if(TimeUtils.now()>endTimeLong){ + throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); + } + } } //筛选卡池 int pooId =0;