From 850ac50a9a02205ad36d0f770ef7c8012e72bf86 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Sat, 15 Jan 2022 23:57:58 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.1.6=E3=80=91=E3=80=90scanner?= =?UTF-8?q?=E3=80=91=E3=80=90user=E3=80=91=E4=BC=98=E5=8C=96user=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E7=9A=84=E6=8E=A5=E5=8F=A3=E6=8F=8F=E8=BF=B0=EF=BC=8C?= =?UTF-8?q?ApiResource=E6=B3=A8=E8=A7=A3=E5=8E=BB=E6=8E=89=E4=BB=A5?= =?UTF-8?q?=E5=BE=80=E7=9A=84responseClass=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scanner/api/annotation/ApiResource.java | 10 --- .../scanner/api/annotation/GetResource.java | 10 --- .../scanner/api/annotation/PostResource.java | 10 --- .../scanner/api/context/MetadataContext.java | 14 ++++ .../factory/ClassDetailMetadataFactory.java | 2 +- .../api/factory/ClassMetadataFactory.java | 6 +- .../api/pojo/resource/ResourceDefinition.java | 2 +- .../scanner/api/util/ClassTypeUtil.java | 14 ++-- .../scanner/api/util/MethodReflectUtil.java | 25 +++---- .../kernel/scanner/ApiResourceScanner.java | 36 ++++++---- .../app/controller/SysAppController.java | 4 +- .../controller/SysMenuButtonController.java | 4 +- .../menu/controller/SysMenuController.java | 20 +++--- .../controller/SysNoticeController.java | 7 +- .../controller/HrOrganizationController.java | 16 ++--- .../controller/HrPositionController.java | 7 +- .../controller/ResourceController.java | 8 +-- .../resource/factory/ResourceFactory.java | 45 ++++++------ .../role/controller/SysRoleController.java | 13 ++-- .../user/controller/KaptchaController.java | 12 ++-- .../user/controller/LoginController.java | 32 ++++----- .../user/controller/OnlineUserController.java | 11 +-- .../controller/PersonalInfoController.java | 12 ++-- .../user/controller/SysUserController.java | 71 ++++++++++--------- 24 files changed, 187 insertions(+), 204 deletions(-) diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/ApiResource.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/ApiResource.java index d27fb3e0a..c30c590fb 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/ApiResource.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/ApiResource.java @@ -90,16 +90,6 @@ public @interface ApiResource { */ boolean viewFlag() default false; - /** - * 资源的响应类型,用于生成api文档 - */ - Class responseClass() default Void.class; - - /** - * 资源的响应类型的泛型类型,用于生成api文档 - */ - Class responseGenericClass() default Void.class; - /** * 请求路径(同RequestMapping) */ diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/GetResource.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/GetResource.java index 19b334774..55e85ac87 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/GetResource.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/GetResource.java @@ -85,16 +85,6 @@ public @interface GetResource { */ boolean viewFlag() default false; - /** - * 资源的响应类型,用于生成api文档 - */ - Class responseClass() default Void.class; - - /** - * 资源的响应类型的泛型类型,用于生成api文档 - */ - Class responseGenericClass() default Void.class; - /** * 请求路径(同RequestMapping) */ diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/PostResource.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/PostResource.java index 2111f0d50..181025d89 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/PostResource.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/annotation/PostResource.java @@ -90,16 +90,6 @@ public @interface PostResource { */ boolean viewFlag() default false; - /** - * 资源的响应类型,用于生成api文档 - */ - Class responseClass() default Void.class; - - /** - * 资源的响应类型的泛型类型,用于生成api文档 - */ - Class responseGenericClass() default Void.class; - /** * 请求路径(同RequestMapping) */ diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/context/MetadataContext.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/context/MetadataContext.java index e43d8e82d..0173ff6bb 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/context/MetadataContext.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/context/MetadataContext.java @@ -1,5 +1,6 @@ package cn.stylefeng.roses.kernel.scanner.api.context; +import cn.hutool.core.util.StrUtil; import cn.stylefeng.roses.kernel.scanner.api.enums.FieldTypeEnum; import cn.stylefeng.roses.kernel.scanner.api.util.ClassTypeUtil; @@ -97,4 +98,17 @@ public class MetadataContext { META_DATA_CLASS_COUNT_CONTEXT.clear(); } + /** + * 清空指定过程的缓存 + * + * @author fengshuonan + * @date 2022/1/15 10:49 + */ + public static void cleanContext(String uuid) { + if (StrUtil.isEmpty(uuid)) { + return; + } + META_DATA_CLASS_COUNT_CONTEXT.remove(uuid); + } + } diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassDetailMetadataFactory.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassDetailMetadataFactory.java index 711c2fef7..762e67d3e 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassDetailMetadataFactory.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassDetailMetadataFactory.java @@ -152,7 +152,7 @@ public class ClassDetailMetadataFactory { return fieldDetailMetadataSet; } else { - log.info("带泛型的实体主题rawType非Class类型" + fieldType); + log.debug("带泛型的实体主题rawType非Class类型" + fieldType); return null; } } diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassMetadataFactory.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassMetadataFactory.java index 97a85ec31..a59ee3189 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassMetadataFactory.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassMetadataFactory.java @@ -53,16 +53,16 @@ public class ClassMetadataFactory { ParameterizedType parameterizedType = (ParameterizedType) type; // 创建类型的基本信息 - FieldMetadata baseMetadata = ClassDescriptionUtil.createParameterizedMetadata(parameterizedType, classFieldType); + fieldMetadata = ClassDescriptionUtil.createParameterizedMetadata(parameterizedType, classFieldType); // 补充类型的子信息 Set fieldDetailMetadataSet = ClassDetailMetadataFactory.createFieldDetailMetadataSet(type, uuid); - baseMetadata.setGenericFieldMetadata(fieldDetailMetadataSet); + fieldMetadata.setGenericFieldMetadata(fieldDetailMetadataSet); } // 其他情况 else { - log.info("未知类型的处理,既不是class也不是ParameterizedType,打印出类的信息如下:{}", type.getTypeName()); + log.debug("未知类型的处理,既不是class也不是ParameterizedType,打印出类的信息如下:{}", type.getTypeName()); } return fieldMetadata; diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/ResourceDefinition.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/ResourceDefinition.java index c7a537045..0b74348a4 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/ResourceDefinition.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/pojo/resource/ResourceDefinition.java @@ -148,7 +148,7 @@ public class ResourceDefinition implements Serializable { * 接口返回结果的字段描述 */ @ChineseDescription("接口返回结果的字段描述") - private Set responseFieldDescriptions; + private FieldMetadata responseFieldDescriptions; /** * 资源添加日期 diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassTypeUtil.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassTypeUtil.java index 45ee6b968..14e9e1127 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassTypeUtil.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassTypeUtil.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.ClassUtil; import cn.stylefeng.roses.kernel.scanner.api.enums.FieldTypeEnum; import lombok.extern.slf4j.Slf4j; import sun.reflect.generics.reflectiveObjects.TypeVariableImpl; +import sun.reflect.generics.reflectiveObjects.WildcardTypeImpl; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; @@ -87,7 +88,7 @@ public class ClassTypeUtil { // 其他类型,暂不处理 else { - log.info("类型是Class,但有处理不到的情况,打印出类的信息如下:{}", clazz.toGenericString()); + log.debug("类型是Class,但有处理不到的情况,打印出类的信息如下:{}", clazz.toGenericString()); return FieldTypeEnum.OTHER; } } @@ -120,12 +121,12 @@ public class ClassTypeUtil { // 泛型的主体情况不确定,不处理 else { - log.info("泛型的主体情况不确定,不处理,打印出rawTypeClass:{}", rawTypeClass.getName()); + log.debug("泛型的主体情况不确定,不处理,打印出rawTypeClass:{}", rawTypeClass.getName()); return FieldTypeEnum.OTHER; } } else { // 泛型的主体是别的类型 - log.info("rawType为非Class类型?打印出rawType:{}", rawType.getTypeName()); + log.debug("rawType为非Class类型?打印出rawType:{}", rawType.getTypeName()); return FieldTypeEnum.OTHER; } } @@ -135,9 +136,14 @@ public class ClassTypeUtil { return FieldTypeEnum.WITH_UNKNOWN_GENERIC; } + // 带?的参数,例如解析到ResponseData中的data字段就是这种情况 + else if (type instanceof WildcardTypeImpl) { + return FieldTypeEnum.OTHER; + } + // 其他情况,既不是class也不是ParameterizedType else { - log.info("未知类型的处理,既不是class也不是ParameterizedType,打印出类的信息如下:{}", type.getTypeName()); + log.debug("未知类型的处理,既不是class也不是ParameterizedType,打印出类的信息如下:{}", type.getTypeName()); return FieldTypeEnum.OTHER; } } diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/MethodReflectUtil.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/MethodReflectUtil.java index ed58fb010..e410a3083 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/MethodReflectUtil.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/MethodReflectUtil.java @@ -31,6 +31,7 @@ import org.springframework.validation.annotation.Validated; import java.lang.annotation.Annotation; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.lang.reflect.Type; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -105,7 +106,7 @@ public class MethodReflectUtil { Method validateGroupMethod = annotation.annotationType().getMethod("value"); Object invoke = validateGroupMethod.invoke(annotation); if (invoke != null) { - Class[] result = (Class[])invoke; + Class[] result = (Class[]) invoke; if (result.length > 0) { HashSet groupClassNames = new HashSet<>(); for (Class groupClass : result) { @@ -123,43 +124,33 @@ public class MethodReflectUtil { } /** - * 获取方法第一个参数的类类型 + * 返回方法的所有类型参数信息 * * @param method 方法反射信息 * @return 方法第一个参数的class类型 * @author fengshuonan * @date 2020/12/8 18:16 */ - public static Class getMethodFirstParamClass(Method method) { + public static Type[] getMethodGenericTypes(Method method) { if (method == null) { return null; } - - if (method.getParameterCount() <= 0) { - return null; - } - - Class[] parameterTypes = method.getParameterTypes(); - if (parameterTypes.length > 0) { - return parameterTypes[0]; - } else { - return null; - } + return method.getGenericParameterTypes(); } /** - * 获取方法的返回值class类型 + * 获取方法的返回值type类型,type可能是class也可能是带泛型的类型 * * @param method 方法反射信息 * @return 方法返回值的class类型 * @author fengshuonan * @date 2020/12/8 18:20 */ - public static Class getMethodReturnClass(Method method) { + public static Type getMethodReturnType(Method method) { if (method == null) { return null; } - return method.getReturnType(); + return method.getGenericReturnType(); } } diff --git a/kernel-d-scanner/scanner-sdk-scanner/src/main/java/cn/stylefeng/roses/kernel/scanner/ApiResourceScanner.java b/kernel-d-scanner/scanner-sdk-scanner/src/main/java/cn/stylefeng/roses/kernel/scanner/ApiResourceScanner.java index f90995eea..34587ee01 100644 --- a/kernel-d-scanner/scanner-sdk-scanner/src/main/java/cn/stylefeng/roses/kernel/scanner/ApiResourceScanner.java +++ b/kernel-d-scanner/scanner-sdk-scanner/src/main/java/cn/stylefeng/roses/kernel/scanner/ApiResourceScanner.java @@ -26,6 +26,7 @@ package cn.stylefeng.roses.kernel.scanner; import cn.hutool.core.exceptions.UtilException; import cn.hutool.core.net.NetUtil; +import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.stylefeng.roses.kernel.rule.util.AopTargetUtils; import cn.stylefeng.roses.kernel.scanner.api.ResourceCollectorApi; @@ -33,11 +34,13 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; import cn.stylefeng.roses.kernel.scanner.api.constants.ScannerConstants; +import cn.stylefeng.roses.kernel.scanner.api.context.MetadataContext; import cn.stylefeng.roses.kernel.scanner.api.exception.ScannerException; +import cn.stylefeng.roses.kernel.scanner.api.factory.ClassMetadataFactory; import cn.stylefeng.roses.kernel.scanner.api.holder.IpAddrHolder; +import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.FieldMetadata; import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.ResourceDefinition; import cn.stylefeng.roses.kernel.scanner.api.pojo.scanner.ScannerProperties; -import cn.stylefeng.roses.kernel.scanner.api.util.ClassReflectUtil; import cn.stylefeng.roses.kernel.scanner.api.util.MethodReflectUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeansException; @@ -49,10 +52,8 @@ import org.springframework.web.bind.annotation.RestController; import java.lang.annotation.Annotation; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Set; +import java.lang.reflect.Type; +import java.util.*; import static cn.stylefeng.roses.kernel.scanner.api.exception.enums.ScannerExceptionEnum.ERROR_CONTROLLER_NAME; @@ -209,6 +210,7 @@ public class ApiResourceScanner implements BeanPostProcessor { // 填充模块编码,模块编码就是控制器名称截取Controller关键字前边的字符串 String className = resourceDefinition.getClassName(); + int controllerIndex = className.indexOf("Controller"); if (controllerIndex == -1) { throw new ScannerException(ERROR_CONTROLLER_NAME, controllerClass.getName()); @@ -294,18 +296,22 @@ public class ApiResourceScanner implements BeanPostProcessor { } // 填充方法返回结果字段的详细信息 - // @ApiResource注解上标识了responseClass属性,则用responseClass的值为准,否则按真实方法的返回值class - Class responseClass = invokeAnnotationMethod(apiResource, "responseClass", Class.class); - if (!Void.class.equals(responseClass)) { - resourceDefinition.setResponseFieldDescriptions(ClassReflectUtil.getClassFieldDescription(responseClass)); - } else { - Class methodReturnClass = MethodReflectUtil.getMethodReturnClass(method); - resourceDefinition.setResponseFieldDescriptions(ClassReflectUtil.getClassFieldDescription(methodReturnClass)); - } + Type returnType = MethodReflectUtil.getMethodReturnType(method); + String processReturnTypeUuid = RandomUtil.randomString(32); + resourceDefinition.setResponseFieldDescriptions(ClassMetadataFactory.beginCreateFieldMetadata(returnType, processReturnTypeUuid)); + MetadataContext.cleanContext(processReturnTypeUuid); // 填充方法的请求参数字段的详细信息 - Class firstParamClass = MethodReflectUtil.getMethodFirstParamClass(method); - resourceDefinition.setParamFieldDescriptions(ClassReflectUtil.getClassFieldDescription(firstParamClass)); + Type[] methodGenericTypes = MethodReflectUtil.getMethodGenericTypes(method); + if (methodGenericTypes.length > 0) { + LinkedHashSet fieldMetadataLinkedHashSet = new LinkedHashSet<>(); + for (Type methodGenericType : methodGenericTypes) { + String parameterContextUuid = RandomUtil.randomString(32); + fieldMetadataLinkedHashSet.add(ClassMetadataFactory.beginCreateFieldMetadata(methodGenericType, parameterContextUuid)); + MetadataContext.cleanContext(parameterContextUuid); + } + resourceDefinition.setParamFieldDescriptions(fieldMetadataLinkedHashSet); + } return resourceDefinition; } diff --git a/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/controller/SysAppController.java b/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/controller/SysAppController.java index cf687f71d..64a72a3b6 100644 --- a/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/controller/SysAppController.java +++ b/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/controller/SysAppController.java @@ -106,7 +106,7 @@ public class SysAppController { * @author fengshuonan * @date 2020/3/26 9:49 */ - @GetResource(name = "查看系统应用", path = "/sysApp/detail", responseClass = SysApp.class) + @GetResource(name = "查看系统应用", path = "/sysApp/detail") public ResponseData detail(@Validated(SysAppRequest.detail.class) SysAppRequest sysAppParam) { return new SuccessResponseData(sysAppService.detail(sysAppParam)); } @@ -117,7 +117,7 @@ public class SysAppController { * @author fengshuonan * @date 2020/4/19 14:55 */ - @GetResource(name = "系统应用列表", path = "/sysApp/list", responseClass = SysApp.class) + @GetResource(name = "系统应用列表", path = "/sysApp/list") public ResponseData list(SysAppRequest sysAppParam) { return new SuccessResponseData(sysAppService.findList(sysAppParam)); } diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuButtonController.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuButtonController.java index 7f833ae72..ab119f1e7 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuButtonController.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuButtonController.java @@ -123,7 +123,7 @@ public class SysMenuButtonController { * @author luojie * @date 2021/1/9 11:53 */ - @GetResource(name = "获取菜单按钮详情", path = "/sysMenuButton/detail", responseClass = SysMenuButton.class) + @GetResource(name = "获取菜单按钮详情", path = "/sysMenuButton/detail") public ResponseData detail(@Validated(SysMenuButtonRequest.detail.class) SysMenuButtonRequest sysMenuButtonRequest) { SysMenuButton detail = sysMenuButtonService.detail(sysMenuButtonRequest); return new SuccessResponseData(detail); @@ -136,7 +136,7 @@ public class SysMenuButtonController { * @author luojie * @date 2021/1/9 12:33 */ - @GetResource(name = "获取菜单按钮列表", path = "/sysMenuButton/pageList", responseClass = SysMenuButton.class) + @GetResource(name = "获取菜单按钮列表", path = "/sysMenuButton/pageList") public ResponseData pageList(@Validated(SysMenuButtonRequest.list.class) SysMenuButtonRequest sysMenuButtonRequest) { PageResult pageResult = sysMenuButtonService.findPage(sysMenuButtonRequest); return new SuccessResponseData(pageResult); diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuController.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuController.java index 37e33df0b..800c05721 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuController.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuController.java @@ -32,11 +32,9 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse; import cn.stylefeng.roses.kernel.system.api.pojo.menu.SysMenuRequest; -import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdMenuSelectTreeNode; import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdSysMenuDTO; import cn.stylefeng.roses.kernel.system.api.pojo.menu.layui.LayuiMenuAndButtonTreeResponse; import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest; -import cn.stylefeng.roses.kernel.system.modular.menu.entity.SysMenu; import cn.stylefeng.roses.kernel.system.modular.menu.service.SysMenuService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; @@ -100,7 +98,7 @@ public class SysMenuController { * @author fengshuonan * @date 2020/3/27 9:01 */ - @GetResource(name = "查看系统菜单", path = "/sysMenu/detail", responseClass = SysMenu.class) + @GetResource(name = "查看系统菜单", path = "/sysMenu/detail") public ResponseData detail(@Validated(SysMenuRequest.detail.class) SysMenuRequest sysMenuRequest) { return new SuccessResponseData(sysMenuService.detail(sysMenuRequest)); } @@ -111,7 +109,7 @@ public class SysMenuController { * @author fengshuonan * @date 2021/1/6 17:09 */ - @GetResource(name = "获取菜单列表(layui版本)", path = "/sysMenu/layuiList", responseClass = SysMenu.class) + @GetResource(name = "获取菜单列表(layui版本)", path = "/sysMenu/layuiList") public ResponseData layuiList(SysMenuRequest sysMenuRequest) { return new SuccessResponseData(sysMenuService.findList(sysMenuRequest)); } @@ -122,7 +120,7 @@ public class SysMenuController { * @author majianguo * @date 2021/1/9 17:10 */ - @GetResource(name = "获取系统菜单和按钮的树,用于角色分配菜单按钮(layui版本使用)", path = "/sysMenu/menuAndButtonTree", responseClass = LayuiMenuAndButtonTreeResponse.class) + @GetResource(name = "获取系统菜单和按钮的树,用于角色分配菜单按钮(layui版本使用)", path = "/sysMenu/menuAndButtonTree") public List menuAndButtonTree(SysRoleRequest sysRoleRequest) { return sysMenuService.getMenuAndButtonTree(sysRoleRequest, true); } @@ -133,7 +131,7 @@ public class SysMenuController { * @author fengshuonan * @date 2021/1/6 17:09 */ - @GetResource(name = "获取菜单的树形列表(用于选择上级菜单)(layui版本)", path = "/sysMenu/layuiSelectParentMenuTreeList", responseClass = ZTreeNode.class) + @GetResource(name = "获取菜单的树形列表(用于选择上级菜单)(layui版本)", path = "/sysMenu/layuiSelectParentMenuTreeList") public List layuiSelectParentMenuTreeList() { return sysMenuService.layuiSelectParentMenuTreeList(); } @@ -144,7 +142,7 @@ public class SysMenuController { * @author majianguo * @date 2021/1/7 15:17 */ - @GetResource(name = "获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)", path = "/sysMenu/getLeftMenusAntdv", requiredPermission = false, responseClass = AntdSysMenuDTO.class) + @GetResource(name = "获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)", path = "/sysMenu/getLeftMenusAntdv", requiredPermission = false) public ResponseData getLeftMenusAntdv(SysMenuRequest sysMenuRequest) { List sysMenuResponses = sysMenuService.getLeftMenusAntdv(sysMenuRequest); return new SuccessResponseData(sysMenuResponses); @@ -156,7 +154,7 @@ public class SysMenuController { * @author fengshuonan * @date 2020/3/20 21:23 */ - @GetResource(name = "系统菜单列表(树)", path = "/sysMenu/list", responseClass = SysMenu.class) + @GetResource(name = "系统菜单列表(树)", path = "/sysMenu/list") public ResponseData list(SysMenuRequest sysMenuRequest) { return new SuccessResponseData(sysMenuService.findListWithTreeStructure(sysMenuRequest)); } @@ -167,7 +165,7 @@ public class SysMenuController { * @author fengshuonan * @date 2020/3/27 15:55 */ - @GetResource(name = "获取系统菜单树,用于新增,编辑时选择上级节点", path = "/sysMenu/tree", responseClass = AntdMenuSelectTreeNode.class) + @GetResource(name = "获取系统菜单树,用于新增,编辑时选择上级节点", path = "/sysMenu/tree") public ResponseData tree(SysMenuRequest sysMenuRequest) { return new SuccessResponseData(sysMenuService.tree(sysMenuRequest)); } @@ -178,7 +176,7 @@ public class SysMenuController { * @author majianguo * @date 2021/1/9 17:10 */ - @GetResource(name = "获取系统菜单和按钮的树,用于角色分配菜单按钮(antd vue版本使用)", path = "/sysMenu/menuAndButtonTreeChildren", responseClass = LayuiMenuAndButtonTreeResponse.class) + @GetResource(name = "获取系统菜单和按钮的树,用于角色分配菜单按钮(antd vue版本使用)", path = "/sysMenu/menuAndButtonTreeChildren") public ResponseData menuAndButtonTreeChildren(SysRoleRequest sysRoleRequest) { List treeResponseList = sysMenuService.getMenuAndButtonTree(sysRoleRequest, false); return new SuccessResponseData(treeResponseList); @@ -190,7 +188,7 @@ public class SysMenuController { * @author fengshuonan * @date 2021/8/10 22:21 */ - @GetResource(name = "新版角色分配菜单和按钮界面使用的接口(v2)", path = "/sysMenu/menuAndButtonTreeChildrenV2", responseClass = LayuiMenuAndButtonTreeResponse.class) + @GetResource(name = "新版角色分配菜单和按钮界面使用的接口(v2)", path = "/sysMenu/menuAndButtonTreeChildrenV2") public ResponseData menuAndButtonTreeChildrenV2(SysRoleRequest sysRoleRequest) { List treeResponseList = sysMenuService.getRoleMenuAndButtons(sysRoleRequest); return new SuccessResponseData(treeResponseList); diff --git a/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/system/modular/notice/controller/SysNoticeController.java b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/system/modular/notice/controller/SysNoticeController.java index 219da87bb..d94e57734 100644 --- a/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/system/modular/notice/controller/SysNoticeController.java +++ b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/system/modular/notice/controller/SysNoticeController.java @@ -30,7 +30,6 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; import cn.stylefeng.roses.kernel.system.api.pojo.notice.SysNoticeRequest; -import cn.stylefeng.roses.kernel.system.modular.notice.entity.SysNotice; import cn.stylefeng.roses.kernel.system.modular.notice.service.SysNoticeService; import cn.stylefeng.roses.kernel.system.modular.notice.wrapper.NoticeWrapper; import cn.stylefeng.roses.kernel.wrapper.api.annotation.Wrapper; @@ -95,7 +94,7 @@ public class SysNoticeController { * @author liuhanqing * @date 2021/1/9 9:49 */ - @GetResource(name = "查看通知管理", path = "/sysNotice/detail", responseClass = SysNotice.class) + @GetResource(name = "查看通知管理", path = "/sysNotice/detail") public ResponseData detail(@Validated(SysNoticeRequest.detail.class) SysNoticeRequest sysNoticeParam) { return new SuccessResponseData(sysNoticeService.detail(sysNoticeParam)); } @@ -106,7 +105,7 @@ public class SysNoticeController { * @author liuhanqing * @date 2021/1/9 21:23 */ - @GetResource(name = "查询通知管理", path = "/sysNotice/page", responseClass = SysNotice.class) + @GetResource(name = "查询通知管理", path = "/sysNotice/page") @Wrapper(NoticeWrapper.class) public ResponseData page(SysNoticeRequest sysNoticeParam) { return new SuccessResponseData(sysNoticeService.findPage(sysNoticeParam)); @@ -118,7 +117,7 @@ public class SysNoticeController { * @author liuhanqing * @date 2021/1/9 14:55 */ - @GetResource(name = "通知管理列表", path = "/sysNotice/list", responseClass = SysNotice.class) + @GetResource(name = "通知管理列表", path = "/sysNotice/list") public ResponseData list(SysNoticeRequest sysNoticeParam) { return new SuccessResponseData(sysNoticeService.findList(sysNoticeParam)); } diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrganizationController.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrganizationController.java index 17d954c4e..542fab7a2 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrganizationController.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrganizationController.java @@ -31,8 +31,6 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; import cn.stylefeng.roses.kernel.system.api.pojo.organization.HrOrganizationRequest; -import cn.stylefeng.roses.kernel.system.api.pojo.organization.OrganizationTreeNode; -import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrOrganization; import cn.stylefeng.roses.kernel.system.modular.organization.service.HrOrganizationService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; @@ -108,7 +106,7 @@ public class HrOrganizationController { * @author fengshuonan * @date 2020/11/04 11:05 */ - @GetResource(name = "查看详情系统组织机构", path = "/hrOrganization/detail", responseClass = HrOrganization.class) + @GetResource(name = "查看详情系统组织机构", path = "/hrOrganization/detail") public ResponseData detail(@Validated(HrOrganizationRequest.detail.class) HrOrganizationRequest hrOrganizationRequest) { return new SuccessResponseData(hrOrganizationService.detail(hrOrganizationRequest)); } @@ -119,7 +117,7 @@ public class HrOrganizationController { * @author fengshuonan * @date 2020/11/04 11:05 */ - @GetResource(name = "分页查询系统组织机构", path = "/hrOrganization/page", responseClass = HrOrganization.class) + @GetResource(name = "分页查询系统组织机构", path = "/hrOrganization/page") public ResponseData page(HrOrganizationRequest hrOrganizationRequest) { return new SuccessResponseData(hrOrganizationService.findPage(hrOrganizationRequest)); } @@ -130,7 +128,7 @@ public class HrOrganizationController { * @author fengshuonan * @date 2020/11/04 11:05 */ - @GetResource(name = "获取全部系统组织机构", path = "/hrOrganization/list", responseClass = HrOrganization.class) + @GetResource(name = "获取全部系统组织机构", path = "/hrOrganization/list") public ResponseData list(HrOrganizationRequest hrOrganizationRequest) { return new SuccessResponseData(hrOrganizationService.findList(hrOrganizationRequest)); } @@ -141,7 +139,7 @@ public class HrOrganizationController { * @author chenjinlong * @date 2021/01/05 15:55 */ - @GetResource(name = "获取全部系统组织机构树", path = "/hrOrganization/tree", responseClass = OrganizationTreeNode.class) + @GetResource(name = "获取全部系统组织机构树", path = "/hrOrganization/tree") public ResponseData organizationTree(HrOrganizationRequest hrOrganizationRequest) { return new SuccessResponseData(hrOrganizationService.organizationTree(hrOrganizationRequest)); } @@ -152,7 +150,7 @@ public class HrOrganizationController { * @author fengshuonan * @date 2021/3/19 22:20 */ - @GetResource(name = "获取组织机构树(用于用户绑定数据范围)", path = "/hrOrganization/userBindOrgScope", responseClass = OrganizationTreeNode.class) + @GetResource(name = "获取组织机构树(用于用户绑定数据范围)", path = "/hrOrganization/userBindOrgScope") public ResponseData userBindOrgScope(@Validated(HrOrganizationRequest.userBindOrgScope.class) HrOrganizationRequest hrOrganizationRequest) { return new SuccessResponseData(hrOrganizationService.organizationTree(hrOrganizationRequest)); } @@ -163,7 +161,7 @@ public class HrOrganizationController { * @author fengshuonan * @date 2021/1/9 18:37 */ - @GetResource(name = "Layui版本--获取组织机构树(用于角色配置数据范围类型,并且数据范围类型是指定组织机构时)", path = "/hrOrganization/roleBindOrgScope", responseClass = ZTreeNode.class) + @GetResource(name = "Layui版本--获取组织机构树(用于角色配置数据范围类型,并且数据范围类型是指定组织机构时)", path = "/hrOrganization/roleBindOrgScope") public List roleBindOrgScope(@Validated(HrOrganizationRequest.roleBindOrgScope.class) HrOrganizationRequest hrOrganizationRequest) { return hrOrganizationService.orgZTree(hrOrganizationRequest, false); } @@ -174,7 +172,7 @@ public class HrOrganizationController { * @author fengshuonan * @date 2021/1/9 18:37 */ - @GetResource(name = "AntdVue版本--获取组织机构树(用于角色配置数据范围类型,并且数据范围类型是指定组织机构时)", path = "/hrOrganization/roleBindOrgScopeAntdv", responseClass = ZTreeNode.class) + @GetResource(name = "AntdVue版本--获取组织机构树(用于角色配置数据范围类型,并且数据范围类型是指定组织机构时)", path = "/hrOrganization/roleBindOrgScopeAntdv") public ResponseData roleBindOrgScopeAntdv(@Validated(HrOrganizationRequest.roleBindOrgScope.class) HrOrganizationRequest hrOrganizationRequest) { List zTreeNodes = hrOrganizationService.orgZTree(hrOrganizationRequest, true); return new SuccessResponseData(zTreeNodes); diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrPositionController.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrPositionController.java index 6101cd653..4de99d1fe 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrPositionController.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrPositionController.java @@ -31,7 +31,6 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; import cn.stylefeng.roses.kernel.system.api.pojo.organization.HrPositionRequest; -import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrPosition; import cn.stylefeng.roses.kernel.system.modular.organization.service.HrPositionService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; @@ -118,7 +117,7 @@ public class HrPositionController { * @author chenjinlong * @date 2020/11/04 11:07 */ - @GetResource(name = "查看详情系统职位", path = "/hrPosition/detail", responseClass = HrPosition.class) + @GetResource(name = "查看详情系统职位", path = "/hrPosition/detail") public ResponseData detail(@Validated(HrPositionRequest.detail.class) HrPositionRequest hrPositionRequest) { return new SuccessResponseData(hrPositionService.detail(hrPositionRequest)); } @@ -129,7 +128,7 @@ public class HrPositionController { * @author chenjinlong * @date 2020/11/04 11:07 */ - @GetResource(name = "分页查询系统职位", path = "/hrPosition/page", responseClass = HrPosition.class) + @GetResource(name = "分页查询系统职位", path = "/hrPosition/page") public ResponseData page(HrPositionRequest hrPositionRequest) { return new SuccessResponseData(hrPositionService.findPage(hrPositionRequest)); } @@ -140,7 +139,7 @@ public class HrPositionController { * @author chenjinlong * @date 2020/11/04 11:07 */ - @GetResource(name = "获取全部系统职位", path = "/hrPosition/list", responseClass = HrPosition.class) + @GetResource(name = "获取全部系统职位", path = "/hrPosition/list") public ResponseData list(HrPositionRequest hrPositionRequest) { return new SuccessResponseData(hrPositionService.findList(hrPositionRequest)); } diff --git a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/controller/ResourceController.java b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/controller/ResourceController.java index 3344648b0..f375de67c 100644 --- a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/controller/ResourceController.java +++ b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/controller/ResourceController.java @@ -58,7 +58,7 @@ public class ResourceController { * @author fengshuonan * @date 2020/11/24 19:47 */ - @GetResource(name = "获取资源列表", path = "/resource/pageList", responseClass = SysResource.class) + @GetResource(name = "获取资源列表", path = "/resource/pageList") public ResponseData pageList(ResourceRequest resourceRequest) { PageResult result = this.sysResourceService.findPage(resourceRequest); return new SuccessResponseData(result); @@ -70,7 +70,7 @@ public class ResourceController { * @author fengshuonan * @date 2020/11/24 19:51 */ - @GetResource(name = "获取资源下拉列表", path = "/resource/getMenuResourceList", responseClass = SysResource.class) + @GetResource(name = "获取资源下拉列表", path = "/resource/getMenuResourceList") public ResponseData getMenuResourceList(ResourceRequest resourceRequest) { List menuResourceList = this.sysResourceService.findList(resourceRequest); return new SuccessResponseData(menuResourceList); @@ -82,7 +82,7 @@ public class ResourceController { * @author majianguo * @date 2021/1/9 15:07 */ - @GetResource(name = "Layui版本--获取资源树列表,用于角色分配接口权限", path = "/resource/getRoleResourceTree", responseClass = ResourceTreeNode.class) + @GetResource(name = "Layui版本--获取资源树列表,用于角色分配接口权限", path = "/resource/getRoleResourceTree") public List getLateralTree(SysRoleRequest sysRoleRequest) { return sysResourceService.getRoleResourceTree(sysRoleRequest.getRoleId(), false); } @@ -93,7 +93,7 @@ public class ResourceController { * @author majianguo * @date 2021/1/9 15:07 */ - @GetResource(name = "AntdVue版本--获取资源树列表,用于角色分配接口权限", path = "/resource/getRoleResourceTreeAntdv", responseClass = ResourceTreeNode.class) + @GetResource(name = "AntdVue版本--获取资源树列表,用于角色分配接口权限", path = "/resource/getRoleResourceTreeAntdv") public ResponseData getLateralTreeChildren(SysRoleRequest sysRoleRequest) { List resourceLateralTree = sysResourceService.getRoleResourceTree(sysRoleRequest.getRoleId(), true); return new SuccessResponseData(resourceLateralTree); diff --git a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/factory/ResourceFactory.java b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/factory/ResourceFactory.java index 7ae2b2bf1..a825d9d71 100644 --- a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/factory/ResourceFactory.java +++ b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/system/modular/resource/factory/ResourceFactory.java @@ -130,7 +130,7 @@ public class ResourceFactory { // 转化接口返回结果的字段描述 if (ObjectUtil.isNotEmpty(sysResource.getResponseFieldDescriptions())) { - resourceDefinition.setResponseFieldDescriptions(JSON.parseObject(sysResource.getResponseFieldDescriptions(), Set.class, Feature.SupportAutoType)); + resourceDefinition.setResponseFieldDescriptions(JSON.parseObject(sysResource.getResponseFieldDescriptions(), FieldMetadata.class, Feature.SupportAutoType)); } return resourceDefinition; @@ -149,10 +149,12 @@ public class ResourceFactory { // 接口的请求参数信息 Set paramFieldDescriptions = resourceDefinition.getParamFieldDescriptions(); - fillDetailMessage(validateGroups, paramFieldDescriptions); + for (FieldMetadata fieldMetadata : paramFieldDescriptions) { + fillDetailMessage(validateGroups, fieldMetadata); + } // 接口的响应参数信息 - Set responseFieldDescriptions = resourceDefinition.getResponseFieldDescriptions(); + FieldMetadata responseFieldDescriptions = resourceDefinition.getResponseFieldDescriptions(); fillDetailMessage(validateGroups, responseFieldDescriptions); return resourceDefinition; @@ -164,33 +166,32 @@ public class ResourceFactory { * @author fengshuonan * @date 2021/1/16 18:00 */ - public static Set fillDetailMessage(Set validateGroups, Set fieldMetadataSet) { + public static void fillDetailMessage(Set validateGroups, FieldMetadata fieldMetadata) { if (validateGroups == null || validateGroups.isEmpty()) { - return fieldMetadataSet; + return; } - if (fieldMetadataSet == null || fieldMetadataSet.isEmpty()) { - return fieldMetadataSet; + if (fieldMetadata == null) { + return; } - for (FieldMetadata fieldMetadata : fieldMetadataSet) { - StringBuilder finalValidateMessages = new StringBuilder(); - Map> groupAnnotations = fieldMetadata.getGroupValidationMessage(); - if (groupAnnotations != null) { - for (String validateGroup : validateGroups) { - Set validateMessage = groupAnnotations.get(validateGroup); - if (validateMessage != null && !validateMessage.isEmpty()) { - finalValidateMessages.append(StrUtil.join(",", validateMessage)); - } + StringBuilder finalValidateMessages = new StringBuilder(); + Map> groupAnnotations = fieldMetadata.getGroupValidationMessage(); + if (groupAnnotations != null) { + for (String validateGroup : validateGroups) { + Set validateMessage = groupAnnotations.get(validateGroup); + if (validateMessage != null && !validateMessage.isEmpty()) { + finalValidateMessages.append(StrUtil.join(",", validateMessage)); } } - fieldMetadata.setValidationMessages(finalValidateMessages.toString()); + } + fieldMetadata.setValidationMessages(finalValidateMessages.toString()); - // 递归填充子类型的详细提示信息 - if (fieldMetadata.getGenericFieldMetadata() != null && !fieldMetadata.getGenericFieldMetadata().isEmpty()) { - fillDetailMessage(validateGroups, fieldMetadata.getGenericFieldMetadata()); + // 递归填充子类型的详细提示信息 + if (fieldMetadata.getGenericFieldMetadata() != null && !fieldMetadata.getGenericFieldMetadata().isEmpty()) { + for (FieldMetadata metadata : fieldMetadata.getGenericFieldMetadata()) { + fillDetailMessage(validateGroups, metadata); } } - return fieldMetadataSet; } /** @@ -209,7 +210,7 @@ public class ResourceFactory { for (ResourceDefinition sysResource : sysResourceList) { String url = sysResource.getUrl(); - result.put(url,sysResource); + result.put(url, sysResource); } return result; diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/controller/SysRoleController.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/controller/SysRoleController.java index cb81b6cda..d69af1d01 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/controller/SysRoleController.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/controller/SysRoleController.java @@ -25,15 +25,12 @@ package cn.stylefeng.roses.kernel.system.modular.role.controller; import cn.hutool.core.collection.ListUtil; -import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict; import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; -import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO; import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest; -import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRole; import cn.stylefeng.roses.kernel.system.modular.role.service.SysRoleResourceService; import cn.stylefeng.roses.kernel.system.modular.role.service.SysRoleService; import org.springframework.validation.annotation.Validated; @@ -100,7 +97,7 @@ public class SysRoleController { * @author majianguo * @date 2020/11/5 上午10:50 */ - @GetResource(name = "角色查看", path = "/sysRole/detail", responseClass = SysRoleDTO.class) + @GetResource(name = "角色查看", path = "/sysRole/detail") public ResponseData detail(@Validated(SysRoleRequest.detail.class) SysRoleRequest sysRoleRequest) { return new SuccessResponseData(sysRoleService.detail(sysRoleRequest)); } @@ -111,7 +108,7 @@ public class SysRoleController { * @author majianguo * @date 2020/11/5 上午10:19 */ - @GetResource(name = "查询角色", path = "/sysRole/page", responseClass = SysRole.class) + @GetResource(name = "查询角色", path = "/sysRole/page") public ResponseData page(SysRoleRequest sysRoleRequest) { return new SuccessResponseData(sysRoleService.findPage(sysRoleRequest)); } @@ -194,7 +191,7 @@ public class SysRoleController { * @author majianguo * @date 2020/11/6 13:49 */ - @GetResource(name = "角色下拉", path = "/sysRole/dropDown", responseClass = SimpleDict.class) + @GetResource(name = "角色下拉", path = "/sysRole/dropDown") public ResponseData dropDown() { return new SuccessResponseData(sysRoleService.dropDown()); } @@ -205,7 +202,7 @@ public class SysRoleController { * @author majianguo * @date 2020/11/5 上午10:58 */ - @GetResource(name = "角色拥有菜单", path = "/sysRole/getRoleMenus", responseClass = Long.class) + @GetResource(name = "角色拥有菜单", path = "/sysRole/getRoleMenus") public ResponseData getRoleMenus(@Validated(SysRoleRequest.detail.class) SysRoleRequest sysRoleRequest) { Long roleId = sysRoleRequest.getRoleId(); return new SuccessResponseData(sysRoleService.getMenuIdsByRoleIds(ListUtil.toList(roleId))); @@ -217,7 +214,7 @@ public class SysRoleController { * @author majianguo * @date 2020/11/5 上午10:59 */ - @GetResource(name = "角色拥有数据", path = "/sysRole/getRoleDataScope", responseClass = Long.class) + @GetResource(name = "角色拥有数据", path = "/sysRole/getRoleDataScope") public ResponseData getRoleDataScope(@Validated(SysRoleRequest.detail.class) SysRoleRequest sysRoleRequest) { return new SuccessResponseData(sysRoleService.getRoleDataScope(sysRoleRequest)); } diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/KaptchaController.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/KaptchaController.java index 1adf03f3f..e52c95236 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/KaptchaController.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/KaptchaController.java @@ -60,9 +60,9 @@ public class KaptchaController { * @author fengshuonan * @date 2021/7/5 12:00 */ - @GetResource(name = "获取图形验证码", path = "/captcha", requiredPermission = false, requiredLogin = false, responseClass = ImageCaptcha.class) - public ResponseData captcha() { - return new SuccessResponseData(captchaApi.captcha()); + @GetResource(name = "获取图形验证码", path = "/captcha", requiredPermission = false, requiredLogin = false) + public ResponseData captcha() { + return new SuccessResponseData<>(captchaApi.captcha()); } /** @@ -71,12 +71,12 @@ public class KaptchaController { * @author fengshuonan * @date 2021/7/5 12:00 */ - @GetResource(name = "获取图形验证码", path = "/dragCaptcha", requiredPermission = false, requiredLogin = false, responseClass = DragCaptchaImageDTO.class) - public ResponseData dragCaptcha() { + @GetResource(name = "获取图形验证码", path = "/dragCaptcha", requiredPermission = false, requiredLogin = false) + public ResponseData dragCaptcha() { DragCaptchaImageDTO captcha = dragCaptchaApi.createCaptcha(); captcha.setSrcImage(BASE64_IMG_PREFIX + captcha.getSrcImage()); captcha.setCutImage(BASE64_IMG_PREFIX + captcha.getCutImage()); - return new SuccessResponseData(captcha); + return new SuccessResponseData<>(captcha); } } diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/LoginController.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/LoginController.java index 53a631805..8e7b58a4b 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/LoginController.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/LoginController.java @@ -71,11 +71,11 @@ public class LoginController { * @author fengshuonan * @date 2021/3/17 17:23 */ - @PostResource(name = "登陆", path = "/login", requiredLogin = false, requiredPermission = false, responseClass = String.class) - public ResponseData login(@RequestBody @Validated LoginRequest loginRequest) { + @PostResource(name = "登陆", path = "/login", requiredLogin = false, requiredPermission = false) + public ResponseData login(@RequestBody @Validated LoginRequest loginRequest) { loginRequest.setCreateCookie(true); LoginResponse loginResponse = authServiceApi.login(loginRequest); - return new SuccessResponseData(loginResponse.getToken()); + return new SuccessResponseData<>(loginResponse.getToken()); } /** @@ -84,11 +84,11 @@ public class LoginController { * @author fengshuonan * @date 2021/3/17 17:23 */ - @PostResource(name = "登陆(分离版)", path = "/loginApi", requiredLogin = false, requiredPermission = false, responseClass = LoginResponse.class) - public ResponseData loginApi(@RequestBody @Validated LoginRequest loginRequest) { + @PostResource(name = "登陆(分离版)", path = "/loginApi", requiredLogin = false, requiredPermission = false) + public ResponseData loginApi(@RequestBody @Validated LoginRequest loginRequest) { loginRequest.setCreateCookie(false); LoginResponse loginResponse = authServiceApi.login(loginRequest); - return new SuccessResponseData(loginResponse); + return new SuccessResponseData<>(loginResponse); } /** @@ -97,10 +97,10 @@ public class LoginController { * @author fengshuonan * @date 2021/5/25 22:36 */ - @PostResource(name = "适用于单点登录", path = "/loginWithToken", requiredLogin = false, requiredPermission = false, responseClass = String.class) - public ResponseData loginWithToken(@RequestBody @Validated LoginWithTokenRequest loginWithTokenRequest) { + @PostResource(name = "适用于单点登录", path = "/loginWithToken", requiredLogin = false, requiredPermission = false) + public ResponseData loginWithToken(@RequestBody @Validated LoginWithTokenRequest loginWithTokenRequest) { LoginResponse loginResponse = authServiceApi.LoginWithToken(loginWithTokenRequest); - return new SuccessResponseData(loginResponse.getToken()); + return new SuccessResponseData<>(loginResponse.getToken()); } /** @@ -110,9 +110,9 @@ public class LoginController { * @date 2021/3/17 17:24 */ @ApiResource(name = "登出", path = "/logoutAction", requiredPermission = false, method = {RequestMethod.GET, RequestMethod.POST}) - public ResponseData logoutAction() { + public ResponseData logoutAction() { authServiceApi.logout(); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } /** @@ -121,14 +121,14 @@ public class LoginController { * @author fengshuonan * @date 2021/3/17 17:37 */ - @GetResource(name = "获取当前用户的用户信息", path = "/getCurrentLoginUserInfo", requiredPermission = false, responseClass = CurrentUserInfoResponse.class) - public ResponseData getCurrentLoginUserInfo() { + @GetResource(name = "获取当前用户的用户信息", path = "/getCurrentLoginUserInfo", requiredPermission = false) + public ResponseData getCurrentLoginUserInfo() { LoginUser loginUser = LoginContext.me().getLoginUser(); // 转化返回结果 CurrentUserInfoResponse currentUserInfoResponse = UserLoginInfoFactory.parseUserInfo(loginUser); - return new SuccessResponseData(currentUserInfoResponse); + return new SuccessResponseData<>(currentUserInfoResponse); } /** @@ -138,9 +138,9 @@ public class LoginController { * @date 2021/6/18 15:26 */ @PostResource(name = "校验token是否正确", path = "/validateToken", requiredPermission = false, requiredLogin = false) - public ResponseData validateToken(@RequestBody @Valid ValidateTokenRequest validateTokenRequest) { + public ResponseData validateToken(@RequestBody @Valid ValidateTokenRequest validateTokenRequest) { boolean haveSessionFlag = sessionManagerApi.haveSession(validateTokenRequest.getToken()); - return new SuccessResponseData(haveSessionFlag); + return new SuccessResponseData<>(haveSessionFlag); } } diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/OnlineUserController.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/OnlineUserController.java index 5d4a6d1ce..06eccc117 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/OnlineUserController.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/OnlineUserController.java @@ -41,6 +41,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.List; /** * 在线用户管理 @@ -64,9 +65,9 @@ public class OnlineUserController { * @author fengshuonan * @date 2021/1/11 22:53 */ - @GetResource(name = "当前在线用户列表", path = "/sysUser/onlineUserList", responseClass = OnlineUserDTO.class) - public ResponseData onlineUserList(OnlineUserRequest onlineUserRequest) { - return new SuccessResponseData(sysUserService.onlineUserList(onlineUserRequest)); + @GetResource(name = "当前在线用户列表", path = "/sysUser/onlineUserList") + public ResponseData> onlineUserList(OnlineUserRequest onlineUserRequest) { + return new SuccessResponseData<>(sysUserService.onlineUserList(onlineUserRequest)); } /** @@ -76,12 +77,12 @@ public class OnlineUserController { * @date 2021/1/11 22:53 */ @PostResource(name = "踢掉在线用户", path = "/sysUser/removeSession") - public ResponseData removeSession(@Valid @RequestBody OnlineUserRequest onlineUserRequest) { + public ResponseData removeSession(@Valid @RequestBody OnlineUserRequest onlineUserRequest) { if (DemoConfigExpander.getDemoEnvFlag()) { throw new DemoException(DemoExceptionEnum.DEMO_OPERATE); } sessionManagerApi.removeSession(onlineUserRequest.getToken()); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } } diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/PersonalInfoController.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/PersonalInfoController.java index edcc6392a..a82f94242 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/PersonalInfoController.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/PersonalInfoController.java @@ -56,9 +56,9 @@ public class PersonalInfoController { * @date 2020/11/6 13:50 */ @PostResource(name = "个人信息_更新个人信息", path = "/sysUser/updateInfo", requiredPermission = false) - public ResponseData updateInfo(@RequestBody @Validated(SysUserRequest.updateInfo.class) SysUserRequest sysUserRequest) { + public ResponseData updateInfo(@RequestBody @Validated(SysUserRequest.updateInfo.class) SysUserRequest sysUserRequest) { sysUserService.editInfo(sysUserRequest); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } /** @@ -68,9 +68,9 @@ public class PersonalInfoController { * @date 2020/11/6 13:50 */ @PostResource(name = "个人信息_修改密码", path = "/sysUser/updatePassword", requiredPermission = false) - public ResponseData updatePwd(@RequestBody @Validated(SysUserRequest.updatePwd.class) SysUserRequest sysUserRequest) { + public ResponseData updatePwd(@RequestBody @Validated(SysUserRequest.updatePwd.class) SysUserRequest sysUserRequest) { sysUserService.editPassword(sysUserRequest); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } /** @@ -80,9 +80,9 @@ public class PersonalInfoController { * @date 2020/11/6 13:48 */ @PostResource(name = "个人信息_修改头像", path = "/sysUser/updateAvatar", requiredPermission = false) - public ResponseData updateAvatar(@RequestBody @Validated(SysUserRequest.updateAvatar.class) SysUserRequest sysUserRequest) { + public ResponseData updateAvatar(@RequestBody @Validated(SysUserRequest.updateAvatar.class) SysUserRequest sysUserRequest) { sysUserService.editAvatar(sysUserRequest); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } } diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/SysUserController.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/SysUserController.java index 3b86b380c..a255ea6a7 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/SysUserController.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/controller/SysUserController.java @@ -26,6 +26,8 @@ package cn.stylefeng.roses.kernel.system.modular.user.controller; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; +import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; @@ -35,6 +37,7 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserDTO; import cn.stylefeng.roses.kernel.system.api.pojo.user.UserSelectTreeNode; import cn.stylefeng.roses.kernel.system.api.pojo.user.request.SysUserRequest; +import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserRole; import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserRoleService; import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService; import org.springframework.validation.annotation.Validated; @@ -68,9 +71,9 @@ public class SysUserController { * @date 2020/11/6 13:50 */ @PostResource(name = "系统用户_增加", path = "/sysUser/add") - public ResponseData add(@RequestBody @Validated(BaseRequest.add.class) SysUserRequest sysUserRequest) { + public ResponseData add(@RequestBody @Validated(BaseRequest.add.class) SysUserRequest sysUserRequest) { sysUserService.add(sysUserRequest); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } /** @@ -80,9 +83,9 @@ public class SysUserController { * @date 2020/11/6 13:50 */ @PostResource(name = "系统用户_删除", path = "/sysUser/delete") - public ResponseData delete(@RequestBody @Validated(SysUserRequest.delete.class) SysUserRequest sysUserRequest) { + public ResponseData delete(@RequestBody @Validated(SysUserRequest.delete.class) SysUserRequest sysUserRequest) { sysUserService.del(sysUserRequest); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } /** @@ -92,9 +95,9 @@ public class SysUserController { * @date 2021/4/7 16:12 */ @PostResource(name = "系统用户_批量删除系统用户", path = "/sysUser/batchDelete") - public ResponseData batchDelete(@RequestBody @Validated(SysUserRequest.batchDelete.class) SysUserRequest sysUserRequest) { + public ResponseData batchDelete(@RequestBody @Validated(SysUserRequest.batchDelete.class) SysUserRequest sysUserRequest) { sysUserService.batchDelete(sysUserRequest); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } /** @@ -104,9 +107,9 @@ public class SysUserController { * @date 2020/11/6 13:50 */ @PostResource(name = "系统用户_编辑", path = "/sysUser/edit") - public ResponseData edit(@RequestBody @Validated(SysUserRequest.edit.class) SysUserRequest sysUserRequest) { + public ResponseData edit(@RequestBody @Validated(SysUserRequest.edit.class) SysUserRequest sysUserRequest) { sysUserService.edit(sysUserRequest); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } /** @@ -116,9 +119,9 @@ public class SysUserController { * @date 2020/11/6 13:50 */ @PostResource(name = "系统用户_修改状态", path = "/sysUser/changeStatus") - public ResponseData changeStatus(@RequestBody @Validated(SysUserRequest.changeStatus.class) SysUserRequest sysUserRequest) { + public ResponseData changeStatus(@RequestBody @Validated(SysUserRequest.changeStatus.class) SysUserRequest sysUserRequest) { sysUserService.editStatus(sysUserRequest); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } /** @@ -128,9 +131,9 @@ public class SysUserController { * @date 2020/11/6 13:48 */ @PostResource(name = "系统用户_重置密码", path = "/sysUser/resetPwd") - public ResponseData resetPwd(@RequestBody @Validated(SysUserRequest.resetPwd.class) SysUserRequest sysUserRequest) { + public ResponseData resetPwd(@RequestBody @Validated(SysUserRequest.resetPwd.class) SysUserRequest sysUserRequest) { sysUserService.resetPassword(sysUserRequest); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } /** @@ -140,9 +143,9 @@ public class SysUserController { * @date 2020/11/6 13:50 */ @PostResource(name = "系统用户_授权角色", path = "/sysUser/grantRole") - public ResponseData grantRole(@RequestBody @Validated(SysUserRequest.grantRole.class) SysUserRequest sysUserRequest) { + public ResponseData grantRole(@RequestBody @Validated(SysUserRequest.grantRole.class) SysUserRequest sysUserRequest) { sysUserService.grantRole(sysUserRequest); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } /** @@ -152,9 +155,9 @@ public class SysUserController { * @date 2020/11/6 13:50 */ @PostResource(name = "系统用户_授权数据", path = "/sysUser/grantData") - public ResponseData grantData(@RequestBody @Validated(SysUserRequest.grantData.class) SysUserRequest sysUserRequest) { + public ResponseData grantData(@RequestBody @Validated(SysUserRequest.grantData.class) SysUserRequest sysUserRequest) { sysUserService.grantData(sysUserRequest); - return new SuccessResponseData(); + return new SuccessResponseData<>(); } /** @@ -163,9 +166,9 @@ public class SysUserController { * @author luojie * @date 2020/11/6 13:50 */ - @GetResource(name = "系统用户_查看", path = "/sysUser/detail", responseClass = SysUserDTO.class) - public ResponseData detail(@Validated(SysUserRequest.detail.class) SysUserRequest sysUserRequest) { - return new SuccessResponseData(sysUserService.detail(sysUserRequest)); + @GetResource(name = "系统用户_查看", path = "/sysUser/detail") + public ResponseData detail(@Validated(SysUserRequest.detail.class) SysUserRequest sysUserRequest) { + return new SuccessResponseData<>(sysUserService.detail(sysUserRequest)); } /** @@ -174,13 +177,13 @@ public class SysUserController { * @author fengshuonan * @date 2021/1/1 19:01 */ - @GetResource(name = "获取当前登录用户的信息", path = "/sysUser/currentUserInfo", requiredPermission = false,responseClass = SysUserDTO.class) - public ResponseData currentUserInfo() { + @GetResource(name = "获取当前登录用户的信息", path = "/sysUser/currentUserInfo", requiredPermission = false) + public ResponseData currentUserInfo() { LoginUser loginUser = LoginContext.me().getLoginUser(); SysUserRequest sysUserRequest = new SysUserRequest(); sysUserRequest.setUserId(loginUser.getUserId()); - return new SuccessResponseData(sysUserService.detail(sysUserRequest)); + return new SuccessResponseData<>(sysUserService.detail(sysUserRequest)); } /** @@ -189,9 +192,9 @@ public class SysUserController { * @author luojie * @date 2020/11/6 13:49 */ - @GetResource(name = "系统用户_查询", path = "/sysUser/page",responseClass = SysUserDTO.class) - public ResponseData page(SysUserRequest sysUserRequest) { - return new SuccessResponseData(sysUserService.findPage(sysUserRequest)); + @GetResource(name = "系统用户_查询", path = "/sysUser/page") + public ResponseData> page(SysUserRequest sysUserRequest) { + return new SuccessResponseData<>(sysUserService.findPage(sysUserRequest)); } /** @@ -211,9 +214,9 @@ public class SysUserController { * @author liuhanqing * @date 2021/1/15 8:28 */ - @GetResource(name = "获取用户选择树数据(用在系统通知,选择发送人的时候)", path = "/sysUser/getUserSelectTree",responseClass = UserSelectTreeNode.class) - public ResponseData getUserTree() { - return new SuccessResponseData(this.sysUserService.userSelectTree(new SysUserRequest())); + @GetResource(name = "获取用户选择树数据(用在系统通知,选择发送人的时候)", path = "/sysUser/getUserSelectTree") + public ResponseData> getUserTree() { + return new SuccessResponseData<>(this.sysUserService.userSelectTree(new SysUserRequest())); } /** @@ -223,9 +226,9 @@ public class SysUserController { * @date 2020/11/6 13:51 */ @GetResource(name = "系统用户_获取用户数据范围列表", path = "/sysUser/getUserDataScope") - public ResponseData ownData(@Validated(SysUserRequest.detail.class) SysUserRequest sysUserRequest) { + public ResponseData> ownData(@Validated(SysUserRequest.detail.class) SysUserRequest sysUserRequest) { List userBindDataScope = sysUserService.getUserBindDataScope(sysUserRequest.getUserId()); - return new SuccessResponseData(userBindDataScope); + return new SuccessResponseData<>(userBindDataScope); } /** @@ -235,9 +238,9 @@ public class SysUserController { * @date 2020/11/6 13:50 */ @GetResource(name = "系统用户_获取用户的角色列表", path = "/sysUser/getUserRoles") - public ResponseData ownRole(@Validated(SysUserRequest.detail.class) SysUserRequest sysUserRequest) { + public ResponseData> ownRole(@Validated(SysUserRequest.detail.class) SysUserRequest sysUserRequest) { Long userId = sysUserRequest.getUserId(); - return new SuccessResponseData(sysUserRoleService.findListByUserId(userId)); + return new SuccessResponseData<>(sysUserRoleService.findListByUserId(userId)); } /** @@ -249,8 +252,8 @@ public class SysUserController { * @date 2020/11/6 09:49 */ @GetResource(name = "系统用户_选择器", path = "/sysUser/selector") - public ResponseData selector(SysUserRequest sysUserRequest) { - return new SuccessResponseData(sysUserService.selector(sysUserRequest)); + public ResponseData> selector(SysUserRequest sysUserRequest) { + return new SuccessResponseData<>(sysUserService.selector(sysUserRequest)); } }