Search in sources :

Example 11 with SysMenu

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);
}
Also used : SysRoleMenu(com.hxkj.system.model.SysRoleMenu) SysMenu(com.hxkj.system.model.SysMenu)

Aggregations

SysMenu (com.hxkj.system.model.SysMenu)11 SysUser (com.hxkj.system.model.SysUser)2 SysUserRole (com.hxkj.system.model.SysUserRole)2 ArrayList (java.util.ArrayList)2 HashMap (java.util.HashMap)2 Map (java.util.Map)2 BaseController (com.hxkj.common.util.BaseController)1 SysRoleMenu (com.hxkj.system.model.SysRoleMenu)1 Before (com.jfinal.aop.Before)1