From 68015d3e7fc475f1b9b497c12f2c33edeb00f7bf Mon Sep 17 00:00:00 2001 From: Turbolisten <188029906@qq.com> Date: Fri, 18 Sep 2020 17:35:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=9E=9A=E4=B8=BE=E7=B1=BBsw?= =?UTF-8?q?agger=E6=B3=A8=E8=A7=A3ApiModelPropertyEnum=20-=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=98=AF=E5=90=A6=E9=9A=90=E8=97=8F=E5=B1=9E=E6=80=A7?= =?UTF-8?q?hidden=E9=BB=98=E8=AE=A4=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/anno/ApiModelPropertyEnum.java | 12 +++++++++++ .../SmartSwaggerApiModelEnumPlugin.java | 21 ++++++++++--------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/ApiModelPropertyEnum.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/ApiModelPropertyEnum.java index 40399a0f..c9babff3 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/ApiModelPropertyEnum.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/ApiModelPropertyEnum.java @@ -26,6 +26,18 @@ public @interface ApiModelPropertyEnum { String example() default ""; + /** + * 是否隐藏 + * + * @return + */ + boolean hidden() default false; + + /** + * 是否必须 + * + * @return + */ boolean required() default true; String dataType() default ""; diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/swagger/SmartSwaggerApiModelEnumPlugin.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/swagger/SmartSwaggerApiModelEnumPlugin.java index 15037fb8..dbc2d586 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/swagger/SmartSwaggerApiModelEnumPlugin.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/swagger/SmartSwaggerApiModelEnumPlugin.java @@ -45,22 +45,23 @@ public class SmartSwaggerApiModelEnumPlugin implements ModelPropertyBuilderPlugi @Override public void apply(ModelPropertyContext context) { - Optional annotation = Optional.absent(); + Optional enumOptional = Optional.absent(); if (context.getAnnotatedElement().isPresent()) { - annotation = annotation.or(findApiModePropertyAnnotation(context.getAnnotatedElement().get())); + enumOptional = enumOptional.or(findApiModePropertyAnnotation(context.getAnnotatedElement().get())); } if (context.getBeanPropertyDefinition().isPresent()) { - annotation = annotation.or(findPropertyAnnotation(context.getBeanPropertyDefinition().get(), ApiModelPropertyEnum.class)); + enumOptional = enumOptional.or(findPropertyAnnotation(context.getBeanPropertyDefinition().get(), ApiModelPropertyEnum.class)); } - if (annotation.isPresent()) { - Class aClass = annotation.get().value(); - String enumInfo = BaseEnum.getInfo(aClass); - String enumDesc = annotation.get().enumDesc(); - context.getBuilder().required(annotation.transform(toIsRequired()).or(false)) - .description(enumDesc +":"+enumInfo) - .example(annotation.transform(toExample()).orNull()); + if (enumOptional.isPresent()) { + ApiModelPropertyEnum anEnum = enumOptional.get(); + String enumInfo = BaseEnum.getInfo(anEnum.value()); + context.getBuilder() + .required(enumOptional.transform(toIsRequired()).or(false)) + .description(anEnum.enumDesc() + ":" + enumInfo) + .example(enumOptional.transform(toExample()).orNull()) + .isHidden(anEnum.hidden()); } }