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());