Prechádzať zdrojové kódy

update 优化 !pr835 相关代码

疯狂的狮子Li 4 mesiacov pred
rodič
commit
d89e09b94e

+ 6 - 21
ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/core/enhancer/SaTokenJavadocResolver.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.annotation.SaCheckRole;
 import cn.dev33.satoken.annotation.SaIgnore;
+import cn.hutool.core.convert.Convert;
 import io.swagger.v3.oas.models.Operation;
 import org.dromara.common.doc.core.model.SaTokenSecurityMetadata;
 import org.springframework.web.method.HandlerMethod;
@@ -113,13 +114,13 @@ public class SaTokenJavadocResolver implements SaTokenMetadataResolver {
             Object type = getAnnotationValue(annotation, "type");
             Object orRole = getAnnotationValue(annotation, "orRole");
 
-            String[] values = convertToStringArray(value);
+            String[] values = Convert.toStrArray(value);
             String modeStr = mode != null ? mode.toString() : "AND";
             String typeStr = type != null ? type.toString() : "";
-            String[] orRoles = convertToStringArray(orRole);
+            String[] orRoles = Convert.toStrArray(orRole);
 
             metadata.addPermission(values, modeStr, typeStr, orRoles);
-        } catch (Exception e) {
+        } catch (Exception ignore) {
             // 忽略解析错误
         }
     }
@@ -153,12 +154,12 @@ public class SaTokenJavadocResolver implements SaTokenMetadataResolver {
             Object mode = getAnnotationValue(annotation, "mode");
             Object type = getAnnotationValue(annotation, "type");
 
-            String[] values = convertToStringArray(value);
+            String[] values = Convert.toStrArray(value);
             String modeStr = mode != null ? mode.toString() : "AND";
             String typeStr = type != null ? type.toString() : "";
 
             metadata.addRole(values, modeStr, typeStr);
-        } catch (Exception e) {
+        } catch (Exception ignore) {
             // 忽略解析错误
         }
     }
@@ -181,20 +182,4 @@ public class SaTokenJavadocResolver implements SaTokenMetadataResolver {
         }
     }
 
-    /**
-     * 转换为字符串数组
-     */
-    private String[] convertToStringArray(Object value) {
-        if (value == null) {
-            return new String[0];
-        }
-        if (value instanceof String[]) {
-            return (String[])value;
-        }
-        if (value instanceof String) {
-            return new String[] {(String)value};
-        }
-        return new String[0];
-    }
-
 }

+ 17 - 13
ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/handler/OpenApiHandler.java

@@ -228,21 +228,25 @@ public class OpenApiHandler extends OpenAPIService {
             else
                 securityParser.buildSecurityRequirement(securityRequirements, operation);
         }
-        String description = javadocProvider.get().getMethodJavadocDescription(handlerMethod.getMethod());
-        String summary = javadocProvider.get().getFirstSentence(description);
-        if (StringUtils.isNotBlank(description)){
-            operation.setSummary(summary);
-        }
-        // 调用SaToken解析器提取JavaDoc中的权限信息
-        if (saTokenJavadocResolver.supports(handlerMethod)) {
-            SaTokenSecurityMetadata metadata = new SaTokenSecurityMetadata();
-            saTokenJavadocResolver.resolve(handlerMethod, operation, metadata);
-            String markdownString = metadata.toMarkdownString();
-            if (StringUtils.isNotBlank(markdownString)) {
-                description = description + markdownString;
+
+        if (javadocProvider.isPresent()) {
+            String description = javadocProvider.get().getMethodJavadocDescription(handlerMethod.getMethod());
+            String summary = javadocProvider.get().getFirstSentence(description);
+            if (StringUtils.isNotBlank(description)){
+                operation.setSummary(summary);
             }
+            // 调用SaToken解析器提取JavaDoc中的权限信息
+            if (saTokenJavadocResolver.supports(handlerMethod)) {
+                SaTokenSecurityMetadata metadata = new SaTokenSecurityMetadata();
+                saTokenJavadocResolver.resolve(handlerMethod, operation, metadata);
+                String markdownString = metadata.toMarkdownString();
+                if (StringUtils.isNotBlank(markdownString)) {
+                    description = description + markdownString;
+                }
+            }
+            operation.setDescription(description);
         }
-        operation.setDescription(description);
+
         return operation;
     }
 

+ 2 - 2
ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/SaTokenTestController.java

@@ -8,13 +8,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
- * SaToken 权限测试
+ * SaToken 权限测试 接口文档输出测试
  *
  * @author AprilWind
  */
 @Slf4j
 @RestController
-@RequestMapping("/demo/SaToken")
+@RequestMapping("/demo/saTokenDoc")
 public class SaTokenTestController {
 
     // ====================== 基础场景:单一校验规则 ======================