diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java index 88211f889..026099616 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java @@ -62,8 +62,8 @@ public class Cmd_changename extends GmRoleAbstract { if(!storeInfoMap.containsKey(10) && !storeInfoMap.containsKey(15)){ SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(10); long userCreateTime = user.getPlayerInfoManager().getCreateTime(); - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1, 0); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 2, 0); StoreLogic.getInstance().initOnsStoereWithTime(user,10,startTime,endTime); LOGGER.info("hotfix user={} store end",user.getId()); } 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 4bcb8de7a..1bf3e1974 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 @@ -168,17 +168,23 @@ public class ActivityLogic implements IEventHandler{ //检查开启的活动 非相对创角时间 for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) { - int time = sGlobalActivity.getTime(); int id = sGlobalActivity.getId(); + int time = sGlobalActivity.getTime(); + int type = sGlobalActivity.getType(); + long startTimeLong = sGlobalActivity.getStartTimeLong(); + long endTimeLong = sGlobalActivity.getEndTimeLong(); + int cycleMinute = sGlobalActivity.getCycleMinute(); + AbstractActivity activity = ActivityTypeEnum.getActicityById(id); if (time == ActivityType.OPEN_TYPE_ROLE) { + // 创角时间活动 continue; } - if(sGlobalActivity.getType() == ActivityType.DAILY_PREFERENTIAL_GIFT){ + if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ continue; } - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2); + long startTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time,0, 1, cycleMinute); + long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time,0, 2, cycleMinute); if (now < startTime) { //如果没到活动开启时间,但是openActivityIds里有了这个活动,证明是热更延迟开启的活动,需要清除掉 openActivityIds.remove(id); @@ -355,8 +361,8 @@ public class ActivityLogic implements IEventHandler{ LOGGER.info("checkActivityOfUser uid={} remove activity={}", user.getId(), openActivityId); continue; } - int[] ifOpen = sGlobalActivity.getIfOpen(); //创角 + int[] ifOpen = sGlobalActivity.getIfOpen(); if(ifOpen!=null && ifOpen.length>0 && ifOpen[0]==1){ if(userCreateTime + ifOpen[1]*TimeUtils.ONE_DAY > now){ continue; @@ -390,9 +396,10 @@ public class ActivityLogic implements IEventHandler{ int time = sGlobalActivity.getTime(); int gapTime = sGlobalActivity.getGapTime(); int type = sGlobalActivity.getType(); + int cycleMinute = sGlobalActivity.getCycleMinute(); - long startTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 1); - long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 2); + long startTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 1, cycleMinute); + long endTime = ToolsUtil.getTimeLong(startTimeLong, endTimeLong, time, userCreateTime, 2, cycleMinute); long gepTimeLong = endTime + gapTime * TimeUtils.ONE_DAY; if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ @@ -447,7 +454,7 @@ public class ActivityLogic implements IEventHandler{ } else if (time == ActivityType.OPEN_TYPE_CYCLE){//循环 // 循环时间 - long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; + long cycleTime = cycleMinute * TimeUtils.ONE_MINUTE; // 最近的开始时间 long latelyStartTime = TimeUtils.getLatelyTime(startTime, now, cycleTime); // 当前期活动未开始 @@ -586,11 +593,15 @@ public class ActivityLogic implements IEventHandler{ if(sGlobalActivity == null){ continue; } + + long startTimeLong = sGlobalActivity.getStartTimeLong(); + long endTimeLong = sGlobalActivity.getEndTimeLong(); + int timeType = sGlobalActivity.getTime(); int type = sGlobalActivity.getType(); int gapTime = sGlobalActivity.getGapTime(); if(activityStatus == ActivityType.CLOSE_STATE){ - long prepareTime = ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, gapTime); + long prepareTime = ToolsUtil.getEndTimeLong(startTimeLong, endTimeLong, timeType,0, gapTime); activityInfoList.add(CommonProto.ActivityInfo.newBuilder().setActivityId(activityId).setEndTime((int)(prepareTime/1000)).build()); continue; } @@ -614,14 +625,14 @@ public class ActivityLogic implements IEventHandler{ if (sGlobalActivity.getIsSaving()==0 && activityStatus != ActivityType.OPEN_STATE) { continue; } - int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000); - int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000);; + int startTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 1, 0) / 1000); + int endTime = (int) (ToolsUtil.getTimeLong(startTimeLong, endTimeLong, timeType,createTime, 2, 0) / 1000);; if(type == ActivityType.DAILY_PREFERENTIAL_GIFT){ // 每日特惠活动 startTime = (int)(activityState.getValue().getCreatTime()/1000); endTime = startTime+604800; } - else if (sGlobalActivity.getTime() == ActivityType.OPEN_TYPE_CYCLE){ + else if (timeType == ActivityType.OPEN_TYPE_CYCLE){ long now = TimeUtils.now(); long intervalTime = (endTime - startTime) * 1000L; long cycleTime = sGlobalActivity.getCycleMinute() * TimeUtils.ONE_MINUTE; @@ -810,8 +821,8 @@ public class ActivityLogic implements IEventHandler{ } long createTime = user.getPlayerInfoManager().getCreateTime(); - int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000); - int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000); + int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1, 0) / 1000); + int endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2, 0) / 1000); List missionInfos = abstractActivity.getAllMissInfo(user,activityMission); fBuilder.addActivityInfo(CommonProto.ActivityInfo.newBuilder().setValue(activityMission.getV()).setActivityId(activityId).addAllMission(missionInfos).setStartTime(startTime).setEndTime(endTime).setReallyOpen(activityMission.getOpenType()).build()); fBuilder.setHadLuckTime(user.getPlayerInfoManager().getLuckWheelLimitTime()); @@ -1412,9 +1423,9 @@ public class ActivityLogic implements IEventHandler{ if(sGlobalActivities.isEmpty()){ throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); } - Function function = v->(int)ToolsUtil.getTimeLong(v.getStartTimeLong(),v.getEndTimeLong(),v.getTime(),user.getPlayerInfoManager().getCreateTime(),1); + Function function = v->(int)ToolsUtil.getTimeLong(v.getStartTimeLong(),v.getEndTimeLong(),v.getTime(),user.getPlayerInfoManager().getCreateTime(),1, 0); Stream stream = sGlobalActivities.stream().sorted(Comparator.comparing(function)) - .filter(v->ToolsUtil.getTimeLong(v.getStartTimeLong(), v.getEndTimeLong(), v.getTime(), user.getPlayerInfoManager().getCreateTime(), 1) > TimeUtils.now()); + .filter(v->ToolsUtil.getTimeLong(v.getStartTimeLong(), v.getEndTimeLong(), v.getTime(), user.getPlayerInfoManager().getCreateTime(), 1, 0) > TimeUtils.now()); List collect = stream.collect(Collectors.toList()); if(collect.isEmpty()){ throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); @@ -1424,7 +1435,7 @@ public class ActivityLogic implements IEventHandler{ if(sGlobalActivity==null){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(),1); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(),1, 0); PlayerInfoProto.NextActivityResponse response = PlayerInfoProto.NextActivityResponse.newBuilder().setId(id).setTime((int)(startTime/1000)).build(); MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true); @@ -1593,8 +1604,8 @@ public class ActivityLogic implements IEventHandler{ createUserTime = user.getPlayerInfoManager().getCreateTime(); } long[] result = new long[2]; - result[0] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 1); - result[1] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 2); + result[0] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 1, 0); + result[1] = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createUserTime, 2, 0); return result; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java index 5e5fe98d2..fbe5df545 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java @@ -187,7 +187,7 @@ public class ContinuousGiftActivity extends AbstractActivity { } long now = TimeUtils.now(); long createTime = user.getPlayerInfoManager().getCreateTime(); - long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); + long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); // 更新记录天数 activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1); // 库里存储的活动档位信息 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java index 5d1980c6f..d459dca45 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java @@ -45,7 +45,7 @@ public class FifteenActivity extends AbstractActivity { if(activityMission == null){ return; } - long startTime = ToolsUtil.getTimeLong(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1); + long startTime = ToolsUtil.getTimeLong(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); int time = (int)(startTime/1000); Map progressInfoMap = activityMission.getActivityMissionMap(); for(Map.Entry entry : progressInfoMap.entrySet()){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java index 91bf3ebfa..16ad1d0f7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java @@ -50,8 +50,8 @@ public class FightMainEventHandler implements IEventHandler{ activityMission.setActivityState(ActivityType.OPEN_STATE); ActivityLogic.getInstance().sendActivityInfo(user,sGlobalActivity.getId()); if(sGlobalActivity.getShopId().length>0){ - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, 0); for (int shopId : sGlobalActivity.getShopId()) { ActivityLogic.getInstance().checkNeedOpenStore(user,shopId,startTime,endTime); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java index ac9226e2a..004e30111 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java @@ -32,7 +32,7 @@ class MissSearchExpectRankActivity extends ExpectRankActivity { public void initActivity(User user) throws Exception { super.initActivity(user); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2, 0); user.getPlayerInfoManager().addVipByTime(155,(int)(endTime/1000)); Set vipInfo = new HashSet<>(); vipInfo.add(155); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java index 2b5363c9f..2fca9ada2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java @@ -197,7 +197,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity { if (info == null || activity == null){ return 0; } - long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1); + long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1, 0); long rankEndTime = startTime + info.getCloseTime()*1000L; return rankEndTime-TimeUtils.now(); } @@ -211,7 +211,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity { if (info == null || activity == null){ return false; } - long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1); + long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 1, 0); long rankStartTime = startTime + info.getOpenTime()*1000L; long rankEndTime = startTime + info.getCloseTime()*1000L; long now = TimeUtils.now(); @@ -229,7 +229,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity { if (info == null || activity == null){ return 0; } - int endTime = (int)(ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 2)/1000); + int endTime = (int)(ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 2, 0)/1000); return endTime-TimeUtils.nowInt(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java index fe07a5ce8..2685c4551 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SecretExpectRankActivity.java @@ -6,8 +6,6 @@ import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.SecretEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import rpc.protocols.CommonProto; -import rpc.protocols.PlayerInfoProto; import com.ljsd.jieling.util.ToolsUtil; import config.SGlobalActivity; @@ -30,7 +28,7 @@ class SecretExpectRankActivity extends ExpectRankActivity { listValue.add(153);//额外购买次数 listValue.add(154);//额外免费次数 Set changedSet = new HashSet<>(); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2, 0); int time = (int)(endTime / 1000); listValue.forEach(privilegeId -> { changedSet.add(privilegeId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java index 31e579405..8351458a8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenHappyActivity.java @@ -25,7 +25,7 @@ public class SevenHappyActivity extends DefaultEmptyActivity{ user.getActivityManager().getActivityMissionMap().put(id, mission); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); user.getUserMissionManager().onGameEvent(user, GameEvent.SERVENHAPPY_REFRESH,id); - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); user.getActivityManager().setSenvenStartTime(startTime); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java index b068be1e0..93f109044 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java @@ -172,7 +172,7 @@ public class SuperBoxActivity extends AbstractActivity { } long now = TimeUtils.now(); long createTime = user.getPlayerInfoManager().getCreateTime(); - long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); + long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); // 更新记录天数 activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1); // 库里存储的活动档位信息 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 1a0a29a1d..67f84151a 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 @@ -104,7 +104,7 @@ public class WeekCardActivity extends AbstractActivity { SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId); long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 - long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now()) + 1; for (int[] ints : sWeekcardConfig.getBaseRewardID()) { @@ -139,7 +139,7 @@ public class WeekCardActivity extends AbstractActivity { SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 - long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now())+1; for (Map.Entry> entry : weekCard.entrySet()) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java index 921c18c5b..aae875688 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java @@ -52,7 +52,7 @@ public class WeekCardLogic { long createTime = user.getPlayerInfoManager().getCreateTime(); // 计算间隔时间 long now = TimeUtils.now(); - long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1); + long startTimeLong = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0); long cycleTime = activity.getCycleMinute() * TimeUtils.ONE_MINUTE; if (cycleTime > 0){ startTimeLong = TimeUtils.getLatelyTime(startTimeLong, now, cycleTime); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java index 9a827f453..58f2c8148 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/ActivityStateChangeHandler.java @@ -32,8 +32,8 @@ public class ActivityStateChangeHandler implements IEventHandler { if(state == ActivityType.OPEN_STATE){ SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); if(sGlobalActivity.getShopId().length>0){ - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1, 0); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2, 0); for (int shopId : sGlobalActivity.getShopId()) { ActivityLogic.getInstance().checkNeedOpenStore(user,shopId,startTime,endTime); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java index 589342ef5..02de50ae8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLogic.java @@ -39,8 +39,8 @@ public class MissionLogic { return null; } SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); - long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2); + long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1, 0); + long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2, 0); if(TimeUtils.now()>endTime){ return null; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 0fada4a69..485f52399 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -1019,8 +1019,8 @@ public class PlayerLogic { if (timingMailIds.contains(sTestWelfare.getId())) { continue; } - long startTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 1); - long endTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 2); + long startTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 1, 0); + long endTime = ToolsUtil.getTimeLong(sTestWelfare.getStartTimeLong(),sTestWelfare.getEndTimeLong(),sTestWelfare.getTime(), 0, 2, 0); if (now < startTime) { continue; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index 8abf2f7f0..8be1b26be 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -58,8 +58,8 @@ public class StoreLogic { long startTime, endTime; switch (sStoreTypeConfig.getStoreOpenRule()){ case 3: - startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 1); - endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 2); + startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 1, 0); + endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_TIME, 0, 2, 0); if (startTime != 0 && endTime != 0 && now > startTime && now < endTime && !openStoreInfo.contains(sStoreTypeConfig.getId())) { for (ISession session : OnlineUserManager.sessionMap.values()) { if (session.getFiveReady() == 1) { @@ -88,8 +88,8 @@ public class StoreLogic { continue; } long userCreateTime = user.getPlayerInfoManager().getCreateTime(); - startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 1); - endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 2); + startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 1, 0); + endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE, userCreateTime, 2, 0); if (now < startTime || now > endTime) { continue; } @@ -103,8 +103,8 @@ public class StoreLogic { } break; case 7: - startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 1); - endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 2); + startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 1, 0); + endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER, 0, 2, 0); if (now < startTime || now > endTime) { continue; } @@ -300,13 +300,13 @@ public class StoreLogic { } if(sStoreTypeConfig.getStoreOpenRule() == 6 ){ long userCreateTime = user.getPlayerInfoManager().getCreateTime(); - startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_ROLE,userCreateTime, 1); - endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE,userCreateTime, 2); + startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_ROLE,userCreateTime, 1, 0); + endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_ROLE,userCreateTime, 2, 0); } if(sStoreTypeConfig.getStoreOpenRule() == 7 ){ long userCreateTime = user.getPlayerInfoManager().getCreateTime(); - startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,userCreateTime, 1); - endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,userCreateTime, 2); + startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,userCreateTime, 1, 0); + endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,userCreateTime, 2, 0); } Map itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user); storeManager.newStoreInfo(sStoreTypeConfig.getId(),System.currentTimeMillis(),startTime,endTime,itemNumMap); @@ -389,8 +389,8 @@ public class StoreLogic { continue; } if(sStoreTypeConfig.getStoreOpenRule() == 7){ - long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,0, 1); - long endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,0, 2); + long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,0, 1, 0); + long endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,0, 2, 0); long now = TimeUtils.now(); if(now>startTime&&now itemNumMap = getStoreItem(storeId,sStoreTypeConfig,user); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java index 6342472c1..ffb2cbad3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java @@ -10,14 +10,16 @@ public class ToolsUtil { /** * 根据不同类型获取活动时间 + * * @param startTimeLong 表里面得开始时间 - * @param endTimeLong 表里面得结束时间 - * @param time 时间类型 + * @param endTimeLong 表里面得结束时间 + * @param time 时间类型 * @param createUserTime 创角时间 - * @param type 1 开始时间, 2 结束时间 + * @param type 1 开始时间, 2 结束时间 + * @param cycleTime 循环时间 * @return 时间 */ - public static long getTimeLong(long startTimeLong, long endTimeLong, int time, long createUserTime, int type){ + public static long getTimeLong(long startTimeLong, long endTimeLong, int time, long createUserTime, int type, int cycleTime){ long baseTime = startTimeLong; if(type == 2){ baseTime = endTimeLong; @@ -25,7 +27,6 @@ public class ToolsUtil { long resultTime=0; switch (time){ case ActivityType.OPEN_TYPE_TIME://开服时间 - case ActivityType.OPEN_TYPE_CYCLE://循环活动 resultTime = baseTime; break; case ActivityType.OPEN_TYPE_ROLE: @@ -51,6 +52,19 @@ public class ToolsUtil { } } break; + case ActivityType.OPEN_TYPE_CYCLE://循环活动 + long now = TimeUtils.now(); + // 循环时间 + long cycleTimeMils = cycleTime * TimeUtils.ONE_MINUTE; + // 最近的开始时间 + long latelyStartTime = TimeUtils.getLatelyTime(startTimeLong, now, cycleTimeMils); + if (type == 1){ + resultTime = latelyStartTime; + }else { + // 最近的结束时间 + resultTime = latelyStartTime + (endTimeLong - startTimeLong); + } + break; default: // 开始时间 if(type == 1){ @@ -66,7 +80,7 @@ public class ToolsUtil { } public static long getEndTimeLong(long startTimeLong , long endTimeLong,int time,long createUserTime,int dayOut){ - long timeLong = getTimeLong(startTimeLong, endTimeLong, time, createUserTime, 2); + long timeLong = getTimeLong(startTimeLong, endTimeLong, time, createUserTime, 2, 0); return timeLong + TimeUtils.DAY * dayOut; }