[优化] 添加访问日志汇总功能,更新相关数据结构和测试用例

This commit is contained in:
ryan
2026-03-15 14:19:21 +08:00
parent 25004fefae
commit 5bb25d2203
5 changed files with 149 additions and 24 deletions
+20 -10
View File
@@ -23,25 +23,33 @@ type AccessLogView struct {
}
type AccessLogList struct {
Items []AccessLogView `json:"items"`
Page int `json:"page"`
PageSize int `json:"page_size"`
HasMore bool `json:"has_more"`
Items []AccessLogView `json:"items"`
Page int `json:"page"`
PageSize int `json:"page_size"`
HasMore bool `json:"has_more"`
TotalRecord int64 `json:"total_record"`
TotalIP int64 `json:"total_ip"`
}
func ListAccessLogs(nodeID string, page int, pageSize int) (*AccessLogList, error) {
normalizedPage := normalizeAccessLogPage(page)
normalizedPageSize := normalizeAccessLogPageSize(pageSize)
offset := normalizedPage * normalizedPageSize
trimmedNodeID := strings.TrimSpace(nodeID)
since := time.Now().Add(-nodeAccessLogRetentionWindow)
logs, err := model.ListNodeAccessLogs(
strings.TrimSpace(nodeID),
time.Now().Add(-nodeAccessLogRetentionWindow),
trimmedNodeID,
since,
offset,
normalizedPageSize+1,
)
if err != nil {
return nil, err
}
totalRecords, totalIPs, err := model.CountNodeAccessLogs(trimmedNodeID, since)
if err != nil {
return nil, err
}
nodes, err := model.ListNodes()
if err != nil {
return nil, err
@@ -74,10 +82,12 @@ func ListAccessLogs(nodeID string, page int, pageSize int) (*AccessLogList, erro
})
}
return &AccessLogList{
Items: views,
Page: normalizedPage,
PageSize: normalizedPageSize,
HasMore: hasMore,
Items: views,
Page: normalizedPage,
PageSize: normalizedPageSize,
HasMore: hasMore,
TotalRecord: totalRecords,
TotalIP: totalIPs,
}, nil
}