#
luxiaotao1123
2024-04-12 d6201c37c34681b11d6eeb5d3fa2008991d9f370
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/aspect/OperationLogAspect.java
@@ -4,10 +4,10 @@
import com.zy.asrs.common.utils.IpTools;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wcs.common.annotation.OperationLog;
import com.zy.asrs.wcs.sys.entity.OperationRecord;
import com.zy.asrs.wcs.sys.entity.User;
import com.zy.asrs.wcs.sys.service.OperationRecordService;
import com.zy.asrs.wcs.utils.Utils;
import com.zy.asrs.wcs.system.entity.OperationRecord;
import com.zy.asrs.wcs.system.entity.User;
import com.zy.asrs.wcs.system.service.OperationRecordService;
import com.zy.asrs.wcs.utils.CommonUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.*;
import org.aspectj.lang.reflect.MethodSignature;
@@ -23,6 +23,7 @@
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -66,8 +67,23 @@
     * 保存操作记录
     */
    private void saveLog(JoinPoint joinPoint, Object result, Exception e) {
        // 记录模块名、操作功能、请求方法、请求参数、返回结果
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        if (null == method) {
            return;
        }
        OperationLog ol = method.getAnnotation(OperationLog.class);
        if (null == ol) {
            return;
        }
        String desc = getDescription(method, ol);
        if (Cools.isEmpty(desc)) {
            return;
        }
        OperationRecord record = new OperationRecord();
        Long endTime = startTime.get();
        record.setCreateTime(new Date());
        // 记录操作耗时
        if (endTime != null) {
            record.setSpendTime((int) (System.currentTimeMillis() - endTime));
@@ -77,7 +93,7 @@
        User user = getLoginUser();
        if (user != null) {
            record.setUserId(user.getId());
            record.setHostId(user.getHostId());
//            record.setHostId(user.getHostId());
        }
        // 记录请求地址、请求方式、ip
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
@@ -89,33 +105,25 @@
        // 记录异常信息
        if (e != null) {
            record.setResult(0);
            record.setErr(Utils.sub(e.toString(), MAX_LENGTH));
            record.setErr(CommonUtils.sub(e.toString(), MAX_LENGTH));
        } else {
            record.setResult(1);
        }
        // 记录模块名、操作功能、请求方法、请求参数、返回结果
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        if (method != null) {
            OperationLog ol = method.getAnnotation(OperationLog.class);
            if (ol != null) {
                // 记录操作功能
                record.setNamespace(getDescription(method, ol));
                // 记录备注
                if (!Cools.isEmpty(ol.comments())) {
                    record.setMemo(ol.comments());
                }
                // 记录请求参数
                if (ol.param() && request != null) {
                    record.setRequest(Utils.sub(getParams(joinPoint, request), MAX_LENGTH));
                }
                // 记录请求结果
                if (ol.result() && result != null) {
                    record.setResponse(Utils.sub(JSON.toJSONString(result), MAX_LENGTH));
                }
            }
        // 记录操作功能
        record.setNamespace(desc);
        // 记录备注
        if (!Cools.isEmpty(ol.comments())) {
            record.setMemo(ol.comments());
        }
        operationRecordService.save(record);
        // 记录请求参数
        if (ol.param() && request != null) {
            record.setRequest(CommonUtils.sub(getParams(joinPoint, request), MAX_LENGTH));
        }
        // 记录请求结果
        if (ol.result() && result != null) {
            record.setResponse(CommonUtils.sub(JSON.toJSONString(result), MAX_LENGTH));
        }
        operationRecordService.saveAsync(record);
    }
    /**
@@ -146,7 +154,7 @@
        Map<String, String[]> map = Collections.unmodifiableMap(request.getParameterMap());
        for (Map.Entry<String, String[]> entry : map.entrySet()) {
            paramsMap.put(entry.getKey(), Utils.join(entry.getValue(), ","));
            paramsMap.put(entry.getKey(), CommonUtils.join(entry.getValue(), ","));
        }
        if (paramsMap.keySet().size() > 0) {