戒灵秘宝时间剩余

lvxinran 2020-03-25 05:01:03 +08:00
parent c208cc6bb7
commit bf8a3a59d7
5 changed files with 54 additions and 26 deletions

View File

@ -138,7 +138,9 @@ public class TimeUtils {
public static final String Stand_CeHua_Data_format = "yyyyMMdd HHmmss"; public static final String Stand_CeHua_Data_format = "yyyyMMdd HHmmss";
public static void main(String[] args) { public static void main(String[] args) {
long lastHour = getLastHour(now(),5);
long lastHour = getNextWeekendStartTime(1,5);
System.out.println(lastHour); System.out.println(lastHour);
} }
/** /**
@ -814,10 +816,10 @@ public class TimeUtils {
*/ */
public static long getNextWeekendStartTime(int targetWeekday,int hour) { public static long getNextWeekendStartTime(int targetWeekday,int hour) {
long cur = getCurWeekdayStartTime(targetWeekday, hour); long cur = getCurWeekdayStartTime(targetWeekday, hour);
if(cur<now()){ if(cur>now()){
return cur + WEEK;
}else{
return cur; return cur;
}else{
return cur + WEEK;
} }
} }
@ -1323,11 +1325,12 @@ public class TimeUtils {
} }
/** /**
* *
* @param hour * @param hour
* @param lastOrUnder truefalse
* @return * @return
*/ */
public static long getLastHour(long time,int hour){ public static long getLastOrUnderHour(long time,int hour,boolean lastOrUnder){
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(time); cal.setTimeInMillis(time);
int i = cal.get(Calendar.HOUR_OF_DAY); int i = cal.get(Calendar.HOUR_OF_DAY);
@ -1336,9 +1339,13 @@ public class TimeUtils {
cal.set(Calendar.SECOND,0); cal.set(Calendar.SECOND,0);
cal.set(Calendar.MILLISECOND,0); cal.set(Calendar.MILLISECOND,0);
long result = cal.getTimeInMillis(); long result = cal.getTimeInMillis();
if(i<5){ if(i<hour){
result = result -TimeUtils.DAY; result = result -TimeUtils.DAY;
} }
if(!lastOrUnder){
result = result + TimeUtils.DAY;
}
return result; return result;
} }

View File

@ -0,0 +1,27 @@
package com.ljsd.jieling.handler.activity;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.MessageTypeProto;
import org.springframework.stereotype.Component;
/**
* @author lvxinran
* @date 2020/3/21
* @discribe
*/
@Component
public class TreasureTimeHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.TREASURE_REFRESH_TIME_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
ActivityLogic.getInstance().getTreasureNextRefreshTime(iSession,MessageTypeProto.MessageType.TREASURE_REFRESH_TIME_RESPONSE);
}
}

View File

@ -1199,4 +1199,11 @@ public class ActivityLogic implements IEventHandler{
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true); MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
} }
public void getTreasureNextRefreshTime(ISession session,MessageTypeProto.MessageType messageType) throws Exception {
int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5, false)/1000);
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000);
PlayerInfoProto.TreasureRefreshTimeResponse response = PlayerInfoProto.TreasureRefreshTimeResponse.newBuilder().setDayTime(dayRefreshTime).setWeekTime(weekRefreshTime).build();
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
}
} }

View File

@ -349,7 +349,7 @@ public class PlayerManager extends MongoBase {
}else { }else {
maxTime = TimeUtils.now()/1000+config.getContinueTime(); maxTime = TimeUtils.now()/1000+config.getContinueTime();
} }
maxTime = (int)(TimeUtils.getLastHour(maxTime*1000,5)/1000); maxTime = (int)(TimeUtils.getLastOrUnderHour(maxTime*1000,5,true)/1000);
} }
vipInfo.put(privilageId,new VipInfo(0,(int)maxTime)); vipInfo.put(privilageId,new VipInfo(0,(int)maxTime));
updateString("vipInfo", vipInfo); updateString("vipInfo", vipInfo);

View File

@ -73,25 +73,10 @@ public class UserMissionManager extends MongoBase {
updateString("dailyMissionIdsType",dailyMissionIdsType); updateString("dailyMissionIdsType",dailyMissionIdsType);
break; break;
case TREASH_REFRESH: case TREASH_REFRESH:
// List<STreasureTaskConfig> sTreasureTaskConfigs = STreasureTaskConfig.sTreasureTaskConfigListByActivityMap.get((int) parm[0]);
// treasureMissionIdsType.getDoingMissionIds().clear();
// treasureMissionIdsType.getFinishMissionIds().clear();
// treasureMissionIdsType.getRewardedMissionIds().clear();
// treasureMissionIdsType.getTakeTimes().clear();
// List<MissionStateChangeInfo> 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); int[] refreshIds =resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
treasureCumulationData = new CumulationData(); 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(); PlayerInfoProto.TreasureRefreshIndication indication1 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task.build()).build();
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication1,true); MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication1,true);
break; break;
@ -99,7 +84,9 @@ public class UserMissionManager extends MongoBase {
int[] weekRefreshIds = resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData); int[] weekRefreshIds = resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData);
if(weekRefreshIds!=null){ if(weekRefreshIds!=null){
treasureWeekCumulationData = new CumulationData(); 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(); PlayerInfoProto.TreasureRefreshIndication indication2 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task2.build()).build();
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication2,true); MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication2,true);
} }