diff --git a/framework-core/pom.xml b/framework-core/pom.xml index 16187ea..34e0f80 100644 --- a/framework-core/pom.xml +++ b/framework-core/pom.xml @@ -5,7 +5,7 @@ com.unionmed unionmed-framework - 0.0.15 + 0.0.16 4.0.0 diff --git a/framework-core/src/main/java/com/unionmed/framework/spring/mvc/BaseReturnUtils.java b/framework-core/src/main/java/com/unionmed/framework/spring/mvc/BaseReturnUtils.java index 1f80c05..b0d8a6c 100644 --- a/framework-core/src/main/java/com/unionmed/framework/spring/mvc/BaseReturnUtils.java +++ b/framework-core/src/main/java/com/unionmed/framework/spring/mvc/BaseReturnUtils.java @@ -3,6 +3,8 @@ package com.unionmed.framework.spring.mvc; import com.alibaba.fastjson.JSONObject; import com.unionmed.framework.util.ObjectUtils; +import java.util.Map; + /** * @author ianChen * @date 2023/6/6 10:48 @@ -39,6 +41,10 @@ public final class BaseReturnUtils { } public static boolean isBaseReturnFormat(JSONObject jsn) { - return jsn.containsKey("code") && jsn.containsKey("message") && jsn.containsKey("data"); + return isBaseReturnFormat((Map) jsn); + } + + public static boolean isBaseReturnFormat(Map map) { + return map.containsKey("code") && map.containsKey("message") && map.containsKey("data"); } } diff --git a/framework-core/src/main/java/com/unionmed/framework/spring/mvc/response/interceptor/EncryptionResponseBodyInterceptor.java b/framework-core/src/main/java/com/unionmed/framework/spring/mvc/response/interceptor/EncryptionResponseBodyInterceptor.java index 40877d4..3e60cb3 100644 --- a/framework-core/src/main/java/com/unionmed/framework/spring/mvc/response/interceptor/EncryptionResponseBodyInterceptor.java +++ b/framework-core/src/main/java/com/unionmed/framework/spring/mvc/response/interceptor/EncryptionResponseBodyInterceptor.java @@ -46,12 +46,15 @@ public class EncryptionResponseBodyInterceptor implements ResponseBodyIntercepto } private Object handleReturnValue(String sk, String iv, Object returnValue) { + if (returnValue == null) { + return returnValue; + } if (returnValue instanceof BaseReturn) { BaseReturn br = (BaseReturn) returnValue; if (br.getData() != null) { br.setData(handleReturnValue(sk, iv, br.getData())); - return returnValue; } + return returnValue; } else if (returnValue instanceof String) { String str = (String) returnValue; if (JSONUtil.isJsonObj(str)) { @@ -60,11 +63,16 @@ public class EncryptionResponseBodyInterceptor implements ResponseBodyIntercepto } else if (returnValue instanceof JSONObject) { JSONObject jObject = (JSONObject) returnValue; if (BaseReturnUtils.isBaseReturnFormat(jObject)) { - jObject.put("data", handleReturnValue(sk, iv, jObject.get("data"))); + if (jObject.get("data") != null) { + jObject.put("data", handleReturnValue(sk, iv, jObject.get("data"))); + } return jObject; } - } else if (returnValue instanceof Map) { - return handleReturnValue(sk, iv, new JSONObject((Map) returnValue)); + } else if (returnValue instanceof Map && !((Map) returnValue).isEmpty()) { + Map map = (Map) returnValue; + if (BaseReturnUtils.isBaseReturnFormat(map)) { + return map.get("data") == null ? returnValue : handleReturnValue(sk, iv, new JSONObject((Map) returnValue)); + } } return BodyCryptUtils.encrypt(sk, iv, returnValue); diff --git a/framework-orm/pom.xml b/framework-orm/pom.xml index 5e57b3f..fcc54c4 100644 --- a/framework-orm/pom.xml +++ b/framework-orm/pom.xml @@ -5,7 +5,7 @@ unionmed-framework com.unionmed - 0.0.15 + 0.0.16 4.0.0 diff --git a/framework-test/pom.xml b/framework-test/pom.xml index 155dd9e..2f18d2c 100644 --- a/framework-test/pom.xml +++ b/framework-test/pom.xml @@ -5,7 +5,7 @@ com.unionmed unionmed-framework - 0.0.15 + 0.0.16 4.0.0 diff --git a/pom.xml b/pom.xml index fd44909..b73ec64 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 com.unionmed unionmed-framework - 0.0.15 + 0.0.16 pom unionmed-framework