|
@ -168,6 +168,7 @@ public class SysLoginController extends BaseController { |
|
|
// 用户信息
|
|
|
// 用户信息
|
|
|
SysUser user = UserUtils.getUser(); |
|
|
SysUser user = UserUtils.getUser(); |
|
|
List<SysMenu> menus = menuService.selectMenuTreeByUserId(user.getId()); |
|
|
List<SysMenu> menus = menuService.selectMenuTreeByUserId(user.getId()); |
|
|
|
|
|
// List<SysMenu> menus = menuService.selectMenuTreeByUserId("1");
|
|
|
return AjaxResult.success(menuService.buildMenus(menus)); |
|
|
return AjaxResult.success(menuService.buildMenus(menus)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -241,7 +242,7 @@ public class SysLoginController extends BaseController { |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 根据用户token获取资源权限 |
|
|
* 根据用户token获取资源权限 |
|
|
* @param token |
|
|
* @param |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
// @GetMapping("/getSingleRotes/{token}")
|
|
|
// @GetMapping("/getSingleRotes/{token}")
|
|
@ -278,18 +279,23 @@ public class SysLoginController extends BaseController { |
|
|
@Transactional |
|
|
@Transactional |
|
|
public void run() { |
|
|
public void run() { |
|
|
try { |
|
|
try { |
|
|
|
|
|
System.out.println("---------------------------------------------------"); |
|
|
WaterResult result = waterRequestUtil.getUserResource(token); |
|
|
WaterResult result = waterRequestUtil.getUserResource(token); |
|
|
List<SingleMenu> singleMenus = JSONObject.parseArray(result.getData(), SingleMenu.class); |
|
|
List<SingleMenu> singleMenus = JSONObject.parseArray(result.getData(), SingleMenu.class); |
|
|
List<SingleMenu> singleAllMenus = new ArrayList<>(); |
|
|
List<SingleMenu> singleAllMenus = new ArrayList<>(); |
|
|
setChildren(singleMenus,singleAllMenus); |
|
|
setChildren(singleMenus,singleAllMenus); |
|
|
|
|
|
String data = waterResult.getData(); |
|
|
|
|
|
JSONObject datajson = JSONObject.parseObject(data); |
|
|
|
|
|
List<String> functionPerms = datajson.getJSONArray("functionPerms").toJavaList(String.class); |
|
|
List<String> collect = singleAllMenus.stream().map(singleMenu -> singleMenu.getPermissionCode()).collect(Collectors.toList()); |
|
|
List<String> collect = singleAllMenus.stream().map(singleMenu -> singleMenu.getPermissionCode()).collect(Collectors.toList()); |
|
|
|
|
|
collect.addAll(functionPerms); |
|
|
QueryWrapper<SysMenu> menuQueryWrapper = Wrappers.query(); |
|
|
QueryWrapper<SysMenu> menuQueryWrapper = Wrappers.query(); |
|
|
menuQueryWrapper.in("perms",collect); |
|
|
menuQueryWrapper.in("perms",collect); |
|
|
List<SysMenu> menus = sysMenuService.list(menuQueryWrapper); |
|
|
List<SysMenu> menus = sysMenuService.list(menuQueryWrapper); |
|
|
|
|
|
List<String> menuids = menus.stream().map(menu -> { |
|
|
|
|
|
return menu.getId(); |
|
|
|
|
|
}).collect(Collectors.toList()); |
|
|
// WaterResult waterResult = waterRequestUtil.authUser(token);
|
|
|
// WaterResult waterResult = waterRequestUtil.authUser(token);
|
|
|
String data = waterResult.getData(); |
|
|
|
|
|
JSONObject datajson = JSONObject.parseObject(data); |
|
|
|
|
|
// List<String> functionPerms = datajson.getJSONArray("functionPerms").toJavaList(String.class);
|
|
|
|
|
|
List<String> roles = datajson.getJSONArray("roles").toJavaList(String.class); |
|
|
List<String> roles = datajson.getJSONArray("roles").toJavaList(String.class); |
|
|
log.info("获取的权限有:"+roles); |
|
|
log.info("获取的权限有:"+roles); |
|
|
if(CollectionUtil.isNotEmpty(roles)) { |
|
|
if(CollectionUtil.isNotEmpty(roles)) { |
|
@ -297,18 +303,27 @@ public class SysLoginController extends BaseController { |
|
|
sysRoleQueryWrapper.in("role_key", roles); |
|
|
sysRoleQueryWrapper.in("role_key", roles); |
|
|
List<SysRole> roleList = sysRoleService.list(sysRoleQueryWrapper); |
|
|
List<SysRole> roleList = sysRoleService.list(sysRoleQueryWrapper); |
|
|
if (CollectionUtil.isNotEmpty(roleList)) { |
|
|
if (CollectionUtil.isNotEmpty(roleList)) { |
|
|
QueryWrapper<SysRoleMenu> sysRoleMenuQueryWrapper = Wrappers.query(); |
|
|
|
|
|
List<String> rids = roleList.stream().map(role -> role.getId()).collect(Collectors.toList()); |
|
|
List<String> rids = roleList.stream().map(role -> role.getId()).collect(Collectors.toList()); |
|
|
|
|
|
for (SysRole sysRole : roleList) { |
|
|
|
|
|
QueryWrapper<SysRoleMenu> sysRoleMenuQueryWrapper = Wrappers.query(); |
|
|
if (CollectionUtil.isNotEmpty(rids)) { |
|
|
if (CollectionUtil.isNotEmpty(rids)) { |
|
|
sysRoleMenuQueryWrapper.in("role_id", rids); |
|
|
sysRoleMenuQueryWrapper.eq("role_id", sysRole.getId()); |
|
|
|
|
|
List<SysRoleMenu> list = sysRoleMenuService.list(sysRoleMenuQueryWrapper); |
|
|
|
|
|
List<String> menutwoids = list.stream().map(menu -> { |
|
|
|
|
|
return menu.getMenuId(); |
|
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
|
List<String> disjunction = (List<String>) CollectionUtil.disjunction(menuids, menutwoids); |
|
|
|
|
|
menuids.removeAll(menutwoids); |
|
|
|
|
|
if(CollectionUtil.isNotEmpty(disjunction)) { //存在不存在的按钮 进行删除
|
|
|
|
|
|
sysRoleMenuQueryWrapper.in("menu_id", disjunction); |
|
|
sysRoleMenuService.remove(sysRoleMenuQueryWrapper); |
|
|
sysRoleMenuService.remove(sysRoleMenuQueryWrapper); |
|
|
} |
|
|
} |
|
|
for (SysRole sysRole : roleList) { |
|
|
} |
|
|
for (SysMenu menu : menus) { |
|
|
for (String menu : menuids) { |
|
|
SysRoleMenu sysRoleMenu = new SysRoleMenu(); |
|
|
SysRoleMenu sysRoleMenu = new SysRoleMenu(); |
|
|
sysRoleMenu.preInsert(); |
|
|
sysRoleMenu.preInsert(); |
|
|
sysRoleMenu.setRoleId(sysRole.getId()); |
|
|
sysRoleMenu.setRoleId(sysRole.getId()); |
|
|
sysRoleMenu.setMenuId(menu.getId()); |
|
|
sysRoleMenu.setMenuId(menu); |
|
|
sysRoleMenuService.save(sysRoleMenu); |
|
|
sysRoleMenuService.save(sysRoleMenu); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -329,7 +344,7 @@ public class SysLoginController extends BaseController { |
|
|
for (SingleMenu singleMenu : |
|
|
for (SingleMenu singleMenu : |
|
|
singleMenus) { //剔除掉不符合的
|
|
|
singleMenus) { //剔除掉不符合的
|
|
|
if(singleMenu.getVisible()!=null&&singleMenu.getStatus()!=null) { |
|
|
if(singleMenu.getVisible()!=null&&singleMenu.getStatus()!=null) { |
|
|
if (singleMenu.getVisible().equals("1") && singleMenu.getStatus().equals("1")) { |
|
|
if (singleMenu.getStatus().equals("1")) { |
|
|
singleAllMenus.add(singleMenu); |
|
|
singleAllMenus.add(singleMenu); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -337,7 +352,7 @@ public class SysLoginController extends BaseController { |
|
|
List<SingleMenu> children = singleMenu.getChildren(); |
|
|
List<SingleMenu> children = singleMenu.getChildren(); |
|
|
for (SingleMenu child : children) { |
|
|
for (SingleMenu child : children) { |
|
|
if(singleMenu.getVisible()!=null&&singleMenu.getStatus()!=null) { |
|
|
if(singleMenu.getVisible()!=null&&singleMenu.getStatus()!=null) { |
|
|
if (singleMenu.getVisible().equals("1") && singleMenu.getStatus().equals("1")) { |
|
|
if (singleMenu.getStatus().equals("1")) { |
|
|
singleAllMenus.add(child); |
|
|
singleAllMenus.add(child); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|