🐛 fixed configuration override issue

This commit is contained in:
2025-05-15 20:57:28 +08:00
parent 33bd4940e9
commit bd0bbc9674
4 changed files with 146 additions and 51 deletions

View File

@@ -146,7 +146,7 @@ func (cs *ConfigService) mergeWithDefaults(config *models.AppConfig) error {
defaultConfig := models.NewDefaultAppConfig()
// 使用mergo库合并配置
if err := mergo.Merge(config, defaultConfig, mergo.WithOverrideEmptySlice, mergo.WithOverwriteWithEmptyValue); err != nil {
if err := mergo.Merge(config, defaultConfig, mergo.WithOverrideEmptySlice); err != nil {
return err
}
@@ -182,9 +182,7 @@ func (cs *ConfigService) loadConfig() (models.AppConfig, error) {
// isValidConfig 检查配置是否有效
func isValidConfig(config models.AppConfig) bool {
// 检查关键字段
if config.Metadata.Version == "" ||
config.Metadata.LastUpdated.IsZero() ||
config.Paths.DataPath == "" {
if config.Metadata.Version == "" {
return false
}
return true
@@ -230,12 +228,6 @@ func (cs *ConfigService) GetConfig() (*models.AppConfig, error) {
return defaultConfig, nil
}
// 合并默认配置
if err := cs.mergeWithDefaults(&config); err != nil {
return &config, &ConfigError{Operation: "get_merge_defaults", Err: err}
}
return &config, nil
}
@@ -259,7 +251,17 @@ func (cs *ConfigService) UpdateEditorConfig(editorConfig models.EditorConfig) er
return err
}
// 保存当前的语言设置
currentLanguage := config.Editor.Language
// 更新编辑器配置
config.Editor = editorConfig
// 如果更新后的语言设置为空,则使用之前的语言设置
if editorConfig.Language == "" {
config.Editor.Language = currentLanguage
}
return cs.SaveConfig(config)
}