diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index dd166fa30..2dd1663fd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -325,11 +325,17 @@ public class StoreLogic implements IEventHandler { } Map itemNumMap = new LinkedHashMap<>(); int rewardId = getRewardId(storeType,sort,user); + if(rewardId==0){ + return; + } itemNumMap.put(rewardId, 0); storeManager.newStoreInfo(sStoreTypeConfig.getId(),System.currentTimeMillis(),startTime,endTime,itemNumMap); }else{ Map itemNumMap = storeInfo.getItemNumMap(); int rewardId = getRewardId(storeType,sort,user); + if(rewardId==0){ + return; + } while (itemNumMap.containsKey(rewardId)){ rewardId += 100000; } @@ -387,6 +393,9 @@ public class StoreLogic implements IEventHandler { Map itemNumMap = new ConcurrentHashMap<>(); for (int i = 1; i <= sStoreTypeConfig.getNumber(); i ++){ int rewardId = getRewardId(storeId,i,user); + if(rewardId==0){ + continue; + } itemNumMap.put(rewardId, 0); } return itemNumMap; @@ -411,6 +420,11 @@ public class StoreLogic implements IEventHandler { int weight = 0; int rewardId = 0; Random random = new Random(); + if(totalWeight==0){ + //没有符合规则的栏位奖励 + LOGGER.error("Exception::没有符合规则的栏位奖励sort=>{}, sort=>{}",storeId,sort); + return 0; + } int randomWeight = random.nextInt(totalWeight) + 1; for (SStoreConfig sStoreConfig : randomSstoreConfigList) { weight += sStoreConfig.getWeight();