From cedf01492c0f1a98de134963f7968b8678e88d4f Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Wed, 4 Nov 2020 03:34:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=BA=97=E5=8F=AF=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E6=A0=8F=E4=BD=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/store/StoreLogic.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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();