diff --git a/src/main/java/com/ly/doc/template/IRestDocTemplate.java b/src/main/java/com/ly/doc/template/IRestDocTemplate.java index f3f4b126e..f510a88cb 100644 --- a/src/main/java/com/ly/doc/template/IRestDocTemplate.java +++ b/src/main/java/com/ly/doc/template/IRestDocTemplate.java @@ -473,7 +473,7 @@ default List buildEntryPointMethod( apiMethodDoc.setRequestSchema(docJavaMethod.getRequestSchema()); apiMethodDoc.setResponseParams(responseParams); - TornaUtil.setTornaArrayTags(docJavaMethod.getJavaMethod(), apiMethodDoc); + TornaUtil.setTornaArrayTags(docJavaMethod.getJavaMethod(), apiMethodDoc, apiConfig); methodDocList.add(apiMethodDoc); } diff --git a/src/main/java/com/ly/doc/template/JaxrsDocBuildTemplate.java b/src/main/java/com/ly/doc/template/JaxrsDocBuildTemplate.java index e1869f48b..a122541e8 100644 --- a/src/main/java/com/ly/doc/template/JaxrsDocBuildTemplate.java +++ b/src/main/java/com/ly/doc/template/JaxrsDocBuildTemplate.java @@ -248,7 +248,7 @@ private List buildControllerMethod(final JavaClass cls, ApiConfig apiMethodDoc.setRequestSchema(docJavaMethod.getRequestSchema()); apiMethodDoc.setResponseParams(responseParams); methodDocList.add(apiMethodDoc); - TornaUtil.setTornaArrayTags(docJavaMethod.getJavaMethod(), apiMethodDoc); + TornaUtil.setTornaArrayTags(docJavaMethod.getJavaMethod(), apiMethodDoc, apiConfig); } return methodDocList; } diff --git a/src/main/java/com/ly/doc/utils/TornaUtil.java b/src/main/java/com/ly/doc/utils/TornaUtil.java index e75f7f8af..87084d266 100644 --- a/src/main/java/com/ly/doc/utils/TornaUtil.java +++ b/src/main/java/com/ly/doc/utils/TornaUtil.java @@ -23,30 +23,19 @@ package com.ly.doc.utils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import com.ly.doc.constants.DocGlobalConstants; +import com.ly.doc.model.*; import com.ly.doc.model.rpc.RpcApiDependency; import com.power.common.model.EnumDictionary; import com.power.common.util.CollectionUtil; import com.power.common.util.OkHttp3Util; import com.power.common.util.StringUtil; import com.ly.doc.constants.TornaConstants; -import com.ly.doc.model.ApiConfig; -import com.ly.doc.model.ApiDocDict; -import com.ly.doc.model.ApiErrorCode; -import com.ly.doc.model.ApiMethodDoc; -import com.ly.doc.model.ApiParam; -import com.ly.doc.model.ApiReqParam; -import com.ly.doc.model.DataDict; -import com.ly.doc.model.RpcJavaMethod; import com.ly.doc.model.torna.Apis; import com.ly.doc.model.torna.CommonErrorCode; import com.ly.doc.model.torna.DebugEnv; @@ -331,11 +320,13 @@ private static List buildTornaDicItems(List dataDicts) { * * @param apiMethodDoc 请求参数 */ - public static void setTornaArrayTags(JavaMethod method, ApiMethodDoc apiMethodDoc) { + public static void setTornaArrayTags(JavaMethod method, ApiMethodDoc apiMethodDoc, ApiConfig apiConfig) { String returnTypeName = method.getReturnType().getCanonicalName(); apiMethodDoc.setIsRequestArray(0); apiMethodDoc.setIsResponseArray(0); - boolean respArray = JavaClassValidateUtil.isCollection(returnTypeName) || JavaClassValidateUtil.isArray(returnTypeName); + String responseBodyAdviceClassName = Optional.ofNullable(apiConfig).map(ApiConfig::getResponseBodyAdvice).map(BodyAdvice::getClassName).orElse(StringUtil.EMPTY); + String realReturnTypeName = StringUtil.isEmpty(responseBodyAdviceClassName) ? returnTypeName : responseBodyAdviceClassName; + boolean respArray = JavaClassValidateUtil.isCollection(realReturnTypeName) || JavaClassValidateUtil.isArray(realReturnTypeName); //response if (respArray) { apiMethodDoc.setIsResponseArray(1); @@ -345,9 +336,11 @@ public static void setTornaArrayTags(JavaMethod method, ApiMethodDoc apiMethodDo } //request if (CollectionUtil.isNotEmpty(method.getParameters())) { + String requestBodyAdviceClassName = Optional.ofNullable(apiConfig).map(ApiConfig::getRequestBodyAdvice).map(BodyAdvice::getClassName).orElse(StringUtil.EMPTY); for (JavaParameter param : method.getParameters()) { String typeName = param.getType().getCanonicalName(); - boolean reqArray = JavaClassValidateUtil.isCollection(typeName) || JavaClassValidateUtil.isArray(typeName); + String realTypeName = StringUtil.isEmpty(requestBodyAdviceClassName) ? typeName : requestBodyAdviceClassName; + boolean reqArray = JavaClassValidateUtil.isCollection(realTypeName) || JavaClassValidateUtil.isArray(realTypeName); if (reqArray) { apiMethodDoc.setIsRequestArray(1); String className = getType(param.getType().getGenericCanonicalName());