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 34ab098ba..b128833b6 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 @@ -152,12 +152,12 @@ public class BuyGoodsNewLogic { } /** - * 非金钱购买类型 + * 是否花费人民币购买 * @param orderId * @return */ - private static boolean notRmbBuy(String orderId){ - return "support-order".equals(orderId) || "gm_modifier".equals(orderId) || "test_buy_order".equals(orderId); + private static boolean isRmbBuy(String orderId){ + return !"support-order".equals(orderId) && !"gm_modifier".equals(orderId) && !"test_buy_order".equals(orderId); } /** @@ -194,10 +194,10 @@ public class BuyGoodsNewLogic { double priceTemp =config.getPrice(); int cfgType = SSpecialConfig.getIntegerValue(SSpecialConfig.EXCHANGE_FORCE_TYPE); double price = priceTemp==0?0: SExchangeRate.doubleIntegerHashMap.get(cfgType).get((int)priceTemp); - if(!notRmbBuy(orderId) && !MathUtils.doubleEquals(amount,price * 100)){ + if(isRmbBuy(orderId) && !MathUtils.doubleEquals(amount,price * 100)){ resultRes.setResultCode(0); - resultRes.setResultMsg("charge count error"); - LOGGER.error("sendGoods charge count error, uid={},the goodId={}, currentPrice={},realPrice={}",uid,goodsId, amount,price); + resultRes.setResultMsg("charge price error"); + LOGGER.error("sendGoods charge price error, uid={},the goodId={}, currentPrice={},realPrice={}",uid,goodsId, amount,price); return resultRes; } @@ -220,9 +220,12 @@ public class BuyGoodsNewLogic { countBag.addBuyTimes(1); } } - int[][] dropByBag = bag.getDropByBag(); + List list = bag.getDropByBag(); + if (isRmbBuy(orderId) && config.getGainFame() != null && config.getGainFame().length > 0){ + list.add(config.getGainFame()); + } //发货 - sendGoodsByType(user,config,dropByBag); + sendGoodsByType(user,config,list); if(config.getAccumulativeRecharge() == 1 && !"gm_modifier".equals(orderId)){ if(info.getMaxSingleR() < price){ @@ -428,12 +431,12 @@ public class BuyGoodsNewLogic { /** * 处理特殊类型发货 */ - public static void sendGoodsByType(User user,SRechargeCommodityNewConfig config,int[][] dropArray) throws Exception{ + public static void sendGoodsByType(User user,SRechargeCommodityNewConfig config,List dropList) throws Exception{ ISession session = OnlineUserManager.getSessionByUid(user.getId()); int type = config.getType(); CommonProto.Drop.Builder drop = null; - if(dropArray!=null && dropArray.length>=1){ - drop = ItemUtil.drop(user,dropArray, BIReason.DIRECT_BUY); + if(dropList != null && !dropList.isEmpty()){ + drop = ItemUtil.drop(user, dropList, BIReason.DIRECT_BUY); } //红包事件 if(type==GiftGoodsType.RED_PACKET){ 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 f40ce95e4..8f49f5b48 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 @@ -7,7 +7,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import util.TimeUtils; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Set; public class AbstractWelfareBag extends MongoBase{ @@ -84,34 +86,20 @@ public class AbstractWelfareBag extends MongoBase{ return true; } - public int[][] getDropByBag() { + public List getDropByBag() { SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(modId); if (config == null) { LOGGER.info("getDropByBag modId={} ", modId); - return new int[0][0]; + return null; } - int[][] baseReward = config.getBaseReward(); - int[][] firstMultiple = config.getFirstMultiple(); - int length = baseReward.length; - int[][] result ; - if(buyTimes == 1){ - length += firstMultiple.length; - result = new int[length][]; - int i=0; - for(;i list = new ArrayList<>(); + if (config.getBaseReward() != null && config.getBaseReward().length > 0){ + list.add(config.getBaseReward()); } - return result; + if(buyTimes == 1 && config.getFirstMultiple() != null && config.getFirstMultiple().length > 0){ + list.add(config.getFirstMultiple()); + } + return list; } /** diff --git a/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java b/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java index 604644760..674ccff2b 100644 --- a/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java +++ b/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java @@ -70,6 +70,8 @@ public class SRechargeCommodityNewConfig implements BaseConfig { private int isRecommond; private int[][] extraReward; + private int[][] gainFame; + public static Map configMap; public static Map sdkconfigMap; public static Map> configTypeMap; @@ -224,4 +226,8 @@ public class SRechargeCommodityNewConfig implements BaseConfig { public int[][] getExtraReward() { return extraReward; } + + public int[][] getGainFame() { + return gainFame; + } }