一、在线演示

在线演示,浏览系统

二、开发工具

开发软件:JDK7.0、MyEclipse 2014
数据库:MySQL5.6
服务器:Tomcat7.0

三、系统介绍

本系统采用了 B/S 体系结构,以 MySql 作为数据库管理数据,以 JSP 作为前端开发语音,采用当前最流行的 SSM 框架(Spring+SpringMVC+MyBatis),标准的 MVC 模式,将整个系统划分为表现层,controller 层,service 层,dao 层四层。下面介绍主要功能:

3.1 权限管理

支持在线分配权限,以角色为表头、菜单为首列。动态加载角色、菜单以及权限,个性化呈现所有信息于一表之中,并且在表中设置权限开关,免去跳转页面的繁琐步骤。横为角色,纵为菜单,用户体验极高的设计相信深得用户青睐。

3.2 角色管理

以树的形式呈现出角色,呈现出用户数量、菜单数量已经按钮数量,完美整合增删改操作!

3.3 菜单管理

以树的形式呈现出菜单,完美整合增删改操作!整合更改菜单图标功能,以及整合该菜单下按钮功能。

3.4 按钮管理

按钮信息管理,完美整合按钮的增删改查功能。所有页面将根据权限动态加载按钮。

3.5 用户管理

对系统用户进行管理,完美整合分页功能。

四、数据库设计

4.1 数据库关系图

用户通过角色与菜单进行关联,简单地说,一个用户拥有若干角色,每一个角色拥有若干菜单,菜单包含按钮,每一个角色拥有若干按钮,构造成用户-角色-菜单-按钮的授权模型,用户与角色之间,角色与权限之间,都是多对多的关系。

4.2 数据库视图

整个系统包含用户表、账号表、角色表、菜单表、按钮表、按钮类型表、用户角色关联表、角色菜单关联表、角色按钮关联表,如下图:

4.3 数据表结构
  1. 用户表:t_auth_user
字段名 类型 长度 描述
userID bigint 20 自增编号
accountID bigint 20 账户编号
userName varcha 200 用户姓名
avatar varchar 200 头像
sig varchar 500 签名
createTime varchar 200 创建时间
createUserID bigint 20 创建人编号
isValid tinyint 4 是否有效(1有效数据,0无效数据)
  1. 角色表:t_auth_role
字段名 类型 长度 描述
roleID bigint 20 自增编号
roleName varchar 200 菜单名称
roleAlias varchar 50 角色别名
parentID varchar 50 父级编号(最高级为0)
roleRank int 11 角色等级(值越低等级越高)
content varchar 500 描述内容
createTime varchar 200 创建时间
createUserID bigint 20 创建人编号
isValid tinyint 4 是否有效(1有效数据,0无效数据)
  1. 菜单表 :t_auth_menu
字段名 类型 长度 描述
menuID bigint 20 自增编号
menuType tinyint 4 菜单类型(1iframe模式,2全屏模式,3外部链接,4通讯系统)
menuName varchar 200 菜单名称
menuText varchar 200 菜单文本
menuPath varchar 255 菜单路径
menuIcon varchar 255 菜单图标
menuSort int 11 菜单排序
parentID bigint 20 父级编号(0代表根目录)
menuLevel tinyint 4 菜单等级
isRoot tinyint 4 是否根目录(1是,0否)
content varchar 500 描述内容
createTime varchar 200 创建时间
createUserID bigint 20 创建人编号
isValid tinyint 4 是否有效(1有效数据,0无效数据)
  1. 按钮表:t_auth_action
字段名 类型 长度 描述
actionID bigint 20 自增编号
menuID bigint 20 菜单编号
actionName varchar 200 按钮名称
actionType bigint 20 按钮类型(类型表)
actionSeat tinyint 4 按钮位置(1头部按钮,2表格按钮)
callType tinyint 4 调用方式(1样式,2函数,3Layui)
actionEvent varchar 200 按钮路径
actionIcon varchar 200 按钮图标
actionSort int 11 按钮排序
content varchar 500 描述内容
createTime varchar 200 创建时间
createUserID bigint 20 创建人编号
isValid tinyint 4 是否有效(1有效数据,0无效数据)
  1. 用户角色关联表:t_auth_roleuser
字段名 类型 长度 描述
ruID bigint 20 自增编号
roleID bigint 20 角色编号
userID bigint 20 用户编号
isValid tinyint 4 是否有效(1有效数据,0无效数据)
  1. 角色菜单关联表:t_auth_rolemenu
字段名 类型 长度 描述
rmID bigint 20 自增编号
roleID bigint 20 角色编号
menuID bigint 20 菜单编号
  1. 角色按钮关联表:t_auth_roleaction
字段名 类型 长度 描述
raID bigint 20 自增编号
roleID bigint 20 角色编号
actionID bigint 20 按钮编号
  1. 账号表:t_auth_account
字段名 类型 长度 描述
accountID bigint 20 自增编号
userCode varchar 200 用户账号
userPwd varchar 200 用户密码
userQQ varchar 200 QQ账号
userWechat varchar 200 微信账号
userWeibo varchar 200 微博账号
isFrozen tinyint 4 是否被冻结(1已冻结,0没冻结)
isValid tinyint 4 是否有效(1有效数据,0无效数据)
  1. 按钮类型表:t_auth_actiontype
字段名 类型 长度 描述
typeID bigint 20 自增编号
typeName varchar 200 类型名称
typeSort int 11 类型排序
isValid tinyint 4 是否有效(1有效数据,0无效数据)

五、部分源码

5.1 以权限功能为例,html代码块
<div class="layui-fluid" id="LAY-component-progress"><div class="layui-row layui-col-space15"><div class="layui-col-md12"><div class="layui-card"><div class="layui-card-header"><span class="childHeader"><!-- 页面加载完毕后自动生成 --></span><span class="childTitle">/&nbsp;配置角色权限</span></div><div class="layui-card-body"><div class="layui-form"><div class="table-operate-btn" style="margin-bottom: 10px;"><div class="table-operate-btn"><button data-type="openAll" type="button" class="layui-btn layui-btn-primary layui-btn-sm layui-btn-event">全部展开</button><button data-type="closeAll" type="button" class="layui-btn layui-btn-primary layui-btn-sm layui-btn-event">全部折叠</button><button data-type="refresh" type="button" class="layui-btn layui-btn-primary layui-btn-sm layui-btn-event">刷新</button></div></div><table id="table-page" class="layui-table" lay-filter="table-filter" lay-size="sm"></table><blockquote class="layui-elem-quote" style="display: none;">注:点击开关系统自动保存,若保存成功没任何提示,若保存失败则弹出错误提示内容。</blockquote></div></div></div></div></div>
</div>
5.2 jQuery代码块
/*** 保存权限信息*/
function handlePower(keyId, roleId, isCheck){var tableName = keyId.substr(0, keyId.indexOf("-"))var tableKeyId = keyId.substr(keyId.indexOf("-")+1, keyId.length);var action = null;if(tableName == "action"){action = ligent_itemName + "auth/power/handleRoleAction"}else if(tableName == "menu"){action = ligent_itemName + "auth/power/handleRoleMenu"}else{layer_msg("系统繁忙,请联系管理员...", 5, 6, null);return;}var checkNum = isCheck ? 1 : 0;var data = {roleId: roleId,actionId: tableKeyId,menuId: tableKeyId,isCheck: checkNum}$.post(action, data, function (res) {var json = JSON.parse(res);if(json.code != 0) {layer_msg(json.data.msg, 5, 6, null);return;}});
}/*** 绑定树形菜单表格*/
function tableRender(){// 遍历角色var checkboxs = '';$.ajax({type: "post",url: ligent_itemName + "auth/role/findByAll",async: false,//异步为truesuccess: function (data) {var state = JSON.parse(data);var json = state.data;$.each(json, function (i, item) {checkboxs += '' + '{' + ' title: "'+item.roleName+'", align: "center", width: "120px",' + ' template: function (res) {' + " return '<input '+(res.checkMap.isCheck_"+item.roleId+" ? 'checked' : '')+' keyId=\"'+res.id+'\" roleId=\""+item.roleId+"\" type=\"checkbox\" name=\"close\" lay-skin=\"switch\" lay-text=\"ON|OFF\" lay-filter=\"isCheckPower\">';" + '}' + '},'; });}});var cols = "[" +"{ key: 'title', title: '菜单按钮', align: 'left', width: '200px', " + "template: function (res) {" + "if (res.treeLevel == 1) {" + "return '<span class=\"onelevelColor\">' + res.title + '</span>';" + "} else if (res.treeLevel == 2) {" + "return '<span class=\"twolevelColor\">' + res.title + '</span>';" + "} else if (res.treeLevel == 3) {" + "return '<span class=\"threelevelColor\">' + res.title + '</span>';" + "}" + "}" + "}," + checkboxs + "{ key: 'treeLevel', title: '菜单等级', align: 'center', width: '120px'," + "template: function (res) {" + "if (res.treeLevel == 1) {" + "return '<span class=\"onelevelColor\">' + res.treeLevel + '</span>';" + "} else if (res.treeLevel == 2) {" + "return '<span class=\"twolevelColor\">' + res.treeLevel + '</span>';" + "} else if (res.treeLevel == 3) {" + "return '<span class=\"threelevelColor\">' + res.treeLevel + '</span>';" + "}" + "}" + "}," + "{ title: '类型', align: 'center', width: 120," + "template: function (res) {" + "if (res.id.indexOf('menu') != -1) {" + "return '菜单';" + "} else if (res.id.indexOf('action') != -1) {" + "return '按钮';" + "} else {" + "return '';" + "}" +"}," + "}" + "]";var cols_arr = eval("("+cols+")")// 渲染表格tableIns = treeTable.render({elem: '#table-page',url: ligent_itemName + 'auth/power/findByPower',icon_key: 'title',primary_key: 'id',parent_key: 'pid',cols: cols_arr,end: function (e) {// 渲染表单form.render();// 展示温馨提示$(".layui-elem-quote").show();// 第一次加载默认全部展开if(renderCount == 0){treeTable.openAll(tableIns);renderCount++;}// 关闭关闭所有层layer_closeAll();}});
}
5.3 服务器代码块
/*** 获取所有角色权限信息*/
@RequestMapping(value = "findByPower", method = RequestMethod.POST, produces = "text/html;charset=UTF-8")public @ResponseBody String findByPower(HttpServletRequest request, HttpServletResponse response) {List<TreeTable> revertList = new ArrayList<TreeTable>();List<AuthAction> actionList = null;TreeTable treeTable = null;// 菜单集合List<AuthMenu> list = authMenuService.findByAll();for (AuthMenu menu : list) {treeTable = new TreeTable(menu, authRoleService.findByMenu(menu.getMenuId()));revertList.add(treeTable);if(menu.getIsRoot().intValue() != 1){actionList = authActionService.findByMenu(menu.getMenuId());for (AuthAction action : actionList) {treeTable = new TreeTable(action, menu.getMenuLevel(), authRoleService.findByAction(action.getActionId()));revertList.add(treeTable);}}}String json = UseTool.toJson(new StateModel(revertList));log.info("获取所有角色列表:"+json);return json;}

六、源码下载

附上权限系统源码,点击下载

七、猜您喜欢

更多小系统与您见面:搭我一程

创作不容易,若对您有帮助,欢迎收藏,记得赏个好评

Java权限管理系统完整案例相关推荐

  1. c# mysql 管理员权限_C# winform 权限管理系统完整源码下载(含数据库)

    [实例简介] [实例截图] [核心代码] using System; using System.Collections.Generic; using System.ComponentModel; us ...

  2. SSM 企业权限管理系统 项目实战

    企业权限管理系统 完整项目github地址: https://github.com/lindaifeng/Authority-Management-System 新增项目: SpringBoot企业权 ...

  3. java登录ssh没有权限管理_ssh2--login 是Java的权限管理系统,有完整的程序及代码,很全面的概括了 的功能。 Develop 238万源代码下载- www.pudn.com...

    文件名称: ssh2--login下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 9083 KB 上传时间: 2013-03-18 下载次数: 105 提 供 者 ...

  4. 视频教程-权限管理系统-项目实战-Java

    权限管理系统-项目实战 十年项目开发经验,主要从事java相关的开发,熟悉各种mvc开发框架. 王振伟 ¥50.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订 ...

  5. 视频教程-基于springboot2.x+layui+shiro+redis整合前后端分离的权限管理系统-Java

    基于springboot2.x+layui+shiro+redis整合前后端分离的权限管理系统 拥有八年的Java项目开发经验,擅长Java.vue.SpringBoot.springCloud.sp ...

  6. 视频教程-SpringBoot+Security+Vue前后端分离开发权限管理系统-Java

    SpringBoot+Security+Vue前后端分离开发权限管理系统 10多年互联网一线实战经验,现就职于大型知名互联网企业,架构师, 有丰富实战经验和企业面试经验:曾就职于某上市培训机构数年,独 ...

  7. java aop管理权限_基于spring aop 权限管理系统原型 - andyj2ee - BlogJava

    此权限管理系统把待访问的业务层方法做为权限管理中的资源,通过spring aop 对接口方法进行拦截,来实现权限的管理,可以实现细粒度的权限控制. 在上文体验了spring aop 一些特性,aop ...

  8. JAVA健康档案管理系统(含论文开题)一套完善的毕业设计,系统具有完整的源代码和数据库源码

    JAVA健康档案管理系统(含论文开题)一套完善的毕业设计,系统具有完整的源代码和数据库源码下载链接:https://pan.baidu.com/s/1HkPmpEUXHqEkAXmXAE8RXA 提取 ...

  9. Java项目:实现权限管理系统(java+SpringBoot+MyBatis+AOP+LayUI+Mysql)

    源码获取:博客首页 "资源" 里下载! springboot+mybatis使用面向切面编程(AOP)实现的权限管理系统. 共五个模块,角色管理,菜单管理,实验室管理,学生管理,管 ...

  10. java开发企业级权限管理系统_Java开发企业级权限管理系统 视频教程

    第1章 课程整体概述与权限管理系统介绍 1-1 为什么企业级项目需要权限管理 1-2 权限管理的核心是什么? 1-3 理想中的权限管理应该是什么样的? 1-4 主流开源权限管理框架有哪些? 1-5 1 ...

最新文章

  1. 动圈耳机振膜_耳机中的动圈、动铁、圈铁都是什么意思 买哪种最好?
  2. Python爬虫教程(四)
  3. 乐鑫代理-启明云端分享ESP32系列教程之二:Linux搭建esp-idf环境
  4. Tree-CNN:一招解决深度学习中的「灾难性遗忘」
  5. HTTP缓存及其使用
  6. 企业开发中,git提交时屏蔽某些文件,怎么搞!【idea的处理方法】
  7. 【LeetCode】回文数
  8. AFN\HTTPS\UIWebView
  9. Python网络数据采集系列-------概述
  10. opencv30-图像矩
  11. 8月20日全球六大国际域名解析量变化情况统计报告
  12. C# 修改Config文件,增删查改
  13. 【VBScript恶搞代码】电脑自爆警告
  14. office2019 图目录_【设计图文】电磁阀体中心孔组合机床、机床总体工位布置和钻、扩、铰工位液压系统设计(有cad图)...
  15. elastichd的使用教程_ElasticHD
  16. 三大变换与自控(五)三角函数的正交性证明
  17. 淘宝 喵铺脚本自动签到脚本
  18. Visual Studio 2017 企业版密匙
  19. 根据上面的products列表写一个循环,不断询问用户想买什么,用户选择一个商品编号,就把对应的商品添加到购物车里,终用户输入q退出时,打印购买的商品列表。
  20. 徒手撸一个好玩的App:美图

热门文章

  1. Doom启示录(一)---李乃峰所崇拜之 两个约翰!
  2. 关于java小游戏的暂停,退出和从新开始
  3. 数据结构c语言版编程软件,数据结构严蔚敏4版PDF下载_数据结构C语言版严蔚敏下载 完整版_当载软件站...
  4. xp计算机u盘重装系统,用U盘给旧电脑重装XP系统,自己摸索的方法:两大步骤、两个关键...
  5. java模板导出excel_POI导出excel模板三种方式
  6. 【c语言课程设计】C语言校园卡管理系统
  7. docker安装jdk1.8
  8. 摄像头实时画面转接到web页面
  9. wps 甘特图_强烈推荐5款在线甘特图工具,又简单又清爽又好用
  10. 图解设计模式:责任链模式