package com.demo.service.sys.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.demo.common.PageNavigation;
import com.demo.dao.sys.IMenuDao;
import com.demo.dao.sys.IPermissionDao;
import com.demo.dao.sys.IPermissionRoleDao;
import com.demo.model.State;
import com.demo.model.sys.SysMenu;
import com.demo.model.sys.SysMenuRole;
import com.demo.model.sys.SysTree;
import com.demo.service.sys.IPermissionService;
@Service
public class PermissionServiceImpl implements IPermissionService{
@Autowired
IMenuDao menuDao;
@Autowired
IPermissionDao permissionDao;
@Autowired
IPermissionRoleDao permissionRoleDao;
@Override
public PageNavigation<SysMenu> list(PageNavigation<SysMenu> page) {
// TODO Auto-generated method stub
return null;
}
@Override
public int getRecordCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public List<SysMenu> getLevelOneMenu() throws Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public List<SysTree> getAll() throws Exception {
List<SysTree> treeList = new ArrayList<SysTree>();
List<SysMenu> menuList = permissionDao.getAll();
// 一级节点
for (SysMenu sysMenu : menuList) {
SysTree tree = new SysTree();
if (sysMenu.getParentMenuId() == -1) {
tree.setId((long) sysMenu.getId());
tree.setText(sysMenu.getMenuName());
tree.setHref(sysMenu.getMenuPath());
tree.setState(new State());
tree.setNodes(null);
treeList.add(tree);
}
}
// 二级节点
List<SysTree> nodeTreeList = null;
for (SysTree tree : treeList) {
nodeTreeList = new ArrayList<SysTree>();
for (SysMenu sysMenu : menuList) {
if(tree.getId() != sysMenu.getParentMenuId().intValue()) {
continue;
}
SysTree node = new SysTree();
node.setId((long) sysMenu.getId());
node.setText(sysMenu.getMenuName());
node.setHref(sysMenu.getMenuPath());
node.setState(new State());
node.setNodes(null);
nodeTreeList.add(node);
}
tree.setNodes(nodeTreeList);
}
// 三级节点(看是否需要开启,菜单树结构最高允许三层)
// List<SysTree> threeTreeList = null;
// if (nodeTreeList != null) {
// for (SysTree tree : nodeTreeList) {// 便利二级节点,看是否挂了三级节点
// threeTreeList = new ArrayList<>();
// for (SysMenu sysMenu : menuList) {
// // 二级节点的id是否和parent_id相等,如果相等,则为该二级节点的子节点
// if(tree.getId() != sysMenu.getParentMenuId()) {
// continue;
// }
// SysTree node = new SysTree();
// node.setId(sysMenu.getId());
// node.setText(sysMenu.getMenuName());
// node.setHref(sysMenu.getMenuPath());
// State state = new State();
// state.setDisabled(isDisabled);
// node.setState(state);// 最后一个节点为操作节点,默认为不启用
// node.setNodes(null);
// threeTreeList.add(node);
// }
// tree.setNodes(threeTreeList);
// }
// }
// 设置一个超级根节点
List<SysTree> rootList = new ArrayList<SysTree>();
SysTree root = new SysTree();
root.setId(-1L);
root.setText("根节点");
root.setHref("");
root.setState(new State());
root.setNodes(treeList);
rootList.add(root);
return rootList;
}
@Override
public List<SysTree> getAll(int id) throws Exception {
List<SysTree> treeList = new ArrayList<SysTree>();
List<SysMenu> menuList = permissionDao.getAll();
Map<String, Object> params = new HashMap<String, Object>();
params.put("id", id);
// 所有的权限菜单
List<SysMenuRole> menuRoleList = permissionRoleDao.getMenuRoleList(params);
int ids [] = new int [menuRoleList.size()];
for (int i=0;i<menuRoleList.size();i++) {
ids[i] = menuRoleList.get(i).getMenuId();
}
// 一级节点
for (SysMenu sysMenu : menuList) {
SysTree tree = new SysTree();
if (sysMenu.getParentMenuId() == -1) {
tree.setId((long)sysMenu.getId());
tree.setText(sysMenu.getMenuName());
tree.setHref(sysMenu.getMenuPath());
// 是否选中
State state = new State();
for (int i = 0; i < ids.length; i++) {
if (sysMenu.getId() == ids[i]){
state.setChecked(true);
break;
}
}
tree.setState(state);
tree.setNodes(null);
treeList.add(tree);
}
}
// 二级节点
List<SysTree> nodeTreeList = null;
for (SysTree tree : treeList) {
nodeTreeList = new ArrayList<SysTree>();
for (SysMenu sysMenu : menuList) {
if(tree.getId() != sysMenu.getParentMenuId().intValue()) {
continue;
}
SysTree node = new SysTree();
node.setId((long)sysMenu.getId());
node.setText(sysMenu.getMenuName());
node.setHref(sysMenu.getMenuPath());
State state = new State();
for (int i = 0; i < ids.length; i++) {
if (sysMenu.getId() == ids[i]){
state.setChecked(true);
break;
}
}
node.setState(state);
node.setNodes(null);
nodeTreeList.add(node);
}
tree.setNodes(nodeTreeList);
}
return treeList;
}
@Override
public List<SysTree> getAllSelected(Long menuId) throws Exception {
List<SysTree> treeList = new ArrayList<SysTree>();
List<SysMenu> menuList = permissionDao.getAll();
// 一级节点
for (SysMenu sysMenu : menuList) {
SysTree tree = new SysTree();
if (sysMenu.getParentMenuId() == -1) {
tree.setId((long)sysMenu.getId());
tree.setText(sysMenu.getMenuName());
tree.setHref(sysMenu.getMenuPath());
// 判断是否默认被选中
State state = new State ();
if (menuId == tree.getId()) {
state.setChecked(true);
}
tree.setState(state);
tree.setNodes(null);
treeList.add(tree);
}
}
// 二级节点
List<SysTree> nodeTreeList = null;
for (SysTree tree : treeList) {
nodeTreeList = new ArrayList<SysTree>();
for (SysMenu sysMenu : menuList) {
if(tree.getId() != sysMenu.getParentMenuId().intValue()) {
continue;
}
SysTree node = new SysTree();
node.setId((long)sysMenu.getId());
node.setText(sysMenu.getMenuName());
node.setHref(sysMenu.getMenuPath());
// 判断是否默认被选中,二级节点作为父节点只能是操作权限,操作权限单独处理
State state = new State ();
//if (menuId == tree.getId()) {
// state.setChecked(true);
//}
node.setState(state);
node.setNodes(null);
nodeTreeList.add(node);
}
tree.setNodes(nodeTreeList);
}
// 设置一个超级根节点
List<SysTree> rootList = new ArrayList<SysTree>();
SysTree root = new SysTree();
root.setId(-1L);
root.setText("根节点");
root.setHref("");
State state = new State ();
if (menuId == -1) {
state.setChecked(true);
}
root.setState(state);
root.setNodes(treeList);
rootList.add(root);
return rootList;
}
@Override
public int add(SysMenu menu) throws Exception {
// TODO Auto-generated method stub
return 0;
}
@Override
public int update(SysMenu menu) throws Exception {
// TODO Auto-generated method stub
return 0;
}
@Override
public int delete(Long id) throws Exception {
// TODO Auto-generated method stub
return 0;
}
@Override
public SysMenu getMenuById(Long id) throws Exception {
// TODO Auto-generated method stub
return null;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
springMvc+mybatis+bootstrap Demo6
共223个文件
java:50个
class:50个
jar:38个
需积分: 9 25 下载量 59 浏览量
2017-08-05
13:50:14
上传
评论 1
收藏 18.57MB ZIP 举报
温馨提示
该例子包含以下功能:用户管理、角色管理、菜单管理、员工信息、黑名单信息 适合初学者学习参考!
资源推荐
资源详情
资源评论
收起资源包目录
springMvc+mybatis+bootstrap Demo6 (223个子文件)
PermissionServiceImpl.class 7KB
StaffAction.class 6KB
UserAction.class 5KB
RoleServiceImpl.class 5KB
RoleAction.class 5KB
MenuAction.class 4KB
SysStaff.class 4KB
StaffServiceImpl.class 4KB
PageTag.class 4KB
UserServiceImpl.class 4KB
MenuServiceImpl.class 3KB
StaffDaoImpl.class 3KB
LoginAction.class 3KB
SysUser.class 3KB
PageNavigation.class 3KB
UserDaoImpl.class 3KB
SysMenu.class 3KB
MenuDaoImpl.class 2KB
PermissionDaoImpl.class 2KB
RoleDaoImpl.class 2KB
SysRole.class 2KB
ReturnInfoUtil.class 2KB
SysTree.class 2KB
JsonUtils.class 2KB
PriDaoImpl.class 2KB
PermissionRoleDaoImpl.class 1KB
SysPriId.class 1KB
SysPri.class 1KB
IPermissionService.class 1KB
State.class 1KB
IStaffService.class 1KB
ResponseInfo.class 1019B
IStaffDao.class 987B
PriRoleDaoImpl.class 973B
IMenuService.class 948B
IPermissionDao.class 948B
IRoleService.class 947B
IUserService.class 947B
IUserDao.class 837B
SysMenuRole.class 824B
SysUserRole.class 738B
SysPriRole.class 734B
IMenuDao.class 704B
IRoleDao.class 696B
PriServiceImpl.class 517B
IPriDao.class 462B
IPermissionRoleDao.class 444B
Entity.class 345B
IPriService.class 232B
IPriRoleDao.class 202B
.classpath 529B
org.eclipse.wst.common.component 462B
org.eclipse.wst.jsdt.ui.superType.container 49B
bootstrap.css 144KB
bootstrap.min.css 120KB
bootstrap-theme.css 25KB
bootstrap-theme.min.css 23KB
font-awesome.min.css 15KB
mmss.css 4KB
default.css 2KB
fontawesome-webfont.eot 25KB
glyphicons-halflings-regular.eot 20KB
antlrworks-1.4.2.jar 2.99MB
javaee-api-7.0.jar 1.84MB
aspectjweaver-1.5.4.jar 1.81MB
mybatis-3.3.0.jar 1.35MB
jackson-databind-2.5.1.jar 1.09MB
spring-context-4.2.4.RELEASE.jar 1.05MB
spring-core-4.2.4.RELEASE.jar 1.03MB
mysql-connector-java-5.1.30.jar 932KB
spring-webmvc-4.2.4.RELEASE.jar 854KB
spring-web-4.2.4.RELEASE.jar 749KB
spring-beans-4.2.4.RELEASE.jar 714KB
spring-test-4.2.4.RELEASE.jar 549KB
javax.mail-1.5.0.jar 510KB
log4j-1.2.16.jar 470KB
spring-jdbc-4.2.4.RELEASE.jar 413KB
jstl-1.2.jar 405KB
spring-aop-4.2.4.RELEASE.jar 361KB
fastjson-1.1.41.jar 350KB
spring-tx-4.2.4.RELEASE.jar 259KB
commons-codec-1.9.jar 258KB
spring-expression-4.2.4.RELEASE.jar 257KB
jackson-core-2.5.1.jar 224KB
commons-io-2.4.jar 181KB
spring-context-support-4.2.4.RELEASE.jar 173KB
commons-dbcp-1.4.jar 157KB
jsontools-core-1.6.jar 138KB
aspectjrt-1.5.4.jar 112KB
commons-pool-1.6.jar 109KB
spring-oxm-4.2.4.RELEASE.jar 82KB
hamcrest-core-1.1.jar 75KB
commons-fileupload-1.3.1.jar 67KB
activation-1.1.jar 62KB
commons-logging-1.2.jar 60KB
mybatis-spring-1.2.3.jar 50KB
jackson-annotations-2.5.1.jar 39KB
slf4j-api-1.7.7.jar 29KB
slf4j-log4j12-1.7.7.jar 9KB
aopalliance-1.0.jar 4KB
共 223 条
- 1
- 2
- 3
资源评论
mizone_1982
- 粉丝: 42
- 资源: 123
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功