新礼包

back_recharge
mengchengzhen 2021-04-20 15:03:50 +08:00
parent 30814f86a5
commit c48ad44e27
5 changed files with 66 additions and 9 deletions

View File

@ -826,6 +826,20 @@ public class TimeUtils {
return c.getTimeInMillis(); return c.getTimeInMillis();
} }
/**
* 0
*/
public static long getCurMonthStartTime(int x){
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.set(Calendar.DAY_OF_MONTH, x);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND,0);
c.set(Calendar.MILLISECOND, 0);
return c.getTimeInMillis();
}
/** /**
* *
* @param targetWeekday * @param targetWeekday
@ -1434,4 +1448,10 @@ public class TimeUtils {
} }
return (int) Math.floor((under-last)/(HOUR*24D)); return (int) Math.floor((under-last)/(HOUR*24D));
} }
public static long getTodayZero(){
long current = System.currentTimeMillis();
long zero = current/(1000*3600*24)*(1000*3600*24) - TimeZone.getDefault().getRawOffset();
return zero;
}
} }

View File

@ -86,6 +86,8 @@ public class BuyGoodsNewLogic {
if(refreshUnitWF(pushWelfareBagMap.get(entry.getKey()),garbageList,user) && !needChange){ if(refreshUnitWF(pushWelfareBagMap.get(entry.getKey()),garbageList,user) && !needChange){
needChange = true; needChange = true;
} }
}else if(info.getGarbage().contains(entry.getKey())){
continue;
}else{ }else{
AbstractWelfareBag bag = initUnitWF(user,entry.getValue()); AbstractWelfareBag bag = initUnitWF(user,entry.getValue());
pAddList.add(bag); pAddList.add(bag);
@ -480,9 +482,16 @@ public class BuyGoodsNewLogic {
bag.setOpen((false)); bag.setOpen((false));
if(bag.getType() == RechargeType.timeLimit.getType() && bag.getDailyUpdate()<1){ if(bag.getType() == RechargeType.timeLimit.getType() && bag.getDailyUpdate()<1){
bag.setProhibited(true); bag.setProhibited(true);
}else if(bag.getType() == RechargeType.receive.getType() && bag.getLastBuyTime() > 0 && }
System.currentTimeMillis() < bag.getLastBuyTime() + TimeUtils.DAY * bag.getContinueDays()){ if(bag.getRefreshTime() > System.currentTimeMillis()){
bag.setOpen(true); bag.setStartTime(bag.getRefreshTime());
for(String[] I : bag.getCondition()){
if(I[0].equals("4")){
bag.setEndTime(bag.getStartTime()+Long.parseLong(I[2]));
break;
}
}
bag.setRefreshTime(bag.getStartTime() + bag.getDailyUpdate() * TimeUtils.DAY);
} }
bag.setBuyTimes(0); bag.setBuyTimes(0);
} }

View File

@ -25,6 +25,7 @@ public class PerpetualWelfareBag extends AbstractWelfareBag {
}else if(config.getTime() == 8){//自然月 }else if(config.getTime() == 8){//自然月
setStartTime(TimeUtils.getCurMonthStartTime(1)); setStartTime(TimeUtils.getCurMonthStartTime(1));
} }
setEndTime(0);
} }
} }
} }

View File

@ -19,20 +19,43 @@ public class ReceiveWelfareBag extends AbstractWelfareBag {
if(I[0].equals("4")){ if(I[0].equals("4")){
if(config.getTime() == 1){//绝对时间 if(config.getTime() == 1){//绝对时间
setStartTime(TimeUtils.parseTimeToMiles(I[1],TimeUtils.Stand_CeHua_Data_format)); setStartTime(TimeUtils.parseTimeToMiles(I[1],TimeUtils.Stand_CeHua_Data_format));
setEndTime(TimeUtils.parseTimeToMiles(I[2],TimeUtils.Stand_CeHua_Data_format)); if(I[2].equals("0")){
setEndTime(0);
}else{
setEndTime(TimeUtils.parseTimeToMiles(I[2],TimeUtils.Stand_CeHua_Data_format));
}
}else if(config.getTime() == 2){//创角时间 }else if(config.getTime() == 2){//创角时间
setStartTime(user.getPlayerInfoManager().getCreateTime()+Long.parseLong(I[1])); setStartTime(user.getPlayerInfoManager().getCreateTime()+Long.parseLong(I[1]));
setEndTime(user.getPlayerInfoManager().getCreateTime()+Long.parseLong(I[2])); if(I[2].equals("0")){
setEndTime(0);
}else{
setEndTime(user.getPlayerInfoManager().getCreateTime()+Long.parseLong(I[2]));
}
}else if(config.getTime() == 3){//开服时间 }else if(config.getTime() == 3){//开服时间
setStartTime(GameApplication.serverConfig.getCacheOpenTime()); setStartTime(GameApplication.serverConfig.getCacheOpenTime()+Long.parseLong(I[1]));
if(I[2].equals("0")){
setEndTime(0);
}else{
setEndTime(GameApplication.serverConfig.getCacheOpenTime()+Long.parseLong(I[2]));
}
}else if(config.getTime() == 7){//自然周 }else if(config.getTime() == 7){//自然周
setStartTime(TimeUtils.getCurWeekdayStartTime(1,0)); setStartTime(TimeUtils.getCurWeekdayStartTime(1,0));
if(I[2].equals("0")){
setEndTime(0);
}else{
setEndTime(TimeUtils.getCurWeekdayStartTime(1,0)+Long.parseLong(I[2]));
}
}else if(config.getTime() == 8){//自然月 }else if(config.getTime() == 8){//自然月
setStartTime(TimeUtils.getCurMonthStartTime(1)); setStartTime(TimeUtils.getCurMonthStartTime(1));
if(I[2].equals("0")){
setEndTime(0);
}else{
setEndTime(TimeUtils.getCurMonthStartTime(1)+Long.parseLong(I[2]));
}
} }
} }
} }
if(getDailyUpdate()>0){ if(getDailyUpdate()>0 && getEndTime() != 0){
setRefreshTime(getStartTime() + getDailyUpdate() * TimeUtils.DAY); setRefreshTime(getStartTime() + getDailyUpdate() * TimeUtils.DAY);
} }
} }
@ -46,6 +69,7 @@ public class ReceiveWelfareBag extends AbstractWelfareBag {
} }
} }
bought = true; bought = true;
setEndTime(TimeUtils.getTodayZero() + getContinueDays() * TimeUtils.DAY);
return true; return true;
} }

View File

@ -21,15 +21,18 @@ public class TimeLimitWelfareBag extends AbstractWelfareBag {
setStartTime(user.getPlayerInfoManager().getCreateTime()+Long.parseLong(I[1])); setStartTime(user.getPlayerInfoManager().getCreateTime()+Long.parseLong(I[1]));
setEndTime(user.getPlayerInfoManager().getCreateTime()+Long.parseLong(I[2])); setEndTime(user.getPlayerInfoManager().getCreateTime()+Long.parseLong(I[2]));
}else if(config.getTime() == 3){//开服时间 }else if(config.getTime() == 3){//开服时间
setStartTime(GameApplication.serverConfig.getCacheOpenTime()); setStartTime(GameApplication.serverConfig.getCacheOpenTime()+Long.parseLong(I[1]));
setEndTime(GameApplication.serverConfig.getCacheOpenTime()+Long.parseLong(I[2]));
}else if(config.getTime() == 7){//自然周 }else if(config.getTime() == 7){//自然周
setStartTime(TimeUtils.getCurWeekdayStartTime(1,0)); setStartTime(TimeUtils.getCurWeekdayStartTime(1,0));
setEndTime(TimeUtils.getCurWeekdayStartTime(1,0)+Long.parseLong(I[2]));
}else if(config.getTime() == 8){//自然月 }else if(config.getTime() == 8){//自然月
setStartTime(TimeUtils.getCurMonthStartTime(1)); setStartTime(TimeUtils.getCurMonthStartTime(1));
setEndTime(TimeUtils.getCurMonthStartTime(1)+Long.parseLong(I[2]));
} }
} }
} }
if(getDailyUpdate()>0){ if(getDailyUpdate()>0 && getEndTime() != 0){
setRefreshTime(getStartTime() + getDailyUpdate() * TimeUtils.DAY); setRefreshTime(getStartTime() + getDailyUpdate() * TimeUtils.DAY);
} }
} }