产品入门 - 一体化平台的设计之系统管理模块(二)

以下是原型设计图

产品入门 - 一体化平台的设计之系统管理模块(二)

用户管理

权限管理

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

 

角色管理

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

 

数据库设计

    DROP TABLE IF EXISTS `t_role`;
    CREATE TABLE `t_role` (
    `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    `pid` bigint(20) NOT NULL COMMENT '父角色',
    `name` varchar(20) NOT NULL COMMENT '角色名称',
    `authorities` json NOT NULL COMMENT '权限(Id:名称),示例:[{2:列表},{1:添加}]',
    `creator` varchar(20) NOT NULL COMMENT '创建人',
    `create_time` datetime NOT NULL COMMENT '创建时间',
    `updator` varchar(20) NOT NULL COMMENT '更新人',
    `update_time` datetime NOT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色表';        
            
    DROP TABLE IF EXISTS `t_authority`;
    CREATE TABLE `t_authority` (
    `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    `pid` bigint(20) NOT NULL COMMENT '父级id',
    `name` varchar(20) NOT NULL COMMENT '权限名称',
    `uri` varchar(64) NOT NULL COMMENT '访问的接口路径(不包含父级),如/list、/update',
    `type` int NOT NULL COMMENT '1是公共权限,2是私有权限',
    `creator` varchar(20) NOT NULL COMMENT '创建人',
    `create_time` datetime NOT NULL COMMENT '创建时间',
    `updator` varchar(20) NOT NULL COMMENT '更新人',
    `update_time` datetime NOT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限表';            
        
    DROP TABLE IF EXISTS `t_data_authority`;
    CREATE TABLE `t_authority` (
    `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    `authority_id` bigint(20) NOT NULL COMMENT '权限id',
    `meaning` varchar(20) NOT NULL COMMENT '字段意义',
    `feild` varchar(38) NOT NULL COMMENT '字段名',
    `symbol` varchar(8) NOT NULL COMMENT '数据过滤符号,= != > <',
    `data` json NOT NULL COMMENT '规则数据,{"vip","svip"}',
    `creator` varchar(20) NOT NULL COMMENT '创建人',
    `create_time` datetime NOT NULL COMMENT '创建时间',
    `updator` varchar(20) NOT NULL COMMENT '更新人',
    `update_time` datetime NOT NULL COMMENT '更新时间',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数据权限表';          

 

实现思路

前端

    每一个权限都会有标识,前端就是根据这个标识来决定这个功能是否展示,如果在登陆后,后端返回的数据中是没有这个标识的,则隐藏。

产品入门 - 一体化平台的设计之系统管理模块(二)

 

后端

    后端不需要使用任何框架。

    后端在系统启动时,就把数据权限表、权限表、角色表的数据,全部加载到Redis中。

    用户在登陆时,验证成功后,则查出用户对应的信息与权限,并拼接好权限的完整URI(父级URI,完整的URI是类似:/member/info/add),并缓存到Redis中,以及返回给前端。

    拦截器,先判断用户是否已登录,在判断此URI是否是公有URI,是的话,则直接放行,否则就根据访问的URI进行拦截,如果在缓存中没有找到其用户对应接口访问的URI的权限,则返回,并告知,无权限操作。

产品入门 - 一体化平台的设计之系统管理模块(二)

    在后续的权限验证过程中,建议新建一个公共项目,这个项目就是专门验证数据权限的,并且如果是特殊的数据权限处理,则通过不同的包名做区分,如果后面流量到了,要可以单独部署。

    无论在什么项目中,这个都作为基础模块,如果有别的功能需要用到不同的权限或角色,例如部门管理,不同部门看到不同的数据,那么则通过部门关联到对应的角色即可,一通百通。

 

账号管理

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

 

系统接口管理

代理服务管理

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

内部服务接口管理

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)

 

系统信息配置

产品入门 - 一体化平台的设计之系统管理模块(二)

产品入门 - 一体化平台的设计之系统管理模块(二)