From 773b9953ad645b39a9efa8ab6d71dfc9d9e4e22e Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 24 十月 2024 11:51:57 +0800
Subject: [PATCH] 补全了所有日志

---
 HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/core/interceptor/HDLEncryptInterceptor.java |  127 +++++++++++++++++++++++++----------------
 1 files changed, 77 insertions(+), 50 deletions(-)

diff --git a/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/core/interceptor/HDLEncryptInterceptor.java b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/core/interceptor/HDLEncryptInterceptor.java
index df494e1..50f0dad 100644
--- a/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/core/interceptor/HDLEncryptInterceptor.java
+++ b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/core/interceptor/HDLEncryptInterceptor.java
@@ -5,6 +5,8 @@
 
 import androidx.annotation.NonNull;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
@@ -12,6 +14,7 @@
 import com.hdl.hdlhttp.utils.GsonConvert;
 import com.hdl.linkpm.sdk.HDLLinkPMSdk;
 import com.hdl.linkpm.sdk.core.interceptor.HDLSmartHeader;
+import com.hdl.linkpm.sdk.template.GsonUtils;
 import com.hdl.linkpm.sdk.utils.HDLMD5Utils;
 import com.hdl.linkpm.sdk.utils.HDLSDKLog;
 
@@ -141,68 +144,92 @@
 
 
     private String jsonToUrlParameter(JsonObject object) {
-        final Map<String, String> map = GsonConvert.getGson().fromJson(object, new TypeToken<Map<String, String>>() {
-        }.getType());
+//        final Map<String, String> map = GsonUtils.getGson().fromJson(object, new TypeToken<Map<String, String>>() {
+//        }.getType());
+//        final Uri.Builder builder = new Uri.Builder();
+//        List<String> list = new ArrayList<>(map.keySet());
+//        Collections.sort(list);
+//        for (String key : list) {
+//            String value = map.get(key);
+//            if (valueNeedSign(value)) {
+//                builder.appendQueryParameter(key, value);
+//            }
+//        }
+//        return builder.build().getQuery();
         final Uri.Builder builder = new Uri.Builder();
-        List<String> list = new ArrayList<>(map.keySet());
-        Collections.sort(list);
-        for (String key : list) {
-            //鍒ゆ柇褰撳墠鍊兼槸鍚﹂渶瑕佸弬涓庣鍚嶏紝淇濇寔璺熶簯绔竴鑷�
-            if (IfValueNeedSign(map.get(key))) {
-                builder.appendQueryParameter(key, map.get(key));
-//                HDLSDKLog.e("瑕佺鍚嶏細" + key + " 锛�" + map.get(key));
-            } else {
-//                HDLSDKLog.e("涓嶉渶瑕佺鍚嶏細" + key + " 锛�" + map.get(key));
+        try {
+            JSONObject jsonobject = JSON.parseObject(object.toString());
+            List<String> list = new ArrayList<>(jsonobject.keySet());
+            Collections.sort(list);
+            for (String key : list) {
+                Object obj = jsonobject.get(key);
+                if (isSignValue(obj))
+                    builder.appendQueryParameter(key, obj.toString());
+
             }
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return builder.build().getQuery();
     }
 
+    private static boolean isSignValue(Object value) {
+        if (value == null) return false;
+        if (value instanceof Number) return true;
+        String className = value.getClass().getSimpleName();
+        switch (className) {
+            case "String":
+            case "Integer":
+            case "Boolean":
+            case "Long":
+            case "Short":
+            case "Float":
+            case "Double":
+            case "Character":
+            case "Byte":
+                if (TextUtils.isEmpty(value.toString())) return false;
+                return true;
+            default:
+                return false;
+
+        }
+
+    }
+
+
     /**
+     * 鍩烘湰绫诲瀷鍔犲瘑
+     * <p>
      * 鍒ゆ柇褰撳墠鍊兼槸鍚﹂渶瑕佸弬涓庣鍚嶏紝淇濇寔璺熶簯绔竴鑷�
      * 绌哄瓧绗︿覆涓嶅弬涓�
-     * 鏁扮粍,闆嗗悎,瀵硅薄涓嶅弬涓�
+     * 鏁扮粍,闆嗗悎涓嶅弬涓�
      *
-     * @param valueStr
-     * @return
+     * @return ture 闇�瑕佸姞瀵�
      */
-    private static boolean IfValueNeedSign(String valueStr) {
-        if (TextUtils.isEmpty(valueStr))
-            return false;
-        final char[] strChar = valueStr.substring(0, 1).toCharArray();
-        final char firstChar = strChar[0];
-        //System.out.println("getJSONType firstChar = "+firstChar);
-        if (firstChar != '{' && firstChar != '[')
-            return true;
-
+    private static boolean valueNeedSign(String valueStr) {
+        try {
+            if (!TextUtils.isEmpty(valueStr)) {
+                JsonElement json = JsonParser.parseString(valueStr);
+                if (json != null && (json.isJsonPrimitive() || json.getAsJsonPrimitive().isString())) {
+                    return true;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return false;
     }
-//    /**
-//     * 鍒ゆ柇褰撳墠鍊兼槸鍚﹂渶瑕佸弬涓庣鍚嶏紝淇濇寔璺熶簯绔竴鑷�
-//     * 绌哄瓧绗︿覆涓嶅弬涓�
-//     * 鏁扮粍,闆嗗悎,瀵硅薄涓嶅弬涓�
-//     *
-//     * @param inputValueStr
-//     * @return
-//     */
-//    private static boolean IfValueNeedSign(String inputValueStr) {
-//        if (TextUtils.isEmpty(inputValueStr))
-//            return false;
-//        try {
-//            //鍏堣В鐮�
-//            String valueStr = URLDecoder.decode(inputValueStr, "utf-8");
-//            final char[] strChar = valueStr.substring(0, 1).toCharArray();
-//            final char firstChar = strChar[0];
-//            //System.out.println("getJSONType firstChar = "+firstChar);
-//            if (firstChar != '{' && firstChar != '[') {
-//                return true;
-//            }
-//            return false;
-//        } catch (UnsupportedEncodingException e) {
-//            e.printStackTrace();
-//            return false;
-//        }
-//
-//    }
+
+    public static boolean isPrimitive(String type) {
+        return (type.equals("char")
+                || type.equals("double") || type.equals("float")
+                || type.equals("integer") || type.equals("string")
+                || type.equals("boolean")) || (type.equals("Char")
+                || type.equals("Double") || type.equals("Float")
+                || type.equals("Integer") || type.equals("String")
+                || type.equals("Boolean") || type.equals("int")
+                || type.equals("long") || type.equals("Int") || type
+                .equals("Long"));
+    }
 
 }

--
Gitblit v1.8.0