Browse Source

fix:优化工具类

韩帛霖 1 year ago
parent
commit
7936f83a72
1 changed files with 29 additions and 28 deletions
  1. 29 28
      ruoyi-common/src/main/java/com/ruoyi/common/utils/http/Sending.java

+ 29 - 28
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/Sending.java

@@ -26,44 +26,45 @@ public class Sending<T> {
      * get请求拼接参数使用
      *
      * @param url
-     * @param params
+     * @param obj  map类型或实体类型
      * @return
      */
     private String appendParamsToUrl(String url, T obj) {
         Map<String, Object> params = new HashMap<>();
-        if (obj instanceof Map) {
-            params = (Map<String, Object>) obj;
-            if (params != null && !params.isEmpty()) {
-                StringBuilder urlBuilder = new StringBuilder(url);
-                urlBuilder.append("?");
-                for (Map.Entry<String, Object> entry : params.entrySet()) {
-                    urlBuilder.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
-                }
-                url = urlBuilder.toString();
-            }
-        } else {
-            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) {
+        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) {
+                    if (field.getType() == Map.class) {
+                        // 如果字段是 Map 类型,将其拼接到 URL
+                        Map<String, Object> mapFieldValue = (Map<String, Object>) fieldValue;
+                        for (Map.Entry<String, Object> entry : mapFieldValue.entrySet()) {
+                            params.put(fieldName + "[" + entry.getKey() + "]", entry.getValue());
+                        }
+                    } else {
+                        // 处理其他类型的字段
                         params.put(fieldName, fieldValue);
                     }
-                } catch (IllegalAccessException e) {
-                    e.printStackTrace();
                 }
+            } catch (IllegalAccessException e) {
+                e.printStackTrace();
             }
-            if (params != null && !params.isEmpty()) {
-                StringBuilder urlBuilder = new StringBuilder(url);
-                urlBuilder.append("?");
-                for (Map.Entry<String, Object> entry : params.entrySet()) {
-                    urlBuilder.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
-                }
-                url = urlBuilder.toString();
+        }
+
+        if (!params.isEmpty()) {
+            StringBuilder urlBuilder = new StringBuilder(url);
+            urlBuilder.append("?");
+            for (Map.Entry<String, Object> entry : params.entrySet()) {
+                urlBuilder.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
             }
+            url = urlBuilder.toString();
         }
+
         return url;
     }