博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
产品设计Demo - 一体化平台的设计之系统管理模块(二)
阅读量:4165 次
发布时间:2019-05-26

本文共 2271 字,大约阅读时间需要 7 分钟。

以下是原型设计图

用户管理

权限管理

 

角色管理

 

数据库设计

    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的权限,则返回,并告知,无权限操作。

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

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

 

账号管理

 

系统接口管理

代理服务管理

内部服务接口管理

 

系统信息配置

 

转载地址:http://krmxi.baihongyu.com/

你可能感兴趣的文章
as3.0中通过ApplicationDomain类获得被加载swf
查看>>
主swf与被加载swf的通信问题
查看>>
在flash中关闭页面(在flash中执行javascript脚本)
查看>>
flash as3输出并执行javascript
查看>>
flash 控制声音的播放和停止
查看>>
flash在android上的延迟可能的解决方案
查看>>
flash as3设置全屏
查看>>
八款开源Android游戏引擎
查看>>
Android MediaPlayer基本使用方式
查看>>
android 获取坐标
查看>>
彻底解决 Eclipse + Android 自动补全卡死的问题
查看>>
请记住: i AM SoLiD. (关于View的事件触发顺序)
查看>>
As3.0 删除容器所有子对象
查看>>
TweenLite参数说明
查看>>
flash TweenLite onComplete 提前执行的问题
查看>>
mysqldump
查看>>
字符串 与 java.sql.Timestamp转换博客分类: javaJavaSQL
查看>>
奇怪的ubuntu不能解析域名的问题
查看>>
cat | wc -l 少一行的问题
查看>>
socket 科普文章
查看>>