feat: Implement batch team owner processing with file upload, configuration, and real-time status monitoring.

This commit is contained in:
2026-01-30 14:30:42 +08:00
parent 402daf79ad
commit d7f4724473
6 changed files with 289 additions and 93 deletions

View File

@@ -71,25 +71,50 @@ func HandleSaveMonitorSettings(w http.ResponseWriter, r *http.Request) {
}
if database.Instance == nil {
logger.Error("保存监控设置失败: 数据库未初始化", "", "monitor")
Error(w, http.StatusInternalServerError, "数据库未初始化")
return
}
var settings MonitorSettings
if err := json.NewDecoder(r.Body).Decode(&settings); err != nil {
logger.Error("保存监控设置失败: 解析请求失败 - "+err.Error(), "", "monitor")
Error(w, http.StatusBadRequest, "解析请求失败")
return
}
logger.Info("收到保存监控设置请求: target="+strconv.Itoa(settings.Target)+
", auto_add="+strconv.FormatBool(settings.AutoAdd)+
", polling="+strconv.FormatBool(settings.PollingEnabled), "", "monitor")
// 保存到数据库
database.Instance.SetConfig("monitor_target", strconv.Itoa(settings.Target))
database.Instance.SetConfig("monitor_auto_add", strconv.FormatBool(settings.AutoAdd))
database.Instance.SetConfig("monitor_min_interval", strconv.Itoa(settings.MinInterval))
database.Instance.SetConfig("monitor_polling_enabled", strconv.FormatBool(settings.PollingEnabled))
database.Instance.SetConfig("monitor_polling_interval", strconv.Itoa(settings.PollingInterval))
var saveErrors []string
if err := database.Instance.SetConfig("monitor_target", strconv.Itoa(settings.Target)); err != nil {
saveErrors = append(saveErrors, "target: "+err.Error())
}
if err := database.Instance.SetConfig("monitor_auto_add", strconv.FormatBool(settings.AutoAdd)); err != nil {
saveErrors = append(saveErrors, "auto_add: "+err.Error())
}
if err := database.Instance.SetConfig("monitor_min_interval", strconv.Itoa(settings.MinInterval)); err != nil {
saveErrors = append(saveErrors, "min_interval: "+err.Error())
}
if err := database.Instance.SetConfig("monitor_polling_enabled", strconv.FormatBool(settings.PollingEnabled)); err != nil {
saveErrors = append(saveErrors, "polling_enabled: "+err.Error())
}
if err := database.Instance.SetConfig("monitor_polling_interval", strconv.Itoa(settings.PollingInterval)); err != nil {
saveErrors = append(saveErrors, "polling_interval: "+err.Error())
}
if len(saveErrors) > 0 {
errMsg := "保存监控设置部分失败: " + saveErrors[0]
logger.Error(errMsg, "", "monitor")
Error(w, http.StatusInternalServerError, errMsg)
return
}
// 输出日志
logger.Info("监控设置已保存: target="+strconv.Itoa(settings.Target)+
logger.Success("监控设置已保存: target="+strconv.Itoa(settings.Target)+
", auto_add="+strconv.FormatBool(settings.AutoAdd)+
", polling="+strconv.FormatBool(settings.PollingEnabled)+
", interval="+strconv.Itoa(settings.PollingInterval)+"s", "", "monitor")