queryAll(Map criteria, PageQuery pageable);
+ @Async
+ void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, SysLog log);
+
/**
* 查询异常详情
* @param id 日志ID
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/dao/SysLog.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/dao/SysLog.java
index 6067341..b176bec 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/dao/SysLog.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/dao/SysLog.java
@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import java.io.Serializable;
+
+import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
/**
*
@@ -18,6 +21,8 @@ import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sys_log")
+@AllArgsConstructor
+@NoArgsConstructor
public class SysLog implements Serializable {
private static final long serialVersionUID = 1L;
@@ -52,4 +57,8 @@ public class SysLog implements Serializable {
private String create_time;
+ public SysLog(String logType, Long time) {
+ this.log_type = logType;
+ this.time = time;
+ }
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/impl/SysLogServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/impl/SysLogServiceImpl.java
index 9042e2f..1038760 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/impl/SysLogServiceImpl.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/impl/SysLogServiceImpl.java
@@ -1,20 +1,35 @@
package org.nl.system.service.logging.impl;
+import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.reflect.MethodSignature;
import org.nl.common.domain.query.PageQuery;
+import org.nl.common.logging.annotation.Log;
+import org.nl.common.utils.StringUtils;
import org.nl.common.utils.ValidationUtil;
import org.nl.system.service.logging.ISysLogService;
import org.nl.system.service.logging.dao.SysLog;
import org.nl.system.service.logging.dao.mapper.SysLogMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+import java.lang.reflect.Method;
+import java.lang.reflect.Parameter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -36,12 +51,10 @@ public class SysLogServiceImpl extends ServiceImpl impleme
public IPage queryAll(Map whereJson, PageQuery pageable) {
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry"))?whereJson.get("blurry").toString():null;
String log_type = ObjectUtil.isNotEmpty(whereJson.get("log_type"))?whereJson.get("log_type").toString():null;
- String username = ObjectUtil.isNotEmpty(whereJson.get("username"))?whereJson.get("username").toString():null;
String begin_time = ObjectUtil.isNotEmpty(whereJson.get("begin_time"))?whereJson.get("begin_time").toString():null;
String end_time = ObjectUtil.isNotEmpty(whereJson.get("end_time"))?whereJson.get("end_time").toString():null;
LambdaQueryWrapper lam = new LambdaQueryWrapper<>();
lam.eq(ObjectUtil.isNotEmpty(log_type), SysLog::getLog_type, log_type)
- .eq(ObjectUtil.isNotEmpty(username), SysLog::getUsername, username)
.like(ObjectUtil.isNotEmpty(blurry), SysLog::getDescription, blurry)
.le(ObjectUtil.isNotEmpty(end_time), SysLog::getCreate_time, end_time)
.ge(ObjectUtil.isNotEmpty(begin_time), SysLog::getCreate_time, begin_time)
@@ -51,6 +64,60 @@ public class SysLogServiceImpl extends ServiceImpl impleme
return page;
}
+ @Override
+ public void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, SysLog logDto) {
+ MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+ Method method = signature.getMethod();
+ Log aopLog = method.getAnnotation(Log.class);
+
+ // 方法路径
+ String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()";
+
+ // 描述
+ if (logDto != null) {
+ logDto.setDescription(aopLog.value());
+ }
+ assert logDto != null;
+ logDto.setRequest_ip(ip);
+ logDto.setLog_id(RandomUtil.randomString(5));
+ logDto.setAddress(StringUtils.getCityInfo(logDto.getRequest_ip()));
+ logDto.setMethod(methodName);
+ logDto.setUsername(username);
+ logDto.setParams(getParameter(method, joinPoint.getArgs()));
+ logDto.setBrowser(browser);
+ long currentTimeMillis = System.currentTimeMillis();
+ String dateString = DateUtil.date(currentTimeMillis).toString();
+ logDto.setCreate_time(dateString);
+ logMapper.insert(logDto);
+ }
+
+ private String getParameter(Method method, Object[] args) {
+ List