diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Group.java b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Group.java index 6dd3f2d..538b9b5 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Group.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Group.java @@ -45,6 +45,12 @@ public class Group implements Serializable { @TableField("name") private String name; + /** + * 启用 + */ + @TableField("enable") + private Integer enable; + @TableField("deleted") @TableLogic private Long deleted; diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Role.java b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Role.java index 2937246..ddf7870 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Role.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Role.java @@ -49,6 +49,12 @@ public class Role implements Serializable { @TableField("name") private String name; + /** + * 启用 + */ + @TableField("enable") + private Integer enable; + @TableField(exist = false) private List menus; diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/common/ResponseCode.java b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/common/ResponseCode.java index 4c31828..be757d5 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/common/ResponseCode.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/common/ResponseCode.java @@ -25,6 +25,7 @@ public class ResponseCode { public static final int UNAUTHORIZED = 30010; public static final int ACCESS_DENIED = 30030; + public static final int USER_DISABLE = 30031; public static final int SYSTEM_ERROR = 50001; public static final int SYSTEM_TIMEOUT = 50002; diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/handler/CustomExceptionHandler.java b/Pinnacle/src/main/java/com/cfive/pinnacle/handler/CustomExceptionHandler.java index df3ff5d..de75bf2 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/handler/CustomExceptionHandler.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/handler/CustomExceptionHandler.java @@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.authentication.BadCredentialsException; +import org.springframework.security.authentication.DisabledException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; @@ -14,7 +15,7 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; public class CustomExceptionHandler { @ExceptionHandler(value = Exception.class) - public ResponseResult exceptionHandler(Exception e) { + public ResponseResult exceptionHandler(Exception e) { if (e instanceof DuplicateKeyException) { return ResponseResult.build(ResponseCode.DATABASE_SAVE_ERROR, "无法添加重复数据", null); } @@ -24,6 +25,9 @@ public class CustomExceptionHandler { if (e instanceof AccessDeniedException) { return ResponseResult.build(ResponseCode.ACCESS_DENIED, e.getMessage(), null); } + if (e instanceof DisabledException) { + return ResponseResult.build(ResponseCode.USER_DISABLE, e.getMessage(), null); + } log.debug(e.getMessage(), e); diff --git a/Pinnacle/src/main/resources/mapper/GroupMapper.xml b/Pinnacle/src/main/resources/mapper/GroupMapper.xml index da5c77b..32bb578 100644 --- a/Pinnacle/src/main/resources/mapper/GroupMapper.xml +++ b/Pinnacle/src/main/resources/mapper/GroupMapper.xml @@ -5,6 +5,7 @@ select t_group.id as group_id, t_group.name as group_name, + t_group.enable as group_enable, t_group.deleted as group_deleted, t_group.version as group_version, tr.id as role_id, @@ -38,6 +40,7 @@ + diff --git a/Pinnacle/src/main/resources/mapper/RoleMapper.xml b/Pinnacle/src/main/resources/mapper/RoleMapper.xml index 5c3d8b3..7ddb7a3 100644 --- a/Pinnacle/src/main/resources/mapper/RoleMapper.xml +++ b/Pinnacle/src/main/resources/mapper/RoleMapper.xml @@ -5,6 +5,7 @@ select t_role.id as role_id, t_role.name as role_name, + t_role.enable as role_enable, t_role.deleted as role_deleted, t_role.version as role_version, tm.id as menu_id, @@ -63,6 +65,7 @@ + diff --git a/Pinnacle/src/main/resources/mapper/UserMapper.xml b/Pinnacle/src/main/resources/mapper/UserMapper.xml index 55291c5..be4338d 100644 --- a/Pinnacle/src/main/resources/mapper/UserMapper.xml +++ b/Pinnacle/src/main/resources/mapper/UserMapper.xml @@ -15,11 +15,13 @@ ts.deleted as staff_deleted, ts.version as staff_version, tr.id as role_id, + tr.enable as role_enable, tr.name as role_name, tr.deleted as role_deleted, tr.version as role_version, tg.id as group_id, tg.name as group_name, + tg.enable as group_enable, tg.deleted as group_deleted, tg.version as group_version from t_user @@ -44,10 +46,12 @@ ts.version as staff_version, tr.id as role_id, tr.name as role_name, + tr.enable as role_enable, tr.deleted as role_deleted, tr.version as role_version, tg.id as group_id, tg.name as group_name, + tg.enable as group_enable, tg.deleted as group_deleted, tg.version as group_version from t_user @@ -90,10 +94,10 @@ from t_user left join (select * from t_staff where deleted = 0) as ts on ts.user_id = t_user.id left join (select * from t_user_group where deleted = 0) as tug on t_user.id = tug.user_id - left join (select * from t_group where deleted = 0) as tg on tg.id = tug.group_id + left join (select * from t_group where deleted = 0 and enable = 1) as tg on tg.id = tug.group_id left join (select * from t_role_group where deleted = 0) as trg on tg.id = trg.group_id left join (select * from t_user_role where deleted = 0) as tur on t_user.id = tur.user_id - left join (select * from t_role where deleted = 0) as tr on tr.id = trg.role_id or tr.id = tur.role_id + left join (select * from t_role where deleted = 0 and enable = 1) as tr on tr.id = trg.role_id or tr.id = tur.role_id left join (select * from t_power_role where deleted = 0) as tpr on tpr.role_id = tr.id left join t_power as tp on tp.id = tpr.power_id left join t_menu tm on tp.id = tm.power_id @@ -120,12 +124,14 @@ + + diff --git a/sql/init.sql b/sql/init.sql index 326a5a5..c12291d 100644 --- a/sql/init.sql +++ b/sql/init.sql @@ -105,6 +105,7 @@ create table `t_group` ( `id` bigint not null primary key, `name` varchar(30) not null comment '用户组名', + `enable` int not null comment '启用', `deleted` bigint not null default 0, `version` int not null default 0, constraint t_group_unique unique (name, deleted) @@ -125,6 +126,7 @@ create table `t_role` ( `id` bigint not null primary key, `name` varchar(20) not null comment '角色名', + `enable` int not null comment '启用', `deleted` bigint not null default 0, `version` int not null default 0, constraint t_role_unique unique (name, deleted) diff --git a/ui/src/components/power/CommonTable.vue b/ui/src/components/power/CommonTable.vue index f7dd70a..655c5e7 100644 --- a/ui/src/components/power/CommonTable.vue +++ b/ui/src/components/power/CommonTable.vue @@ -31,6 +31,12 @@ }} + + +