use of com.hxkj.system.model.SysMenu in project my_curd by qinyou.
the class SysRoleController method menuTreePermissionChecked.
/**
* 全部菜单树,并根据角色选中
*/
public void menuTreePermissionChecked() {
Integer id = getParaToInt(0);
// 联合主键保证不重复
List<SysRoleMenu> sysRoleMenus = SysRoleMenu.dao.findByRoleId(id);
List<SysMenu> sysMenus = SysMenu.dao.findAll();
// 非叶子 id 集合
Set<Integer> pids = new HashSet<Integer>();
for (SysMenu sysMenu : sysMenus) {
pids.add(sysMenu.getPid());
}
List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>();
for (SysMenu sysMenu : sysMenus) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", sysMenu.getId());
map.put("pid", sysMenu.getPid());
map.put("text", sysMenu.getName());
map.put("iconCls", sysMenu.getIcon());
map.put("state", "open");
for (SysRoleMenu sysRoleMenu : sysRoleMenus) {
// 中间表 有记录,且是 叶子
if (sysRoleMenu.getMenuId() == sysMenu.getId() && !pids.contains(sysMenu.getId())) {
map.put("checked", true);
break;
}
}
maps.add(map);
}
renderJson(maps);
}
Aggregations