From a6c3ed48f03f1e956775f3d56ade1fe1f59fc12f Mon Sep 17 00:00:00 2001 From: johnniang Date: Mon, 18 Mar 2019 22:17:47 +0800 Subject: [PATCH] Refactor OptionService#save --- .../cc/ryanc/halo/cache/StringCacheStore.java | 2 +- .../cc/ryanc/halo/service/OptionService.java | 7 ++-- .../halo/service/impl/OptionServiceImpl.java | 38 +++++++++++-------- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/main/java/cc/ryanc/halo/cache/StringCacheStore.java b/src/main/java/cc/ryanc/halo/cache/StringCacheStore.java index aa090805f..636fd3a88 100644 --- a/src/main/java/cc/ryanc/halo/cache/StringCacheStore.java +++ b/src/main/java/cc/ryanc/halo/cache/StringCacheStore.java @@ -14,7 +14,7 @@ import java.util.Optional; import java.util.concurrent.TimeUnit; /** - * Wechat cache store. + * String cache store. * * @author johnniang */ diff --git a/src/main/java/cc/ryanc/halo/service/OptionService.java b/src/main/java/cc/ryanc/halo/service/OptionService.java index 5981658c0..a6b0d1661 100755 --- a/src/main/java/cc/ryanc/halo/service/OptionService.java +++ b/src/main/java/cc/ryanc/halo/service/OptionService.java @@ -2,6 +2,7 @@ package cc.ryanc.halo.service; import cc.ryanc.halo.model.entity.Option; import cc.ryanc.halo.service.base.CrudService; +import org.springframework.lang.NonNull; import java.util.Map; @@ -15,17 +16,17 @@ public interface OptionService extends CrudService { /** * Save one option * - * @param key key + * @param key key must not be blank * @param value value */ - void save(String key, String value); + void save(@NonNull String key, String value); /** * Save multiple options * * @param options options */ - void save(Map options); + void save(@NonNull Map options); /** * 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 dee0e1584..34f6a5eac 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/OptionServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/OptionServiceImpl.java @@ -6,7 +6,9 @@ import cc.ryanc.halo.service.OptionService; import cc.ryanc.halo.service.base.AbstractCrudService; import cc.ryanc.halo.utils.ServiceUtils; import cn.hutool.core.util.StrUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import java.util.Map; @@ -35,24 +37,28 @@ public class OptionServiceImpl extends AbstractCrudService impl */ @Override public void save(String key, String value) { - if (StrUtil.equals(value, "")) { - optionRepository.removeByOptionKey(key); - } else if (StrUtil.isNotEmpty(key)) { - Option options = optionRepository.findByOptionKey(key).map(option -> { - // Exist - option.setOptionValue(value); - return option; - }).orElseGet(() -> { - // Not exist - Option option = new Option(); - option.setOptionKey(key); - option.setOptionValue(value); - return option; - }); + Assert.hasText(key, "Option key must not be blank"); - // Save or update the options - optionRepository.save(options); + if (StringUtils.isNotBlank(value)) { + // If the value is blank, remove the key + optionRepository.removeByOptionKey(key); + return; } + + Option options = optionRepository.findByOptionKey(key).map(option -> { + // Exist + option.setOptionValue(value); + return option; + }).orElseGet(() -> { + // Not exist + Option option = new Option(); + option.setOptionKey(key); + option.setOptionValue(value); + return option; + }); + + // Save or update the options + optionRepository.save(options); } /**