From e3dc7a8f0bcef10c6aaa3d243b8635cc3055370d Mon Sep 17 00:00:00 2001 From: "DESKTOP-C3M45P4\\dengdan" Date: Wed, 19 Feb 2025 16:18:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=B7=E5=A4=96=E6=94=AF=E4=BB=98=E4=B8=8D?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/store/BuyGoodsNewLogic.java | 25 +++++++++++++------ .../network/server/ProtocolsManager.java | 2 +- 2 files changed, 18 insertions(+), 9 deletions(-) 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 f78cf39b8..bcdf80411 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 @@ -284,9 +284,12 @@ public class BuyGoodsNewLogic { return resultRes; } SRechargeCommodityNewConfig config = null; + boolean checkAmount = true; //不是数字通过rechareId获取配置,海外渠道商品id为字符串类型 if (!StringUtil.isNumeric(sdkGoodsId)){ config = SRechargeCommodityNewConfig.sdkconfigMap.get(sdkGoodsId); + //海外货币种类太多,不校验金额 + checkAmount = false; }else { config = SRechargeCommodityNewConfig.configMap.get(Integer.parseInt(sdkGoodsId)); } @@ -297,16 +300,20 @@ public class BuyGoodsNewLogic { } int goodsId = config.getId(); + double price = 0; // 支付金额用分 - double priceTemp = config.getPrice(); - int cfgType = SSpecialConfig.getIntegerValue("exchange_focus_type"); - double price = priceTemp==0?0: SExchangeRate.doubleIntegerHashMap.get(cfgType).get((int)priceTemp); - if(amount != price*100){ - resultRes.setResultMsg("compared amount fail"); - LOGGER.error("sendGoods 金额校验失败, uid={}, goodId={}, amount={}, price={}",uid,goodsId, amount, price*100); - return resultRes; + if(checkAmount){ + double priceTemp = config.getPrice(); + int cfgType = SSpecialConfig.getIntegerValue("exchange_focus_type"); + price = priceTemp==0?0: SExchangeRate.doubleIntegerHashMap.get(cfgType).get((int)priceTemp); + if(amount != price*100){ + resultRes.setResultMsg("compared amount fail"); + LOGGER.error("sendGoods 金额校验失败, uid={}, goodId={}, amount={}, price={}",uid,goodsId, amount, price*100); + return resultRes; + } } + User user = UserManager.getUser(uid); if (user == null) { resultRes.setResultMsg("User not found"); @@ -339,7 +346,9 @@ public class BuyGoodsNewLogic { //处理月卡 activeMonthCard(user,config.getId()); //活动 - changeActivity(user,price,rechargeInfo); + if(price > 0) { + changeActivity(user, price, rechargeInfo); + } } if(getFirstRechargeTime(uid) == 0){ setFirstRecharge(uid); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java index cf0d900e0..5e0e5400f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java @@ -42,7 +42,7 @@ public class ProtocolsManager implements ProtocolsAbstract { private static ProtocolsManager instance = new ProtocolsManager(); private Map handlers = new HashMap<>(); private static ClassLoader classLoader = GameApplication.class.getClassLoader(); - public static int HANDLER_THREAD_NUM = 10; + public static int HANDLER_THREAD_NUM = 8; public static HandlerLogicThread[] handlerThreads; static {