diff --git a/src/main/java/cc/ryanc/halo/model/entity/Option.java b/src/main/java/cc/ryanc/halo/model/entity/Option.java index 5c82abbd0..9f623d7d7 100644 --- a/src/main/java/cc/ryanc/halo/model/entity/Option.java +++ b/src/main/java/cc/ryanc/halo/model/entity/Option.java @@ -41,13 +41,13 @@ public class Option extends BaseEntity { /** * source,default is system */ - @Column(name = "source", columnDefinition = "varchar(127) default 'system'") - private String source; + @Column(name = "option_source", columnDefinition = "varchar(127) default 'system'") + private String optionSource; @Override public void prePersist() { super.prePersist(); id = null; - source = "system"; + optionSource = "system"; } } diff --git a/src/main/java/cc/ryanc/halo/service/OptionService.java b/src/main/java/cc/ryanc/halo/service/OptionService.java index c89bfad76..1236c169d 100755 --- a/src/main/java/cc/ryanc/halo/service/OptionService.java +++ b/src/main/java/cc/ryanc/halo/service/OptionService.java @@ -22,31 +22,35 @@ public interface OptionService extends CrudService { /** * Save one option * - * @param key key must not be blank - * @param value value + * @param key key must not be blank + * @param value value + * @param source source */ - void save(@NonNull String key, String value); + void save(@NonNull String key, String value, String source); /** * Save multiple options * * @param options options + * @param source source */ - void save(@NonNull Map options); + void save(@NonNull Map options, String source); /** * SAve multiple options * * @param optionParams option params + * @param source source */ - void save(List optionParams); + void save(List optionParams, String source); /** * Saves blog properties. * * @param properties blog properties + * @param source source */ - void saveProperties(@NonNull Map properties); + void saveProperties(@NonNull Map properties, String source); /** * Get all options diff --git a/src/main/java/cc/ryanc/halo/service/impl/OptionServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/OptionServiceImpl.java index 873700e8a..87942a838 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/OptionServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/OptionServiceImpl.java @@ -37,11 +37,12 @@ public class OptionServiceImpl extends AbstractCrudService impl /** * Saves one option * - * @param key key - * @param value value + * @param key key + * @param value value + * @param source source */ @Override - public void save(String key, String value) { + public void save(String key, String value, String source) { Assert.hasText(key, "Option key must not be blank"); if (StringUtils.isNotBlank(value)) { @@ -59,6 +60,7 @@ public class OptionServiceImpl extends AbstractCrudService impl Option anOption = new Option(); anOption.setOptionKey(key); anOption.setOptionValue(value); + anOption.setOptionSource(source); return anOption; }); @@ -70,35 +72,36 @@ public class OptionServiceImpl extends AbstractCrudService impl * Saves multiple options * * @param options options + * @param source source */ @Override - public void save(Map options) { + public void save(Map options, String source) { if (CollectionUtils.isEmpty(options)) { return; } // (Not recommended) Don't write "this::save" here // Types of key and value are String - options.forEach((key, value) -> save(key, value)); + options.forEach((key, value) -> save(key, value, source)); } @Override - public void save(List optionParams) { + public void save(List optionParams, String source) { if (CollectionUtils.isEmpty(optionParams)) { return; } // TODO Optimize the query - optionParams.forEach(optionParam -> save(optionParam.getOptionKey(), optionParam.getOptionValue())); + optionParams.forEach(optionParam -> save(optionParam.getOptionKey(), optionParam.getOptionValue(), source)); } @Override - public void saveProperties(Map properties) { + public void saveProperties(Map properties, String source) { if (CollectionUtils.isEmpty(properties)) { return; } - properties.forEach((property, value) -> save(property.getValue(), value)); + properties.forEach((property, value) -> save(property.getValue(), value, source)); } /** diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/api/OptionController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/api/OptionController.java index 07856d765..4cd7cfb2e 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/api/OptionController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/api/OptionController.java @@ -31,6 +31,6 @@ public class OptionController { @PostMapping("saving") public void saveOptions(@Valid @RequestBody List optionParams) { - optionService.save(optionParams); + optionService.save(optionParams,"system"); } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/api/ThemeController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/api/ThemeController.java index 1a95e3740..5778faa6a 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/api/ThemeController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/api/ThemeController.java @@ -59,7 +59,7 @@ public class ThemeController { public void active(@RequestParam(name = "themeName", defaultValue = "anatole") String themeName) throws TemplateModelException { Map properties = new HashMap<>(1); properties.put(BlogProperties.THEME, themeName); - optionService.saveProperties(properties); + optionService.saveProperties(properties,"system"); BaseContentController.THEME = themeName; OPTIONS.clear(); OPTIONS.putAll(optionService.listOptions()); diff --git a/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java b/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java index 332d4c8f5..0b4de7446 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java @@ -191,7 +191,7 @@ public class InstallController { properties.put(BlogProperties.ATTACH_LOC, AttachOrigin.SERVER.getValue().toString()); // Create properties - optionService.saveProperties(properties); + optionService.saveProperties(properties,"system"); } /**