日志切面功能整合

This commit is contained in:
Tankaikai
2025-02-13 14:29:14 +08:00
parent cde964492c
commit 8d8e338da8
29 changed files with 802 additions and 15 deletions

View File

@@ -1,18 +0,0 @@
package com.czg.annotation;
import java.lang.annotation.*;
/**
* 操作日志注解
*
* @author admin admin@cashier.com
* @since 1.0.0
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LogOperation {
String value() default "";
}

View File

@@ -0,0 +1,55 @@
package com.czg.utils;
import cn.hutool.core.net.NetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
import java.util.Map;
/**
* 获取地址类
*
* @author admin admin@cashier.com
* @since 1.0.0
*/
@UtilityClass
@Slf4j
public class AddressUtil {
/**
* IP地址查询
*/
public final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp";
/**
* 未知地址
*/
public final String UNKNOWN = "未知";
public static String getRealAddressByIp(String ip) {
// 内网不查询
if (NetUtil.isInnerIP(ip)) {
return "内网IP";
}
try {
Map<String, Object> paramMap = new HashMap<>(16);
paramMap.put("ip", ip);
paramMap.put("json", "true");
String rspStr = HttpUtil.createGet(IP_URL).header("User-Agent","Apifox/1.0.0 (https://apifox.com)").form(paramMap).timeout(1000*5).execute().body();
if (StrUtil.isEmpty(rspStr)) {
log.error("获取地理位置异常 {}", ip);
return UNKNOWN;
}
JSONObject obj = JSONUtil.parseObj(rspStr);
String region = obj.getStr("pro");
String city = obj.getStr("city");
return String.format("%s %s", region, city);
} catch (Exception e) {
log.error("获取地理位置异常 {}", ip);
}
return UNKNOWN;
}
}

View File

@@ -0,0 +1,55 @@
package com.czg.utils;
import cn.hutool.core.util.StrUtil;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.http.HttpHeaders;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
/**
* Http工具类
*
* @author admin admin@cashier.com
* @since 1.0.0
*/
public class HttpContextUtil {
public static HttpServletRequest getHttpServletRequest() {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
if (requestAttributes == null) {
return null;
}
return ((ServletRequestAttributes) requestAttributes).getRequest();
}
public static Map<String, String> getParameterMap(HttpServletRequest request) {
Enumeration<String> parameters = request.getParameterNames();
Map<String, String> params = new HashMap<>();
while (parameters.hasMoreElements()) {
String parameter = parameters.nextElement();
String value = request.getParameter(parameter);
if (StrUtil.isNotBlank(value)) {
params.put(parameter, value);
}
}
return params;
}
public static String getOrigin() {
HttpServletRequest request = getHttpServletRequest();
return request.getHeader(HttpHeaders.ORIGIN);
}
}