Эх сурвалжийг харах

chore:下发工具类支持实体类型的参数传递

韩帛霖 1 жил өмнө
parent
commit
01cc353417

+ 17 - 2
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/Sending.java

@@ -8,6 +8,8 @@ import org.springframework.http.*;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
+import java.lang.reflect.Field;
+import java.util.HashMap;
 import java.util.Map;
 
 
@@ -28,8 +30,9 @@ public class Sending<T> {
      * @return
      */
     private String appendParamsToUrl(String url, T obj) {
+        Map<String, Object> params = new HashMap<>();
         if (obj instanceof Map) {
-            Map<String, Object> params = (Map<String, Object>) obj;
+            params = (Map<String, Object>) obj;
             if (params != null && !params.isEmpty()) {
                 StringBuilder urlBuilder = new StringBuilder(url);
                 urlBuilder.append("?");
@@ -39,7 +42,19 @@ public class Sending<T> {
                 url = urlBuilder.toString();
             }
         } else {
-            Map<String, Object> params = (Map<String, Object>) JSON.parse(obj.toString());
+            Field[] fields = obj.getClass().getDeclaredFields();
+            for (Field field : fields) {
+                field.setAccessible(true);
+                try {
+                    String fieldName = field.getName();
+                    Object fieldValue = field.get(obj);
+                    if (fieldValue != null) {
+                        params.put(fieldName, fieldValue);
+                    }
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            }
             if (params != null && !params.isEmpty()) {
                 StringBuilder urlBuilder = new StringBuilder(url);
                 urlBuilder.append("?");