package com.hwmonitor.controller; import com.hwmonitor.config.MonitorConfig; import com.hwmonitor.scheduler.MetricsScheduler; import org.springframework.web.bind.annotation.*; import java.util.Map; @RestController @RequestMapping("/api/v1/config") public class ConfigController { private final MonitorConfig monitorConfig; private final MetricsScheduler metricsScheduler; public ConfigController(MonitorConfig monitorConfig, MetricsScheduler metricsScheduler) { this.monitorConfig = monitorConfig; this.metricsScheduler = metricsScheduler; } @GetMapping("/interval") public Map getInterval() { return Map.of( "intervalSeconds", monitorConfig.getCollectIntervalSeconds(), "availableOptions", new int[]{30, 60} ); } @PutMapping("/interval") public Map setInterval(@RequestBody Map body) { int seconds = body.getOrDefault("intervalSeconds", 30); if (seconds != 30 && seconds != 60) { throw new IllegalArgumentException("采集间隔仅支持 30 或 60 秒"); } monitorConfig.setCollectIntervalSeconds(seconds); metricsScheduler.reschedule(); return Map.of("intervalSeconds", seconds, "status", "ok"); } }