@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; }
@Override public Menu add(Menu menu) { Tmenu t = new Tmenu(); BeanUtils.copyProperties(menu, t); t.setId(UUID.randomUUID().toString()); if (menu.getPid() != null) { Tmenu p = menuDao.get(Tmenu.class, menu.getPid()); if (p != null) { t.setTmenu(p); } } t.setIconcls(menu.getIconCls()); menuDao.save(t); BeanUtils.copyProperties(t, menu); return menu; }