新礼包

back_recharge
mengchengzhen 2021-04-19 15:37:34 +08:00
parent 2f03e2c24e
commit 0b59e617c8
1 changed files with 25 additions and 12 deletions

View File

@ -66,7 +66,8 @@ public class BuyGoodsNewLogic {
/** /**
* *
*/ */
public static void refreshWelfareState(User user){ public static boolean refreshWelfareState(User user){
boolean needChange = false;
List<AbstractWelfareBag> pAddList = new ArrayList<>(); List<AbstractWelfareBag> pAddList = new ArrayList<>();
List<Integer> garbageList = new ArrayList<>(); List<Integer> garbageList = new ArrayList<>();
NewRechargeInfo info = user.getPlayerInfoManager().getNewRechargeInfo(); NewRechargeInfo info = user.getPlayerInfoManager().getNewRechargeInfo();
@ -76,17 +77,27 @@ public class BuyGoodsNewLogic {
Map<Integer, ReceiveWelfareBag> receiveWelfareBagMap = info.getReceiveMap(); Map<Integer, ReceiveWelfareBag> receiveWelfareBagMap = info.getReceiveMap();
Map<Integer, PushWelfareBag> pushWelfareBagMap = info.getPushMap(); Map<Integer, PushWelfareBag> pushWelfareBagMap = info.getPushMap();
if(perpetualWelfareBagMap.containsKey(entry.getKey())){ if(perpetualWelfareBagMap.containsKey(entry.getKey())){
refreshUnitWF(perpetualWelfareBagMap.get(entry.getKey()),garbageList,user); if(refreshUnitWF(perpetualWelfareBagMap.get(entry.getKey()),garbageList,user) && !needChange){
needChange = true;
}
}else if(timeLimitWelfareBagMap.containsKey(entry.getKey())){ }else if(timeLimitWelfareBagMap.containsKey(entry.getKey())){
refreshUnitWF(timeLimitWelfareBagMap.get(entry.getKey()),garbageList,user); if(refreshUnitWF(timeLimitWelfareBagMap.get(entry.getKey()),garbageList,user) && !needChange){
needChange = true;
}
}else if(receiveWelfareBagMap.containsKey(entry.getKey())){ }else if(receiveWelfareBagMap.containsKey(entry.getKey())){
refreshUnitWF(receiveWelfareBagMap.get(entry.getKey()),garbageList,user); if(refreshUnitWF(receiveWelfareBagMap.get(entry.getKey()),garbageList,user) && !needChange){
needChange = true;
}
}else if(pushWelfareBagMap.containsKey(entry.getKey())){ }else if(pushWelfareBagMap.containsKey(entry.getKey())){
refreshUnitWF(pushWelfareBagMap.get(entry.getKey()),garbageList,user); if(refreshUnitWF(pushWelfareBagMap.get(entry.getKey()),garbageList,user) && !needChange){
needChange = true;
}
}else{ }else{
AbstractWelfareBag bag = initUnitWF(user,entry.getValue()); AbstractWelfareBag bag = initUnitWF(user,entry.getValue());
pAddList.add(bag); pAddList.add(bag);
refreshUnitWF(bag,garbageList,user); if(refreshUnitWF(bag,garbageList,user) && !needChange){
needChange = true;
}
} }
} }
//添加新增礼包 //添加新增礼包
@ -109,6 +120,7 @@ public class BuyGoodsNewLogic {
info.getTimeLimitMap().remove(i); info.getTimeLimitMap().remove(i);
} }
} }
return needChange;
} }
/** /**
@ -407,10 +419,10 @@ public class BuyGoodsNewLogic {
/** /**
* *
*/ */
public static void refreshUnitWF(AbstractWelfareBag bag,List<Integer> garbageList,User user){ public static boolean refreshUnitWF(AbstractWelfareBag bag,List<Integer> garbageList,User user){
if(bag.isProhibited()){ if(bag.isProhibited() && !garbageList.contains(bag.getModId())){
garbageList.add(bag.getModId()); garbageList.add(bag.getModId());
return; return false;
} }
if(bag.isOpen()){ if(bag.isOpen()){
if(bag.getEndTime() == 0){ if(bag.getEndTime() == 0){
@ -440,8 +452,10 @@ public class BuyGoodsNewLogic {
} }
if(open){ if(open){
bag.setOpen(true); bag.setOpen(true);
return true;
} }
} }
return false;
} }
/** /**
@ -507,10 +521,9 @@ public class BuyGoodsNewLogic {
return true; return true;
} }
public static boolean getGoodsBagInfo(int uid,List<CommonProto.GiftGoodsInfo> giftGoodsInfoList,boolean needClear) throws Exception { public static boolean getGoodsBagInfo(int uid,List<CommonProto.GiftGoodsInfo> giftGoodsInfoList) throws Exception {
boolean needChange = false;
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
refreshWelfareState(user); boolean needChange = refreshWelfareState(user);
NewRechargeInfo rechargeInfo = user.getPlayerInfoManager().getNewRechargeInfo(); NewRechargeInfo rechargeInfo = user.getPlayerInfoManager().getNewRechargeInfo();
for(AbstractWelfareBag bag : rechargeInfo.getPerpetualMap().values()){ for(AbstractWelfareBag bag : rechargeInfo.getPerpetualMap().values()){
if(bag.isOpen()){ if(bag.isOpen()){