戒灵秘宝时间剩余

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 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(cur<now()){
return cur + WEEK;
}else{
if(cur>now()){
return cur;
}else{
return cur + WEEK;
}
}
@ -1323,11 +1325,12 @@ public class TimeUtils {
}
/**
*
*
* @param hour
* @param lastOrUnder truefalse
* @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<hour){
result = result -TimeUtils.DAY;
}
if(!lastOrUnder){
result = result + TimeUtils.DAY;
}
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);
}
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 {
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));
updateString("vipInfo", vipInfo);

View File

@ -73,25 +73,10 @@ public class UserMissionManager extends MongoBase {
updateString("dailyMissionIdsType",dailyMissionIdsType);
break;
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);
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);
}