From 16b7f78d555f424c71ce690b97b37ad50ef17634 Mon Sep 17 00:00:00 2001 From: Tankaikai Date: Fri, 7 Mar 2025 14:21:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=8E=B7=E5=8F=96IP=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E7=9A=84=E5=9C=B0=E5=8C=BA=E5=8A=A0=E7=BC=93=E5=AD=98?= =?UTF-8?q?=EF=BC=8C=E6=8E=92=E9=99=A4GET=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czg/log/aspect/OperationLogAspect.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/cash-common/cash-common-log/src/main/java/com/czg/log/aspect/OperationLogAspect.java b/cash-common/cash-common-log/src/main/java/com/czg/log/aspect/OperationLogAspect.java index 737fec0f4..6131e9dcd 100644 --- a/cash-common/cash-common-log/src/main/java/com/czg/log/aspect/OperationLogAspect.java +++ b/cash-common/cash-common-log/src/main/java/com/czg/log/aspect/OperationLogAspect.java @@ -1,7 +1,9 @@ package com.czg.log.aspect; +import cn.hutool.core.convert.Convert; import cn.hutool.core.exceptions.ExceptionUtil; +import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.servlet.JakartaServletUtil; import cn.hutool.json.JSONUtil; @@ -13,6 +15,7 @@ import com.czg.log.enums.LogTypeEnum; import com.czg.log.enums.OperationStatusEnum; import com.czg.log.producer.LogProducer; import com.czg.sa.StpKit; +import com.czg.service.RedisService; import com.czg.utils.AddressUtil; import com.czg.utils.HttpContextUtil; import com.mybatisflex.core.keygen.impl.SnowFlakeIDKeyGenerator; @@ -44,6 +47,9 @@ public class OperationLogAspect { @Resource private LogProducer logProducer; + @Resource + private RedisService redisService; + @Pointcut("@annotation(com.czg.log.annotation.OperationLog)") public void logPointCut() { @@ -108,9 +114,20 @@ public class OperationLogAspect { //请求相关信息 HttpServletRequest request = HttpContextUtil.getHttpServletRequest(); + String requestMethod = request.getMethod(); + if ("GET".equalsIgnoreCase(requestMethod)) { + return; + } String ip = JakartaServletUtil.getClientIP(request); log.set("ip", ip); - log.set("location", AddressUtil.getRealAddressByIp(ip)); + Object location = redisService.get("IP::" + ip); + if (ObjUtil.isNotNull(location)) { + log.set("location", Convert.toStr(location)); + } else { + String address = AddressUtil.getRealAddressByIp(ip); + redisService.set("IP::" + ip, address); + log.set("location", address); + } log.set("userAgent", request.getHeader(HttpHeaders.USER_AGENT)); log.set("requestUri", request.getRequestURI()); log.set("requestMethod", request.getMethod());