From d248fcaf389ae5c763926955d7ba0cfa80fc002f Mon Sep 17 00:00:00 2001 From: Administrator <1101184511@qq.com> Date: 星期四, 13 二月 2025 00:52:11 +0800 Subject: [PATCH] 区域封禁 --- src/main/java/com/taoke/autopay/controller/WebApiController.java | 34 +++++++++++++++++++++++++++++++--- 1 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/taoke/autopay/controller/WebApiController.java b/src/main/java/com/taoke/autopay/controller/WebApiController.java index 07aa96b..7b930dd 100644 --- a/src/main/java/com/taoke/autopay/controller/WebApiController.java +++ b/src/main/java/com/taoke/autopay/controller/WebApiController.java @@ -65,7 +65,7 @@ if (verifyAlipayKey != null && verifyAlipayKey.trim().equalsIgnoreCase("1")) { try { // 闇�瑕侀獙璇佹敮浠樺疂鍙d护 - if (urllist.size() < 1) { + if (urllist.isEmpty()) { throw new Exception("鍙d护涓笉鍖呭惈閾炬帴"); } AlipayOrderUtil.AlipayOrderTradeInfo tradeInfo = AlipayOrderUtil.getTradeInfo(urllist.get(0)); @@ -97,8 +97,6 @@ throw new KeyVerifyException(KeyVerifyException.CODE_COMMON, e.getMessage()); } } - - KeyOrder order = keyOrderService.addKeyOrder(keyInfo, wxUid, TimeUtil.getGernalTime(System.currentTimeMillis(), Constant.DB_DAY_FORMAT),orderType, orderDto); Long uid = keyOrderService.getCanDistributeUid(Constant.MAX_PAY_ACCOUNT_QUEUE_SIZE); if (uid != null) { @@ -122,6 +120,7 @@ } } + private Map<String, IPUtil.IPInfo> ipInfoMap=new HashMap<>(); @ResponseBody @RequestMapping(value = "submitKeyV4") public String submitKeyV4(SubmitKeyInfo keyInfo, HttpSession session, HttpServletRequest request) { @@ -130,6 +129,26 @@ WxUserInfo user = (WxUserInfo) session.getAttribute(Constant.SESSION_KEY_USER); if (StringUtil.isNullOrEmpty(keyInfo.getKey())) { return JsonUtil.loadFalseResult("璇蜂笂浼爇ey"); + } + String ip = IPUtil.getRemotIP(request); + keyInfo.setIp(ip); + if(!ipInfoMap.containsKey(ip)){ + try { + IPUtil.IPInfo ipInfo = IPUtil.getLocalIPInfo(ip); + ipInfoMap.put(ip, ipInfo); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + keyInfo.setIpInfo(ipInfoMap.get(ip)); + + String citys = systemConfigService.getValueCache(SystemConfigKeyEnum.FORBIDDEN_SUBMIT_CITYS); + if(citys!=null&&ipInfoMap.get(ip)!=null){ + List<String> cityList = Arrays.asList(citys.split(",")); + if(cityList.contains(ipInfoMap.get(ip).getCity())){ + LogUtil.loggerDebug.warn("鍖哄煙灞忚斀锛歿}-{}", ip, new Gson().toJson(ipInfoMap.get(ip))); + return JsonUtil.loadFalseResult("鏆傛椂鏃犳硶涓婁紶鍙d护"); + } } try { @@ -165,6 +184,7 @@ return JsonUtil.loadTrueResult(Constant.RESULT_CODE_NEED_LOGIN, root); } wxLogger.info("寰俊鏈夋巿鏉�:" + session.getId()); + LogUtil.loggerDebug.warn("GEO淇℃伅锛歿}-{}-{}", user.getId(),ip, new Gson().toJson(ipInfoMap.get(ip))); try { addKey(keyInfo, user.getId()); return JsonUtil.loadTrueResult(""); @@ -226,6 +246,14 @@ wxLogger.info("浠巗ession璇诲彇鍒発ey锛歿}", alipayKeyInfo); if (alipayKeyInfo != null) { + if(!ipInfoMap.containsKey(alipayKeyInfo.getIp())){ + try { + IPUtil.IPInfo ipInfo = IPUtil.getLocalIPInfo(alipayKeyInfo.getIp()); + ipInfoMap.put(alipayKeyInfo.getIp(), ipInfo); + } catch (Exception e) { + throw new RuntimeException(e); + } + } addKey(alipayKeyInfo, user.getId()); } response.sendRedirect(successLink); -- Gitblit v1.8.0