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);
}
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("赋权失败");
}
}
Aggregations