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.db.dao.QueryField;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 操作日志查询条件对象
|
||||
*
|
||||
@@ -23,6 +25,18 @@ public class OperationLogQueryCriteria {
|
||||
@QueryField(blurry = "username,operation,ip", type = QueryField.Type.INNER_LIKE)
|
||||
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() {
|
||||
return username;
|
||||
}
|
||||
@@ -55,6 +69,38 @@ public class OperationLogQueryCriteria {
|
||||
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.status = query.getStatus();
|
||||
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;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 操作日志查询对象
|
||||
*
|
||||
@@ -12,6 +14,10 @@ public class OperationLogQuery {
|
||||
private String operation;
|
||||
private String status;
|
||||
private String keyword;
|
||||
private LocalDateTime startTime;
|
||||
private LocalDateTime endTime;
|
||||
private String ip;
|
||||
private String method;
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
@@ -44,4 +50,36 @@ public class OperationLogQuery {
|
||||
public void setKeyword(String 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 operation = request.queryParam("operation").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.setPage(page);
|
||||
@@ -69,6 +73,15 @@ public class OperationLogHandler {
|
||||
query.setOperation(operation);
|
||||
query.setStatus(status);
|
||||
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)
|
||||
.flatMap(response -> ServerResponse.ok().bodyValue(response));
|
||||
|
||||
Reference in New Issue
Block a user