diff --git a/framework-core/pom.xml b/framework-core/pom.xml
index b4e43bc..f86503a 100644
--- a/framework-core/pom.xml
+++ b/framework-core/pom.xml
@@ -5,7 +5,7 @@
com.unionmed
unionmed-framework
- 0.0.6
+ 0.0.8
4.0.0
diff --git a/framework-core/src/main/java/com/unionmed/framework/spring/mvc/BaseReturn.java b/framework-core/src/main/java/com/unionmed/framework/spring/mvc/BaseReturn.java
index 8c0212b..e93d0ce 100644
--- a/framework-core/src/main/java/com/unionmed/framework/spring/mvc/BaseReturn.java
+++ b/framework-core/src/main/java/com/unionmed/framework/spring/mvc/BaseReturn.java
@@ -12,6 +12,7 @@ public class BaseReturn {
@ApiModelProperty(value = "编码", required = true, example = "200")
private int code;
+ @Deprecated
@ApiModelProperty(value = "编码(兼容的,推荐使用code。未来该字段将被删除)", required = true, example = "200")
private int errCode;
@ApiModelProperty(value = "信息提示", required = true, example = "成功")
@@ -79,6 +80,15 @@ public class BaseReturn {
return inst(ReturnCode.FAIL.getCode(), data, message);
}
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ this.errCode = code;
+ }
+
public int getErrCode() {
return errCode;
}
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
new file mode 100644
index 0000000..d321fc7
--- /dev/null
+++ b/framework-core/src/main/java/com/unionmed/framework/spring/mvc/BaseReturnUtils.java
@@ -0,0 +1,44 @@
+package com.unionmed.framework.spring.mvc;
+
+import com.alibaba.fastjson.JSONObject;
+import com.unionmed.framework.util.ObjectUtils;
+
+/**
+ * @author ianChen
+ * @date 2023/6/6 10:48
+ */
+public final class BaseReturnUtils {
+
+ public static BaseReturn parse(JSONObject jsn) {
+ if (ObjectUtils.isEmpty(jsn)) {
+ return BaseReturn.suc(BaseReturn.suc());
+ }
+ if (isBaseReturnFormat(jsn)) {
+ Object data = jsn.get("data");
+ if (data instanceof JSONObject) {
+ return parse(jsn, (JSONObject) data);
+ } else if (data instanceof String) {
+ String sData = (String) data;
+ if (sData.startsWith("{") && sData.endsWith("}")) {
+ return parse(jsn, JSONObject.parseObject(sData));
+ }
+ } else {
+ return BaseReturn.suc(BaseReturn.inst(jsn.getIntValue("code"), data, jsn.getString("message")));
+ }
+ }
+
+ return BaseReturn.suc(BaseReturn.suc(jsn));
+ }
+
+ private static BaseReturn parse(JSONObject jsn, JSONObject jData) {
+ if (isBaseReturnFormat(jData)) {
+ return BaseReturn.inst(jsn.getIntValue("code"), BaseReturn.inst(jData.getIntValue("code"), jData.get("data"), jData.getString("message")), jsn.getString("message"));
+ } else {
+ return BaseReturn.suc(BaseReturn.inst(jsn.getIntValue("code"), jsn.get("data"), jsn.getString("message")));
+ }
+ }
+
+ private static boolean isBaseReturnFormat(JSONObject jsn) {
+ return jsn.containsKey("code") && jsn.containsKey("message") && jsn.containsKey("data");
+ }
+}
diff --git a/framework-core/src/main/java/com/unionmed/framework/spring/mvc/datatemplate/SingleNestDataTemplate.java b/framework-core/src/main/java/com/unionmed/framework/spring/mvc/datatemplate/SingleNestDataTemplate.java
index be5b28e..a27c9c7 100644
--- a/framework-core/src/main/java/com/unionmed/framework/spring/mvc/datatemplate/SingleNestDataTemplate.java
+++ b/framework-core/src/main/java/com/unionmed/framework/spring/mvc/datatemplate/SingleNestDataTemplate.java
@@ -1,6 +1,8 @@
package com.unionmed.framework.spring.mvc.datatemplate;
+import com.alibaba.fastjson.JSONObject;
import com.unionmed.framework.spring.mvc.BaseReturn;
+import com.unionmed.framework.spring.mvc.BaseReturnUtils;
import org.springframework.stereotype.Component;
/**
@@ -22,6 +24,13 @@ public class SingleNestDataTemplate implements DataTemplate {
if (((BaseReturn) returnValue).getData() instanceof BaseReturn) {
returnValue = ((BaseReturn) returnValue).getData();
}
+ } else if (returnValue instanceof JSONObject) {
+ returnValue = BaseReturnUtils.parse((JSONObject) returnValue).getData();
+ } else if (returnValue instanceof String) {
+ String sData = (String) returnValue;
+ if (sData.startsWith("{") && sData.endsWith("}")) {
+ returnValue = BaseReturnUtils.parse(JSONObject.parseObject(sData)).getData();
+ }
} else {
returnValue = BaseReturn.suc(returnValue);
}
diff --git a/framework-orm/pom.xml b/framework-orm/pom.xml
index d05624f..441a356 100644
--- a/framework-orm/pom.xml
+++ b/framework-orm/pom.xml
@@ -5,7 +5,7 @@
unionmed-framework
com.unionmed
- 0.0.6
+ 0.0.8
4.0.0
diff --git a/framework-test/pom.xml b/framework-test/pom.xml
index 6543761..28267b8 100644
--- a/framework-test/pom.xml
+++ b/framework-test/pom.xml
@@ -5,7 +5,7 @@
com.unionmed
unionmed-framework
- 0.0.6
+ 0.0.8
4.0.0
diff --git a/pom.xml b/pom.xml
index 1cc8cef..e97fe6f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
4.0.0
com.unionmed
unionmed-framework
- 0.0.6
+ 0.0.8
pom
unionmed-framework