潘志宝
2024-12-16 df99e46312fdd5ee830f1451e478f6658e09f9ed
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.controller.admin.auth.vo;
H 2
3 import io.swagger.v3.oas.annotations.media.Schema;
4 import lombok.AllArgsConstructor;
5 import lombok.Builder;
6 import lombok.Data;
7 import lombok.NoArgsConstructor;
8
9 import java.util.List;
10 import java.util.Set;
11
12 @Schema(description = "管理后台 - 登录用户的权限信息 Response VO,额外包括用户信息和角色列表")
13 @Data
14 @NoArgsConstructor
15 @AllArgsConstructor
16 @Builder
17 public class AuthPermissionInfoRespVO {
18
19     @Schema(description = "用户信息", requiredMode = Schema.RequiredMode.REQUIRED)
20     private UserVO user;
21
22     @Schema(description = "角色标识数组", requiredMode = Schema.RequiredMode.REQUIRED)
23     private Set<String> roles;
24
25     @Schema(description = "操作权限数组", requiredMode = Schema.RequiredMode.REQUIRED)
26     private Set<String> permissions;
27
28     @Schema(description = "菜单树", requiredMode = Schema.RequiredMode.REQUIRED)
29     private List<MenuVO> menus;
30
31     @Schema(description = "用户信息 VO")
32     @Data
33     @NoArgsConstructor
34     @AllArgsConstructor
35     @Builder
36     public static class UserVO {
37
38         @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
39         private Long id;
40
41         @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "iailab")
42         private String nickname;
43
44         @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.baidu.com/xx.jpg")
45         private String avatar;
46
47         @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
48         private Long deptId;
49
50     }
51
52     @Schema(description = "管理后台 - 登录用户的菜单信息 Response VO")
53     @Data
54     @NoArgsConstructor
55     @AllArgsConstructor
56     @Builder
57     public static class MenuVO {
58
59         @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "平台")
60         private Long id;
61
62         @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
63         private Long parentId;
64
65         @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "平台")
66         private String name;
67
68         @Schema(description = "路由地址,仅菜单类型为菜单或者目录时,才需要传", example = "post")
69         private String path;
70
71         @Schema(description = "组件路径,仅菜单类型为菜单时,才需要传", example = "system/post/index")
72         private String component;
73
74         @Schema(description = "组件名", example = "SystemUser")
75         private String componentName;
76
77         @Schema(description = "菜单图标,仅菜单类型为菜单或者目录时,才需要传", example = "/menu/list")
78         private String icon;
79
80         @Schema(description = "是否可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
81         private Boolean visible;
82
83         @Schema(description = "是否缓存", requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
84         private Boolean keepAlive;
85
86         @Schema(description = "是否总是显示", example = "false")
87         private Boolean alwaysShow;
88
89         /**
90          * 子路由
91          */
92         private List<MenuVO> children;
93
94     }
95
96 }