Files
pc-monitor/server/service/metrics.go
672 0e8c9f7bff feat: init pc-monitor project
- Client: Go-based Windows hardware monitoring (CPU, GPU, memory, disk, network, power)
- Server: Go + Gin + SQLite backend with REST API
- Frontend: Vue 3 + Element Plus dashboard
- Docker deployment support
- Windows service installation script
2026-05-17 01:29:44 +08:00

36 lines
829 B
Go

package service
import (
"pc-monitor-server/model"
"pc-monitor-server/repository"
"time"
)
type MetricsService struct {
repo *repository.MetricsRepository
}
func NewMetricsService(repo *repository.MetricsRepository) *MetricsService {
return &MetricsService{repo: repo}
}
func (s *MetricsService) Save(m *model.Metrics) error {
return s.repo.Save(m)
}
func (s *MetricsService) GetLatest(deviceID string) (*model.Metrics, error) {
return s.repo.GetLatest(deviceID)
}
func (s *MetricsService) GetHistory(deviceID string, start, end time.Time, limit int) ([]model.Metrics, error) {
if limit <= 0 {
limit = 1000
}
return s.repo.GetHistory(deviceID, start, end, limit)
}
func (s *MetricsService) Cleanup(retentionDays int) error {
before := time.Now().AddDate(0, 0, -retentionDays)
return s.repo.Cleanup(before)
}