From ce29514b54e69ad695507257d511f66541d8907a Mon Sep 17 00:00:00 2001 From: sparkmemory Date: Sun, 12 Jan 2025 20:47:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(settings):=20=E4=BC=98=E5=8C=96=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=9B=B4=E6=96=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加对配置存在的检查,如果存在则更新,不存在则创建默认配置 - 添加日志记录,当配置不存在时创建默认配置的情况 - 通过 Where 子句指定 ID 进行更新,提高更新操作的准确性 --- backend/data/settings_api.go | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/backend/data/settings_api.go b/backend/data/settings_api.go index 516184d..c97e8c9 100644 --- a/backend/data/settings_api.go +++ b/backend/data/settings_api.go @@ -2,6 +2,7 @@ package data import ( "go-stock/backend/db" + "go-stock/backend/logger" "gorm.io/gorm" ) @@ -27,13 +28,21 @@ func NewSettingsApi(settings *Settings) *SettingsApi { } func (s SettingsApi) UpdateConfig() string { - err := db.Dao.Model(s.Config).Updates(map[string]any{ - "local_push_enable": s.Config.LocalPushEnable, - "ding_push_enable": s.Config.DingPushEnable, - "ding_robot": s.Config.DingRobot, - }).Error - if err != nil { - return err.Error() + count := int64(0) + db.Dao.Model(s.Config).Count(&count) + if count > 0 { + db.Dao.Model(s.Config).Where("id=?", s.Config.ID).Updates(map[string]any{ + "local_push_enable": s.Config.LocalPushEnable, + "ding_push_enable": s.Config.DingPushEnable, + "ding_robot": s.Config.DingRobot, + }) + } else { + logger.SugaredLogger.Infof("未找到配置,创建默认配置:%+v", s.Config) + db.Dao.Model(s.Config).Create(&Settings{ + LocalPushEnable: s.Config.LocalPushEnable, + DingPushEnable: s.Config.DingPushEnable, + DingRobot: s.Config.DingRobot, + }) } return "保存成功!" }