From bf8a3a59d7d4a7448823fcbe38db6320173d2524 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 25 Mar 2020 05:01:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=92=E7=81=B5=E7=A7=98=E5=AE=9D=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=89=A9=E4=BD=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamecommon/src/main/java/util/TimeUtils.java | 21 ++++++++++----- .../handler/activity/TreasureTimeHandler.java | 27 +++++++++++++++++++ .../jieling/logic/activity/ActivityLogic.java | 7 +++++ .../ljsd/jieling/logic/dao/PlayerManager.java | 2 +- .../jieling/logic/dao/UserMissionManager.java | 23 ++++------------ 5 files changed, 54 insertions(+), 26 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/activity/TreasureTimeHandler.java diff --git a/gamecommon/src/main/java/util/TimeUtils.java b/gamecommon/src/main/java/util/TimeUtils.java index 4cd5836b3..5ad3ceafc 100644 --- a/gamecommon/src/main/java/util/TimeUtils.java +++ b/gamecommon/src/main/java/util/TimeUtils.java @@ -138,7 +138,9 @@ public class TimeUtils { public static final String Stand_CeHua_Data_format = "yyyyMMdd HHmmss"; public static void main(String[] args) { - long lastHour = getLastHour(now(),5); + + long lastHour = getNextWeekendStartTime(1,5); + System.out.println(lastHour); } /** @@ -814,10 +816,10 @@ public class TimeUtils { */ public static long getNextWeekendStartTime(int targetWeekday,int hour) { long cur = getCurWeekdayStartTime(targetWeekday, hour); - if(curnow()){ return cur; + }else{ + return cur + WEEK; } } @@ -1323,11 +1325,12 @@ public class TimeUtils { } /** - *获取传入时间的上个几时 + *获取传入时间的上个几时或下个几时 * @param hour + * @param lastOrUnder true为上个,false为下个 * @return */ - public static long getLastHour(long time,int hour){ + public static long getLastOrUnderHour(long time,int hour,boolean lastOrUnder){ Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(time); int i = cal.get(Calendar.HOUR_OF_DAY); @@ -1336,9 +1339,13 @@ public class TimeUtils { cal.set(Calendar.SECOND,0); cal.set(Calendar.MILLISECOND,0); long result = cal.getTimeInMillis(); - if(i<5){ + if(i sTreasureTaskConfigs = STreasureTaskConfig.sTreasureTaskConfigListByActivityMap.get((int) parm[0]); -// treasureMissionIdsType.getDoingMissionIds().clear(); -// treasureMissionIdsType.getFinishMissionIds().clear(); -// treasureMissionIdsType.getRewardedMissionIds().clear(); -// treasureMissionIdsType.getTakeTimes().clear(); -// List missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION); -// for(STreasureTaskConfig sTreasureTaskConfig : sTreasureTaskConfigs){ -// treasureMissionIdsType.getDoingMissionIds().add(sTreasureTaskConfig.getId()); -// missionStateChangeInfos.add(new MissionStateChangeInfo(sTreasureTaskConfig.getId(), MissionState.DOING,0)); -// } -// user.getPlayerInfoManager().setTreasureScore(0); -// treasureCumulationData= new CumulationData(); -// updateString("treasureMissionIdsType",treasureMissionIdsType); -// updateString("treasureCumulationData",treasureCumulationData); - int[] refreshIds =resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData); treasureCumulationData = new CumulationData(); - CommonProto.RefreshTask.Builder task = treasureIndicationBuild(1, refreshIds); + int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5, false)/1000); + CommonProto.RefreshTask.Builder task = treasureIndicationBuild(1, refreshIds).setRefreshTime(dayRefreshTime); PlayerInfoProto.TreasureRefreshIndication indication1 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task.build()).build(); MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication1,true); break; @@ -99,7 +84,9 @@ public class UserMissionManager extends MongoBase { int[] weekRefreshIds = resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData); if(weekRefreshIds!=null){ treasureWeekCumulationData = new CumulationData(); - CommonProto.RefreshTask.Builder task2= treasureIndicationBuild(2, weekRefreshIds); + int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000); + System.out.println(weekRefreshTime); + CommonProto.RefreshTask.Builder task2= treasureIndicationBuild(2, weekRefreshIds).setRefreshTime(weekRefreshTime); PlayerInfoProto.TreasureRefreshIndication indication2 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task2.build()).build(); MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication2,true); }