diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 3cbdc88fc..8cfd11a01 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -13,7 +13,6 @@ ruoyi-common-bom ruoyi-common-core - ruoyi-common-dict ruoyi-common-doc ruoyi-common-excel ruoyi-common-idempotent diff --git a/ruoyi-common/ruoyi-common-bom/pom.xml b/ruoyi-common/ruoyi-common-bom/pom.xml index 84d9cb012..4e518c6dd 100644 --- a/ruoyi-common/ruoyi-common-bom/pom.xml +++ b/ruoyi-common/ruoyi-common-bom/pom.xml @@ -26,13 +26,6 @@ ${revision} - - - com.ruoyi - ruoyi-common-dict - ${revision} - - com.ruoyi diff --git a/ruoyi-common/ruoyi-common-dict/pom.xml b/ruoyi-common/ruoyi-common-dict/pom.xml deleted file mode 100644 index fcfbbd73e..000000000 --- a/ruoyi-common/ruoyi-common-dict/pom.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - com.ruoyi - ruoyi-common - ${revision} - ../pom.xml - - 4.0.0 - - ruoyi-common-dict - - - ruoyi-common-dict 字典 - - - - - com.ruoyi - ruoyi-common-core - - - - diff --git a/ruoyi-common/ruoyi-common-dict/src/main/java/com/ruoyi/common/dict/annotation/DictDataMapper.java b/ruoyi-common/ruoyi-common-dict/src/main/java/com/ruoyi/common/dict/annotation/DictDataMapper.java deleted file mode 100644 index c005bd790..000000000 --- a/ruoyi-common/ruoyi-common-dict/src/main/java/com/ruoyi/common/dict/annotation/DictDataMapper.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.ruoyi.common.dict.annotation; - -import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.ruoyi.common.dict.jackson.DictDataJsonSerializer; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * 字典数据映射注解 - * - * @author itino - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.FIELD, ElementType.METHOD}) -@JacksonAnnotationsInside -@JsonSerialize(using = DictDataJsonSerializer.class) -public @interface DictDataMapper { - - /** - * 设置字典的type值 (如: sys_user_sex) - */ - String dictType() default ""; -} diff --git a/ruoyi-common/ruoyi-common-dict/src/main/java/com/ruoyi/common/dict/jackson/DictDataJsonSerializer.java b/ruoyi-common/ruoyi-common-dict/src/main/java/com/ruoyi/common/dict/jackson/DictDataJsonSerializer.java deleted file mode 100644 index f6d900b73..000000000 --- a/ruoyi-common/ruoyi-common-dict/src/main/java/com/ruoyi/common/dict/jackson/DictDataJsonSerializer.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.ruoyi.common.dict.jackson; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.BeanProperty; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.ser.ContextualSerializer; -import com.ruoyi.common.core.service.DictService; -import com.ruoyi.common.core.utils.SpringUtils; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.dict.annotation.DictDataMapper; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeansException; - -import java.io.IOException; -import java.util.Objects; - -/** - * 字典数据json序列化工具 - * - * @author itino - */ -@Slf4j -public class DictDataJsonSerializer extends JsonSerializer implements ContextualSerializer { - - private String dictType; - - @Override - public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException { - try { - DictService dictService = SpringUtils.getBean(DictService.class); - if (ObjectUtil.isNotNull(dictService)) { - String label = dictService.getDictLabel(dictType, value); - gen.writeString(StringUtils.isNotBlank(label) ? label : value); - } else { - gen.writeString(value); - } - } catch (BeansException e) { - log.error("字典数据未查到, 采用默认处理 => {}", e.getMessage()); - gen.writeString(value); - } - } - - @Override - public JsonSerializer createContextual(SerializerProvider prov, BeanProperty property) throws JsonMappingException { - DictDataMapper anno = property.getAnnotation(DictDataMapper.class); - if (Objects.nonNull(anno) && StrUtil.isNotBlank(anno.dictType())) { - this.dictType = anno.dictType(); - return this; - } - return prov.findValueSerializer(property.getType(), property); - } -} diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/annotation/Translation.java b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/annotation/Translation.java index 158c35077..302ef936b 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/annotation/Translation.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/annotation/Translation.java @@ -25,8 +25,8 @@ public @interface Translation { String type(); /** - * 通用Key 如果为空则取被标注的字段值 例如: 字典type(sys_user_sex) + * 其他条件 例如: 字典type(sys_user_sex) */ - String key() default ""; + String other() default ""; } diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/constant/TransConstant.java b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/constant/TransConstant.java index 84c4bba92..372f3a2a3 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/constant/TransConstant.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/constant/TransConstant.java @@ -8,15 +8,18 @@ package com.ruoyi.common.translation.constant; public interface TransConstant { /** - * 用户名翻译 + * 用户id转账号 */ String USER_ID_TO_NAME = "userIdToName"; /** - * 字典值翻译 + * 字典type转label */ String DICT_TYPE_TO_LABEL = "dictTypeToLabel"; + /** + * ossId转url + */ String OSS_ID_TO_URL = "ossIdToUrl"; } diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/TranslationInterface.java b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/TranslationInterface.java index 449e8943b..df4c3a2c3 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/TranslationInterface.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/TranslationInterface.java @@ -13,5 +13,5 @@ public interface TranslationInterface { * @param key 需要被翻译的键 * @return 返回键对应的值 */ - String translation(Object key); + String translation(Object key, String other); } diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/handler/TranslationHandler.java b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/handler/TranslationHandler.java index 1ca2f0728..922757e3f 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/handler/TranslationHandler.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/handler/TranslationHandler.java @@ -38,13 +38,13 @@ public class TranslationHandler extends JsonSerializer implements Contex try { TranslationInterface trans = TRANSLATION_MAPPER.get(translation.type()); if (ObjectUtil.isNotNull(trans)) { - String result = trans.translation(StringUtils.isBlank(translation.key()) ? value : translation.key()); + String result = trans.translation(value, translation.other()); gen.writeString(StringUtils.isNotBlank(result) ? result : value.toString()); } else { gen.writeString(value.toString()); } } catch (BeansException e) { - log.error("字典数据未查到, 采用默认处理 => {}", e.getMessage()); + log.error("数据未查到, 采用默认处理 => {}", e.getMessage()); gen.writeString(value.toString()); } } diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/DictTranslationImpl.java b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/DictTranslationImpl.java deleted file mode 100644 index e660cfb3b..000000000 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/DictTranslationImpl.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.ruoyi.common.translation.core.impl; - -import com.ruoyi.common.translation.annotation.TranslationType; -import com.ruoyi.common.translation.constant.TransConstant; -import com.ruoyi.common.translation.core.TranslationInterface; -import org.springframework.stereotype.Component; - -/** - * 翻译接口 (实现类需标注 {@link com.ruoyi.common.translation.annotation.TranslationType} 注解标明翻译类型) - * - * @author Lion Li - */ -@Component -@TranslationType(type = TransConstant.DICT_TYPE_TO_LABEL) -public class DictTranslationImpl implements TranslationInterface { - - /** - * 翻译 - * - * @param key 需要被翻译的键 - * @return 返回键对应的值 - */ - public String translation(Object key) { - if (key instanceof String dictType) { - return "dict"; - } - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/DictTypeTranslationImpl.java b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/DictTypeTranslationImpl.java new file mode 100644 index 000000000..4ad816bee --- /dev/null +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/DictTypeTranslationImpl.java @@ -0,0 +1,29 @@ +package com.ruoyi.common.translation.core.impl; + +import com.ruoyi.common.core.service.DictService; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.translation.annotation.TranslationType; +import com.ruoyi.common.translation.constant.TransConstant; +import com.ruoyi.common.translation.core.TranslationInterface; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; + +/** + * 字典翻译实现 + * + * @author Lion Li + */ +@Component +@AllArgsConstructor +@TranslationType(type = TransConstant.DICT_TYPE_TO_LABEL) +public class DictTypeTranslationImpl implements TranslationInterface { + + private final DictService dictService; + + public String translation(Object key, String other) { + if (key instanceof String dictValue && StringUtils.isNotBlank(other)) { + return dictService.getDictLabel(other, dictValue); + } + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/UserNameTranslationImpl.java b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/UserNameTranslationImpl.java index 39063936f..34b0e0dc3 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/UserNameTranslationImpl.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/UserNameTranslationImpl.java @@ -6,7 +6,7 @@ import com.ruoyi.common.translation.core.TranslationInterface; import org.springframework.stereotype.Component; /** - * 翻译接口 (实现类需标注 {@link com.ruoyi.common.translation.annotation.TranslationType} 注解标明翻译类型) + * 用户名翻译实现 * * @author Lion Li */ @@ -14,13 +14,8 @@ import org.springframework.stereotype.Component; @TranslationType(type = TransConstant.USER_ID_TO_NAME) public class UserNameTranslationImpl implements TranslationInterface { - /** - * 翻译 - * - * @param key 需要被翻译的键 - * @return 返回键对应的值 - */ - public String translation(Object key) { + public String translation(Object key, String other) { + // todo 待实现 if (key instanceof Long id) { return "admin"; } diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index fe0b6aa73..caecf782b 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -35,7 +35,7 @@ com.ruoyi - ruoyi-common-dict + ruoyi-common-translation