Add files via upload

This commit is contained in:
公明
2025-12-28 23:22:41 +08:00
committed by GitHub
parent 24150155ed
commit 31b2aae568
3 changed files with 119 additions and 29 deletions
+29 -6
View File
@@ -64,7 +64,10 @@ func (h *MonitorHandler) Monitor(c *gin.Context) {
}
}
executions, total := h.loadExecutionsWithPagination(page, pageSize)
// 解析状态筛选参数
status := c.Query("status")
executions, total := h.loadExecutionsWithPagination(page, pageSize, status)
stats := h.loadStats()
totalPages := (total + pageSize - 1) / pageSize
@@ -84,13 +87,23 @@ func (h *MonitorHandler) Monitor(c *gin.Context) {
}
func (h *MonitorHandler) loadExecutions() []*mcp.ToolExecution {
executions, _ := h.loadExecutionsWithPagination(1, 1000)
executions, _ := h.loadExecutionsWithPagination(1, 1000, "")
return executions
}
func (h *MonitorHandler) loadExecutionsWithPagination(page, pageSize int) ([]*mcp.ToolExecution, int) {
func (h *MonitorHandler) loadExecutionsWithPagination(page, pageSize int, status string) ([]*mcp.ToolExecution, int) {
if h.db == nil {
allExecutions := h.mcpServer.GetAllExecutions()
// 如果指定了状态筛选,先进行筛选
if status != "" {
filtered := make([]*mcp.ToolExecution, 0)
for _, exec := range allExecutions {
if exec.Status == status {
filtered = append(filtered, exec)
}
}
allExecutions = filtered
}
total := len(allExecutions)
offset := (page - 1) * pageSize
end := offset + pageSize
@@ -104,10 +117,20 @@ func (h *MonitorHandler) loadExecutionsWithPagination(page, pageSize int) ([]*mc
}
offset := (page - 1) * pageSize
executions, err := h.db.LoadToolExecutionsWithPagination(offset, pageSize)
executions, err := h.db.LoadToolExecutionsWithPagination(offset, pageSize, status)
if err != nil {
h.logger.Warn("从数据库加载执行记录失败,回退到内存数据", zap.Error(err))
allExecutions := h.mcpServer.GetAllExecutions()
// 如果指定了状态筛选,先进行筛选
if status != "" {
filtered := make([]*mcp.ToolExecution, 0)
for _, exec := range allExecutions {
if exec.Status == status {
filtered = append(filtered, exec)
}
}
allExecutions = filtered
}
total := len(allExecutions)
offset := (page - 1) * pageSize
end := offset + pageSize
@@ -120,8 +143,8 @@ func (h *MonitorHandler) loadExecutionsWithPagination(page, pageSize int) ([]*mc
return allExecutions[offset:end], total
}
// 获取总数
total, err := h.db.CountToolExecutions()
// 获取总数(考虑状态筛选)
total, err := h.db.CountToolExecutions(status)
if err != nil {
h.logger.Warn("获取执行记录总数失败", zap.Error(err))
// 回退:使用已加载的记录数估算