新礼包

back_recharge
mengchengzhen 2021-04-27 19:27:28 +08:00
parent 9f00d7a855
commit c9db588348
5 changed files with 37 additions and 16 deletions

View File

@ -418,8 +418,6 @@ public class BuyGoodsNewLogic {
boolean result = false; boolean result = false;
//判断刷新时间 //判断刷新时间
if(bag.getRefreshTime() != 0 && bag.getRefreshTime() < System.currentTimeMillis()){ if(bag.getRefreshTime() != 0 && bag.getRefreshTime() < System.currentTimeMillis()){
bag.setOpen(true);
bag.setStartTime(TimeUtils.getTodayZero());
bag.refresh(); bag.refresh();
result = true; result = true;
} }
@ -458,14 +456,16 @@ public class BuyGoodsNewLogic {
} }
} }
bag.setStartTime(System.currentTimeMillis()); bag.setStartTime(System.currentTimeMillis());
if(endTime != 0){
bag.setEndTime(bag.getStartTime() + endTime); bag.setEndTime(bag.getStartTime() + endTime);
}
bag.setOpen(true); bag.setOpen(true);
result = true; result = true;
} }
}else{ }else{
boolean open = true; boolean open = true;
if(System.currentTimeMillis() > bag.getStartTime()){ if(System.currentTimeMillis() > bag.getStartTime()){
if(bag.getType() > RechargeType.timeLimit.getType()){ if(bag.getType() != RechargeType.timeLimit.getType()){
for(String[] con : bag.getCondition()){ for(String[] con : bag.getCondition()){
if(!judgeOpen(con,user)){ if(!judgeOpen(con,user)){
open = false; open = false;
@ -529,13 +529,29 @@ public class BuyGoodsNewLogic {
return true; return true;
} }
}else if(con[0].equals("2")){//功能开启 }else if(con[0].equals("2")){//功能开启
return GlobalDataManaager.getInstance().checkIsOpen(Integer.parseInt(con[1])); if(GlobalDataManaager.getInstance().checkIsOpen(Integer.parseInt(con[1]))){
SGlobalSystemConfig config = SGlobalSystemConfig.getConfigById(Integer.parseInt(con[1]));
if(config == null){
return false;
}
int[] rule = config.getOpenRules();
if(rule[0] == 2){
int level = user.getPlayerInfoManager().getLevel();
if(level < rule[1]){
return false;
}
}
return true;
}
return false;
}else if(con[0].equals("3")){//活动开启 }else if(con[0].equals("3")){//活动开启
return ActivityLogic.checkActivityOpen(user,Integer.parseInt(con[1])); return ActivityLogic.checkActivityOpen(user,Integer.parseInt(con[1]));
}else if(con[0].equals("4")){//时间类全部true }else if(con[0].equals("4")){//时间类全部true
return true; return true;
}else if(con[0].equals("5")){//激活高级月卡 }else if(con[0].equals("5")){//激活高级月卡
return user.getPlayerInfoManager().getMonthCard().get(Global.LMONTHCARDID)==null?false:true; return user.getPlayerInfoManager().getMonthCard().get(Global.LMONTHCARDID)==null?false:true;
}else if(con[0].equals("7")){
return true;
} }
return false; return false;
} }

View File

@ -46,6 +46,9 @@ public class AbstractWelfareBag extends MongoBase{
int i = 0; int i = 0;
for (String s0 : s) { for (String s0 : s) {
String[] s1 = s0.split("#"); String[] s1 = s0.split("#");
if(s1[0].equals("7")){
setUserBuyRefresh(true);
}
condition[i][0] = s1[0]; condition[i][0] = s1[0];
condition[i][1] = s1[1]; condition[i][1] = s1[1];
if(s1.length > 2){ if(s1.length > 2){
@ -84,7 +87,7 @@ public class AbstractWelfareBag extends MongoBase{
LOGGER.error("礼包:{}购买次数为:{}超过限制:{}",modId,buyTimes,limit); LOGGER.error("礼包:{}购买次数为:{}超过限制:{}",modId,buyTimes,limit);
return false; return false;
} }
if(isUserBuyRefresh){ if(isUserBuyRefresh && getRefreshTime() == 0){
setRefreshTime(TimeUtils.getTodayZero() + getDailyUpdate() * TimeUtils.DAY); setRefreshTime(TimeUtils.getTodayZero() + getDailyUpdate() * TimeUtils.DAY);
} }
setBuyTimes(getBuyTimes()+1); setBuyTimes(getBuyTimes()+1);
@ -127,17 +130,17 @@ public class AbstractWelfareBag extends MongoBase{
}else if(getTimeType() == 8){//每月刷新 }else if(getTimeType() == 8){//每月刷新
setStartTime(TimeUtils.getCurMonthStartTime(1)); setStartTime(TimeUtils.getCurMonthStartTime(1));
setRefreshTime(TimeUtils.getMonthStartTime(1,1)); setRefreshTime(TimeUtils.getMonthStartTime(1,1));
}else if(getTimeType() == 5){//玩家购买刷新
setRefreshTime(0);
}else{ }else{
for(String[] I : getCondition()){ for(String[] I : getCondition()){
if(I[0].equals("4")){ if(I[0].equals("4")){
setEndTime(getStartTime()+Long.parseLong(I[2])); setRefreshTime(System.currentTimeMillis() + getDailyUpdate() * TimeUtils.DAY);
setRefreshTime(getStartTime() + getDailyUpdate() * TimeUtils.DAY);
break; break;
} }
} }
} }
if(isUserBuyRefresh()){//玩家购买刷新
setRefreshTime(0);
}
setBuyTimes(0); setBuyTimes(0);
setLastBuyTime(0); setLastBuyTime(0);
} }

View File

@ -22,9 +22,6 @@ public class PerpetualWelfareBag extends AbstractWelfareBag {
setStartTime(user.getPlayerInfoManager().getCreateTime()+Long.parseLong(I[1])); setStartTime(user.getPlayerInfoManager().getCreateTime()+Long.parseLong(I[1]));
}else if(config.getTime() == 3){//开服时间 }else if(config.getTime() == 3){//开服时间
setStartTime(GameApplication.serverConfig.getCacheOpenTime()); setStartTime(GameApplication.serverConfig.getCacheOpenTime());
}else if(config.getTime() == 5){//开服时间开,玩家购买刷新
setStartTime(GameApplication.serverConfig.getCacheOpenTime());
setUserBuyRefresh(true);
}else if(config.getTime() == 9){//条件达成 }else if(config.getTime() == 9){//条件达成
setStartTime(0); setStartTime(0);
} }

View File

@ -40,9 +40,6 @@ public class ReceiveWelfareBag extends AbstractWelfareBag {
}else{ }else{
setEndTime(GameApplication.serverConfig.getCacheOpenTime()+Long.parseLong(I[2])); setEndTime(GameApplication.serverConfig.getCacheOpenTime()+Long.parseLong(I[2]));
} }
}else if(config.getTime() == 5){//开服时间开,玩家购买刷新
setStartTime(GameApplication.serverConfig.getCacheOpenTime());
setUserBuyRefresh(true);
}else if(config.getTime() == 9){//条件达成 }else if(config.getTime() == 9){//条件达成
setStartTime(0); setStartTime(0);
} }

View File

@ -47,17 +47,25 @@ public class SGlobalSystemConfig implements BaseConfig {
private int guideId; private int guideId;
public static Map<Integer, List<Integer>> idsByType; public static Map<Integer, List<Integer>> idsByType;
private static Map<Integer,SGlobalSystemConfig> configMap;
@Override @Override
public void init() throws Exception { public void init() throws Exception {
Map<Integer, SGlobalSystemConfig> config = STableManager.getConfig(SGlobalSystemConfig.class); Map<Integer, SGlobalSystemConfig> config = STableManager.getConfig(SGlobalSystemConfig.class);
Map<Integer, List<Integer>> idsByTypeTmp = new HashMap<>(); Map<Integer, List<Integer>> idsByTypeTmp = new HashMap<>();
Map<Integer,SGlobalSystemConfig> tempConfigMap = new HashMap<>();
STableManager.getConfig(SGlobalSystemConfig.class).forEach((id,item)->{ STableManager.getConfig(SGlobalSystemConfig.class).forEach((id,item)->{
tempConfigMap.put(item.getId(),item);
if(!idsByTypeTmp.containsKey(item.getIsIDdSame())){ if(!idsByTypeTmp.containsKey(item.getIsIDdSame())){
idsByTypeTmp.put(item.getIsIDdSame(),new ArrayList<>()); idsByTypeTmp.put(item.getIsIDdSame(),new ArrayList<>());
} }
idsByTypeTmp.get(item.getIsIDdSame()).add(item.getId()); idsByTypeTmp.get(item.getIsIDdSame()).add(item.getId());
}); });
idsByType = idsByTypeTmp; idsByType = idsByTypeTmp;
configMap = tempConfigMap;
}
public static SGlobalSystemConfig getConfigById(int id){
return configMap.get(id);
} }
public String getName() { public String getName() {