feat: enhance operation log query functionality
- Add time range query (startTime, endTime) - Add IP address query support - Add method name query support - Update OperationLogQuery with new fields - Update OperationLogQueryCriteria with new query fields - Update OperationLogHandler to support new query parameters Closes #5
This commit is contained in:
+50
@@ -3,6 +3,8 @@ package cn.novalon.manage.db.entity.query;
|
|||||||
import cn.novalon.manage.sys.core.query.OperationLogQuery;
|
import cn.novalon.manage.sys.core.query.OperationLogQuery;
|
||||||
import cn.novalon.manage.db.dao.QueryField;
|
import cn.novalon.manage.db.dao.QueryField;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 操作日志查询条件对象
|
* 操作日志查询条件对象
|
||||||
*
|
*
|
||||||
@@ -23,6 +25,18 @@ public class OperationLogQueryCriteria {
|
|||||||
@QueryField(blurry = "username,operation,ip", type = QueryField.Type.INNER_LIKE)
|
@QueryField(blurry = "username,operation,ip", type = QueryField.Type.INNER_LIKE)
|
||||||
private String keyword;
|
private String keyword;
|
||||||
|
|
||||||
|
@QueryField(propName = "createdAt", type = QueryField.Type.GREATER_THAN)
|
||||||
|
private LocalDateTime startTime;
|
||||||
|
|
||||||
|
@QueryField(propName = "createdAt", type = QueryField.Type.LESS_THAN)
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
@QueryField(propName = "ip", type = QueryField.Type.INNER_LIKE)
|
||||||
|
private String ip;
|
||||||
|
|
||||||
|
@QueryField(propName = "method", type = QueryField.Type.INNER_LIKE)
|
||||||
|
private String method;
|
||||||
|
|
||||||
public String getUsername() {
|
public String getUsername() {
|
||||||
return username;
|
return username;
|
||||||
}
|
}
|
||||||
@@ -55,6 +69,38 @@ public class OperationLogQueryCriteria {
|
|||||||
this.keyword = keyword;
|
this.keyword = keyword;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getStartTime() {
|
||||||
|
return startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStartTime(LocalDateTime startTime) {
|
||||||
|
this.startTime = startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getEndTime() {
|
||||||
|
return endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEndTime(LocalDateTime endTime) {
|
||||||
|
this.endTime = endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIp() {
|
||||||
|
return ip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIp(String ip) {
|
||||||
|
this.ip = ip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMethod() {
|
||||||
|
return method;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMethod(String method) {
|
||||||
|
this.method = method;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从领域查询对象转换
|
* 从领域查询对象转换
|
||||||
*
|
*
|
||||||
@@ -68,5 +114,9 @@ public class OperationLogQueryCriteria {
|
|||||||
this.operation = query.getOperation();
|
this.operation = query.getOperation();
|
||||||
this.status = query.getStatus();
|
this.status = query.getStatus();
|
||||||
this.keyword = query.getKeyword();
|
this.keyword = query.getKeyword();
|
||||||
|
this.startTime = query.getStartTime();
|
||||||
|
this.endTime = query.getEndTime();
|
||||||
|
this.ip = query.getIp();
|
||||||
|
this.method = query.getMethod();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+38
@@ -1,5 +1,7 @@
|
|||||||
package cn.novalon.manage.sys.core.query;
|
package cn.novalon.manage.sys.core.query;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 操作日志查询对象
|
* 操作日志查询对象
|
||||||
*
|
*
|
||||||
@@ -12,6 +14,10 @@ public class OperationLogQuery {
|
|||||||
private String operation;
|
private String operation;
|
||||||
private String status;
|
private String status;
|
||||||
private String keyword;
|
private String keyword;
|
||||||
|
private LocalDateTime startTime;
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
private String ip;
|
||||||
|
private String method;
|
||||||
|
|
||||||
public String getUsername() {
|
public String getUsername() {
|
||||||
return username;
|
return username;
|
||||||
@@ -44,4 +50,36 @@ public class OperationLogQuery {
|
|||||||
public void setKeyword(String keyword) {
|
public void setKeyword(String keyword) {
|
||||||
this.keyword = keyword;
|
this.keyword = keyword;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getStartTime() {
|
||||||
|
return startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStartTime(LocalDateTime startTime) {
|
||||||
|
this.startTime = startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getEndTime() {
|
||||||
|
return endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEndTime(LocalDateTime endTime) {
|
||||||
|
this.endTime = endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIp() {
|
||||||
|
return ip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIp(String ip) {
|
||||||
|
this.ip = ip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMethod() {
|
||||||
|
return method;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMethod(String method) {
|
||||||
|
this.method = method;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+13
@@ -56,6 +56,10 @@ public class OperationLogHandler {
|
|||||||
String username = request.queryParam("username").orElse(null);
|
String username = request.queryParam("username").orElse(null);
|
||||||
String operation = request.queryParam("operation").orElse(null);
|
String operation = request.queryParam("operation").orElse(null);
|
||||||
String status = request.queryParam("status").orElse(null);
|
String status = request.queryParam("status").orElse(null);
|
||||||
|
String startTimeStr = request.queryParam("startTime").orElse(null);
|
||||||
|
String endTimeStr = request.queryParam("endTime").orElse(null);
|
||||||
|
String ip = request.queryParam("ip").orElse(null);
|
||||||
|
String method = request.queryParam("method").orElse(null);
|
||||||
|
|
||||||
PageRequest pageRequest = new PageRequest();
|
PageRequest pageRequest = new PageRequest();
|
||||||
pageRequest.setPage(page);
|
pageRequest.setPage(page);
|
||||||
@@ -69,6 +73,15 @@ public class OperationLogHandler {
|
|||||||
query.setOperation(operation);
|
query.setOperation(operation);
|
||||||
query.setStatus(status);
|
query.setStatus(status);
|
||||||
query.setKeyword(keyword);
|
query.setKeyword(keyword);
|
||||||
|
query.setIp(ip);
|
||||||
|
query.setMethod(method);
|
||||||
|
|
||||||
|
if (startTimeStr != null && !startTimeStr.isEmpty()) {
|
||||||
|
query.setStartTime(java.time.LocalDateTime.parse(startTimeStr));
|
||||||
|
}
|
||||||
|
if (endTimeStr != null && !endTimeStr.isEmpty()) {
|
||||||
|
query.setEndTime(java.time.LocalDateTime.parse(endTimeStr));
|
||||||
|
}
|
||||||
|
|
||||||
return logService.findByQueryWithPagination(query, pageRequest)
|
return logService.findByQueryWithPagination(query, pageRequest)
|
||||||
.flatMap(response -> ServerResponse.ok().bodyValue(response));
|
.flatMap(response -> ServerResponse.ok().bodyValue(response));
|
||||||
|
|||||||
Reference in New Issue
Block a user