diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index afb47af48..6dbaa3f72 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -421,8 +421,6 @@ public class BuyGoodsNewLogic { boolean result = false; //判断刷新时间 if(bag.getRefreshTime() != 0 && bag.getRefreshTime() < System.currentTimeMillis()){ - bag.setOpen(true); - bag.setStartTime(TimeUtils.getTodayZero()); bag.refresh(); result = true; } @@ -461,14 +459,16 @@ public class BuyGoodsNewLogic { } } bag.setStartTime(System.currentTimeMillis()); - bag.setEndTime(bag.getStartTime() + endTime); + if(endTime != 0){ + bag.setEndTime(bag.getStartTime() + endTime); + } bag.setOpen(true); result = true; } }else{ boolean open = true; if(System.currentTimeMillis() > bag.getStartTime()){ - if(bag.getType() > RechargeType.timeLimit.getType()){ + if(bag.getType() != RechargeType.timeLimit.getType()){ for(String[] con : bag.getCondition()){ if(!judgeOpen(con,user)){ open = false; @@ -532,13 +532,29 @@ public class BuyGoodsNewLogic { return true; } }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")){//活动开启 return ActivityLogic.checkActivityOpen(user,Integer.parseInt(con[1])); }else if(con[0].equals("4")){//时间类全部true return true; }else if(con[0].equals("5")){//激活高级月卡 return user.getPlayerInfoManager().getMonthCard().get(Global.LMONTHCARDID)==null?false:true; + }else if(con[0].equals("7")){ + return true; } return false; } @@ -721,9 +737,9 @@ public class BuyGoodsNewLogic { int nowTime = (int)(System.currentTimeMillis()/1000); int getDays = 0; if(bag.getGetRewardTime() != 0){ - getDays = TimeUtils.differentDays(bag.getLastBuyTime(),bag.getGetRewardTime()); + getDays = TimeUtils.differentDays(bag.getLastBuyTime() - TimeUtils.DAY,bag.getGetRewardTime()); }else{ - bag.setGetRewardTime(TimeUtils.getTodayZero() - 3600*24*1000); + bag.setGetRewardTime(TimeUtils.getTodayZero() - TimeUtils.DAY); } int canget = TimeUtils.differentDays(bag.getGetRewardTime(),System.currentTimeMillis()); getRewards(uid,id,getDays,canget,bag.getContinueDays()); @@ -747,10 +763,11 @@ public class BuyGoodsNewLogic { int nowTime = (int)(System.currentTimeMillis()/1000); for(int i = 1;i<=cDay;i++){ SLuxuryFund fund = SLuxuryFund.getByFoundIdAndDay(type,startDay+i); + SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(type); String reward = ItemUtil.getMailReward(fund.getreward()); - String title = SErrorCodeEerverConfig.getI18NMessage("recharge_"+type+"_daily_title"); + String title = SErrorCodeEerverConfig.getI18NMessage("recharge_"+config.getType()+"_daily_title"); String content; - content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("recharge_"+type+"_daily_txt", + content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("recharge_"+config.getType()+"_daily_txt", new Object[]{continueDays-startDay-cDay},new int[]{0},"#"); MailLogic.getInstance().sendMail(uid,title,content,reward,nowTime, Global.MAIL_EFFECTIVE_TIME); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java index 0dce7d250..6a16708cb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java @@ -46,6 +46,9 @@ public class AbstractWelfareBag extends MongoBase{ int i = 0; for (String s0 : s) { String[] s1 = s0.split("#"); + if(s1[0].equals("7")){ + setUserBuyRefresh(true); + } condition[i][0] = s1[0]; condition[i][1] = s1[1]; if(s1.length > 2){ @@ -84,7 +87,7 @@ public class AbstractWelfareBag extends MongoBase{ LOGGER.error("礼包:{}购买次数为:{}超过限制:{}",modId,buyTimes,limit); return false; } - if(isUserBuyRefresh){ + if(isUserBuyRefresh && getRefreshTime() == 0){ setRefreshTime(TimeUtils.getTodayZero() + getDailyUpdate() * TimeUtils.DAY); } setBuyTimes(getBuyTimes()+1); @@ -127,17 +130,17 @@ public class AbstractWelfareBag extends MongoBase{ }else if(getTimeType() == 8){//每月刷新 setStartTime(TimeUtils.getCurMonthStartTime(1)); setRefreshTime(TimeUtils.getMonthStartTime(1,1)); - }else if(getTimeType() == 5){//玩家购买刷新 - setRefreshTime(0); }else{ for(String[] I : getCondition()){ if(I[0].equals("4")){ - setEndTime(getStartTime()+Long.parseLong(I[2])); - setRefreshTime(getStartTime() + getDailyUpdate() * TimeUtils.DAY); + setRefreshTime(System.currentTimeMillis() + getDailyUpdate() * TimeUtils.DAY); break; } } } + if(isUserBuyRefresh()){//玩家购买刷新 + setRefreshTime(0); + } setBuyTimes(0); setLastBuyTime(0); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PerpetualWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PerpetualWelfareBag.java index 5d7bb0a21..ed0f8cbb9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PerpetualWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PerpetualWelfareBag.java @@ -22,9 +22,6 @@ public class PerpetualWelfareBag extends AbstractWelfareBag { setStartTime(user.getPlayerInfoManager().getCreateTime()+Long.parseLong(I[1])); }else if(config.getTime() == 3){//开服时间 setStartTime(GameApplication.serverConfig.getCacheOpenTime()); - }else if(config.getTime() == 5){//开服时间开,玩家购买刷新 - setStartTime(GameApplication.serverConfig.getCacheOpenTime()); - setUserBuyRefresh(true); }else if(config.getTime() == 9){//条件达成 setStartTime(0); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java index 4da51aae3..686476876 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java @@ -40,9 +40,6 @@ public class ReceiveWelfareBag extends AbstractWelfareBag { }else{ setEndTime(GameApplication.serverConfig.getCacheOpenTime()+Long.parseLong(I[2])); } - }else if(config.getTime() == 5){//开服时间开,玩家购买刷新 - setStartTime(GameApplication.serverConfig.getCacheOpenTime()); - setUserBuyRefresh(true); }else if(config.getTime() == 9){//条件达成 setStartTime(0); } diff --git a/tablemanager/src/main/java/config/SGlobalSystemConfig.java b/tablemanager/src/main/java/config/SGlobalSystemConfig.java index 3330a2f2c..6205bbb24 100644 --- a/tablemanager/src/main/java/config/SGlobalSystemConfig.java +++ b/tablemanager/src/main/java/config/SGlobalSystemConfig.java @@ -47,17 +47,25 @@ public class SGlobalSystemConfig implements BaseConfig { private int guideId; public static Map> idsByType; + private static Map configMap; @Override public void init() throws Exception { Map config = STableManager.getConfig(SGlobalSystemConfig.class); Map> idsByTypeTmp = new HashMap<>(); + Map tempConfigMap = new HashMap<>(); STableManager.getConfig(SGlobalSystemConfig.class).forEach((id,item)->{ + tempConfigMap.put(item.getId(),item); if(!idsByTypeTmp.containsKey(item.getIsIDdSame())){ idsByTypeTmp.put(item.getIsIDdSame(),new ArrayList<>()); } idsByTypeTmp.get(item.getIsIDdSame()).add(item.getId()); }); idsByType = idsByTypeTmp; + configMap = tempConfigMap; + } + + public static SGlobalSystemConfig getConfigById(int id){ + return configMap.get(id); } public String getName() {