diff --git a/flyfish-dict/src/main/java/com/flyfish/framework/dict/config/DictionaryProcessor.java b/flyfish-dict/src/main/java/com/flyfish/framework/dict/config/DictionaryProcessor.java index f54a616..10f4f29 100644 --- a/flyfish-dict/src/main/java/com/flyfish/framework/dict/config/DictionaryProcessor.java +++ b/flyfish-dict/src/main/java/com/flyfish/framework/dict/config/DictionaryProcessor.java @@ -54,25 +54,29 @@ public class DictionaryProcessor implements InitializingBean { BlankEnum.class != annotation.enumType()) .map(annotation -> dictionaryService .getByCode(annotation.value()) - .map(dictionary -> { - if (CollectionUtils.isEmpty(dictionary.getValues())) { - dictionary.setValues(mapValues(annotation.enumType())); - } - return dictionary; - }) - .orElseGet(() -> { - Dictionary dictionary = new Dictionary(); - dictionary.setCode(annotation.value()); - dictionary.setValues(mapValues(annotation.enumType())); - dictionary.setName(StringUtils.isNotBlank(annotation.name()) ? annotation.name() : annotation.value()); - return dictionary; - })) + .map(dictionary -> applyDictProps(dictionary, annotation)) + .orElseGet(() -> applyDictProps(new Dictionary(), annotation))) .distinct() .collect(Collectors.toList()); dictionaryService.updateBatch(dictionaries); } } + /** + * 给字典属性赋值 + * + * @param dictionary 字典 + * @param annotation 注解 + * @return 结果 + */ + private Dictionary applyDictProps(Dictionary dictionary, DictValue annotation) { + dictionary.setCode(annotation.value()); + if (CollectionUtils.isEmpty(dictionary.getValues())) { + dictionary.setValues(mapValues(annotation.enumType())); + } + dictionary.setName(StringUtils.isNotBlank(annotation.name()) ? annotation.name() : annotation.value()); + return dictionary; + } /** * 映射值,转换为字典表的值