@Override public Menu edit(Menu menu) { Tmenu t = menuDao.get(Tmenu.class, menu.getId()); // 要修改的权限 if (t != null) { BeanUtils.copyProperties(menu, t); t.setIconcls(menu.getIconCls()); t.setTmenu(null); // 现将当前节点的父节点置空 if (menu.getPid() != null && !menu.getPid().trim().equals("") && !menu.getPid().equals(menu.getId())) { // 如果pid不为空,并且pid不跟自己的id相同,说明要修改当前节点的父节点 Tmenu pmenu = menuDao.get(Tmenu.class, menu.getPid()); // 要设置的上级权限 if (pmenu != null) { if (isDown(t, pmenu)) { // 要将当前节点修改到当前节点的子节点中 Set<Tmenu> tmenus = t.getTmenus(); // 当前要修改的权限的所有下级权限 if (tmenus != null && tmenus.size() > 0) { for (Tmenu tmenu : tmenus) { if (tmenu != null) { tmenu.setTmenu(null); } } } } t.setTmenu(pmenu); } } } return menu; }
private void del(Tmenu r) { Set<Tmenu> s = r.getTmenus(); if (s != null && !s.isEmpty()) { for (Tmenu t : s) { del(t); } } menuDao.delete(r); }