From 6578d4f5256717f717c37d96278a7221d1e6450c Mon Sep 17 00:00:00 2001 From: chenfeng <694447355@qq.com> Date: Wed, 7 Jun 2023 17:40:58 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E5=8D=95=E5=B1=82=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- framework-core/pom.xml | 2 +- .../unionmed/framework/spring/mvc/BaseReturn.java | 10 +++++ .../framework/spring/mvc/BaseReturnUtils.java | 44 ++++++++++++++++++++++ .../mvc/datatemplate/SingleNestDataTemplate.java | 9 +++++ framework-orm/pom.xml | 2 +- framework-test/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 framework-core/src/main/java/com/unionmed/framework/spring/mvc/BaseReturnUtils.java 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