#
Junjie
2026-01-15 34b2641f4a039d4e1dcf8f4a93dd7928616c4b11
src/main/java/com/zy/common/config/AspectConfig.java
@@ -8,6 +8,7 @@
import com.zy.asrs.entity.ApiLog;
import com.zy.asrs.service.ApiLogService;
import com.zy.common.annotations.OpenApiLog;
import com.zy.system.timer.LicenseTimer;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
@@ -36,6 +37,8 @@
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private LicenseTimer licenseTimer;
    @Pointcut("execution(* com.zy.asrs.controller.*(..))")
    private void webLog() {
@@ -44,17 +47,26 @@
    @Around("@within(org.springframework.web.bind.annotation.RestController)" +
            "||@within(org.springframework.stereotype.Controller)")
    public Object after(ProceedingJoinPoint joinPoint) throws Throwable {
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder
                .getRequestAttributes();
        HttpServletRequest request = requestAttributes != null ? requestAttributes.getRequest() : null;
        long start = System.currentTimeMillis();
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        OpenApiLog annotation = method.isAnnotationPresent(OpenApiLog.class) ? method.getAnnotation(OpenApiLog.class) : null;
        OpenApiLog annotation = method.isAnnotationPresent(OpenApiLog.class) ? method.getAnnotation(OpenApiLog.class)
                : null;
        Object result = null;
        Object errorResponse = null;
        try {
            result = joinPoint.proceed(joinPoint.getArgs());
            if (annotation != null && !Cools.isEmpty(annotation.memo())) {
                if (licenseTimer != null && !licenseTimer.getSystemSupport()) {
                    Object fail = R.error("许可证失效");
                    if (annotation != null && !Cools.isEmpty(annotation.memo())) {
                        saveErrLog(joinPoint, request, fail, new CoolException("许可证失效"), annotation.memo());
                    }
                    return fail;
                }
                saveLog(joinPoint, request, result, annotation.memo());
            }
            return result;
@@ -63,16 +75,22 @@
            if (annotation != null && !Cools.isEmpty(annotation.memo())) {
                saveErrLog(joinPoint, request, errorResponse, ex, annotation.memo());
            }
            throw ex;
            if (ex instanceof Exception) {
                throw (Exception) ex;
            }
            throw new RuntimeException(ex);
        } finally {
            long end = System.currentTimeMillis();
//            log.info("请求日志的打印");
//            log.info("请求地址:{}", request != null ? Optional.ofNullable(request.getRequestURI()).orElse(null) : null);
//            log.info("请求方式:{}", request != null ? request.getMethod() : null);
//            log.info("请求类方法:{}", joinPoint.getSignature());
//            log.info("请求类方法参数:{}", JSONObject.toJSONString(filterArgs(joinPoint.getArgs())));
//            log.info("请求响应参数{}", JSONObject.toJSONString(result != null ? result : errorResponse));
//            log.info("执行耗时:{}", end - start);
            // log.info("请求日志的打印");
            // log.info("请求地址:{}", request != null ?
            // Optional.ofNullable(request.getRequestURI()).orElse(null) : null);
            // log.info("请求方式:{}", request != null ? request.getMethod() : null);
            // log.info("请求类方法:{}", joinPoint.getSignature());
            // log.info("请求类方法参数:{}",
            // JSONObject.toJSONString(filterArgs(joinPoint.getArgs())));
            // log.info("请求响应参数{}", JSONObject.toJSONString(result != null ? result :
            // errorResponse));
            // log.info("执行耗时:{}", end - start);
        }
    }
@@ -97,11 +115,11 @@
                1,
                new Date(),
                null,
                null
        ));
                null));
    }
    private void saveErrLog(ProceedingJoinPoint joinPoint, HttpServletRequest request, Object response, Throwable ex, String memo) {
    private void saveErrLog(ProceedingJoinPoint joinPoint, HttpServletRequest request, Object response, Throwable ex,
                            String memo) {
        apiLogService.insert(new ApiLog(
                null,
                memo,
@@ -116,13 +134,12 @@
                1,
                new Date(),
                null,
                null
        ));
                null));
    }
    private Object buildErrorResponse(Throwable ex) {
        if (ex instanceof CoolException) {
            return R.parse(ex.getMessage());
            return R.error(ex.getMessage());
        }
        return R.error();
    }