Search in sources :

Example 1 with SysRoleMenu

use of com.hxkj.system.model.SysRoleMenu 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)

Example 2 with SysRoleMenu

use of com.hxkj.system.model.SysRoleMenu in project my_curd by qinyou.

the class SysRoleController method givePermission.

/**
 * 用户赋权限
 */
@Before(Tx.class)
public void givePermission() {
    Integer roleId = getParaToInt("roleId");
    String permissIds = getPara("permissIds");
    try {
        String deleteSql = "delete from  sys_role_menu where role_id = ?";
        Db.update(deleteSql, roleId);
        if (StrKit.notBlank(permissIds)) {
            String[] menuIds = permissIds.split(";");
            for (int i = 0; i < menuIds.length; i++) {
                SysRoleMenu sysRoleMenu = new SysRoleMenu();
                sysRoleMenu.setRoleId(roleId);
                sysRoleMenu.setMenuId(Integer.parseInt(menuIds[i]));
                sysRoleMenu.save();
            }
        }
        renderText("赋权成功");
    } catch (ActiveRecordException e) {
        e.printStackTrace();
        renderText("赋权失败");
    }
}
Also used : ActiveRecordException(com.jfinal.plugin.activerecord.ActiveRecordException) SysRoleMenu(com.hxkj.system.model.SysRoleMenu) Before(com.jfinal.aop.Before)

Aggregations

SysRoleMenu (com.hxkj.system.model.SysRoleMenu)2 SysMenu (com.hxkj.system.model.SysMenu)1 Before (com.jfinal.aop.Before)1 ActiveRecordException (com.jfinal.plugin.activerecord.ActiveRecordException)1