From 0d755d2266d0bd67ff420918a2577756fb804662 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期四, 02 二月 2023 22:41:24 +0800
Subject: [PATCH] update 优化 转换注解 支持映射属性功能

---
 ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/handler/TranslationHandler.java |   19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)

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 922757e..0a8f1b3 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
@@ -8,10 +8,10 @@
 import com.fasterxml.jackson.databind.SerializerProvider;
 import com.fasterxml.jackson.databind.ser.ContextualSerializer;
 import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.reflect.ReflectUtils;
 import com.ruoyi.common.translation.annotation.Translation;
 import com.ruoyi.common.translation.core.TranslationInterface;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeansException;
 
 import java.io.IOException;
 import java.util.Map;
@@ -35,16 +35,15 @@
 
     @Override
     public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
-        try {
-            TranslationInterface trans = TRANSLATION_MAPPER.get(translation.type());
-            if (ObjectUtil.isNotNull(trans)) {
-                String result = trans.translation(value, translation.other());
-                gen.writeString(StringUtils.isNotBlank(result) ? result : value.toString());
-            } else {
-                gen.writeString(value.toString());
+        TranslationInterface trans = TRANSLATION_MAPPER.get(translation.type());
+        if (ObjectUtil.isNotNull(trans)) {
+            // 濡傛灉鏄犲皠瀛楁涓嶄负绌� 鍒欏彇鏄犲皠瀛楁鐨勫��
+            if (StringUtils.isNotBlank(translation.mapper())) {
+                value = ReflectUtils.invokeGetter(gen.getCurrentValue(), translation.mapper());
             }
-        } catch (BeansException e) {
-            log.error("鏁版嵁鏈煡鍒�, 閲囩敤榛樿澶勭悊 => {}", e.getMessage());
+            String result = trans.translation(value, translation.other());
+            gen.writeString(StringUtils.isNotBlank(result) ? result : value.toString());
+        } else {
             gen.writeString(value.toString());
         }
     }

--
Gitblit v1.9.3