|
@ -55,10 +55,7 @@ import javax.servlet.ServletException; |
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
import java.io.IOException; |
|
|
import java.io.IOException; |
|
|
import java.util.ArrayList; |
|
|
import java.util.*; |
|
|
import java.util.Arrays; |
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
import java.util.Set; |
|
|
|
|
|
import java.util.concurrent.*; |
|
|
import java.util.concurrent.*; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@ -222,7 +219,7 @@ public class SysLoginController extends BaseController { |
|
|
} |
|
|
} |
|
|
AsyncManager.me().execute(AsyncFactory.recordLogininfor(sysUser.getUserName(), Constants.LOGIN_SUCCESS, "登录成功")); |
|
|
AsyncManager.me().execute(AsyncFactory.recordLogininfor(sysUser.getUserName(), Constants.LOGIN_SUCCESS, "登录成功")); |
|
|
StpUtil.login(sysUser.getId()); |
|
|
StpUtil.login(sysUser.getId()); |
|
|
StpUtil.getSession().set("jianwei-user",user); |
|
|
StpUtil.getSession().set("jianwei-user",sysUser); |
|
|
String tokenValue = StpUtil.getTokenValue(); |
|
|
String tokenValue = StpUtil.getTokenValue(); |
|
|
ajax.put("token",tokenValue); |
|
|
ajax.put("token",tokenValue); |
|
|
ajax.put("authorization",token); |
|
|
ajax.put("authorization",token); |
|
@ -287,21 +284,7 @@ public class SysLoginController extends BaseController { |
|
|
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<>(); |
|
|
if(CollectionUtil.isNotEmpty(singleMenus)) { |
|
|
setChildren(singleMenus,singleAllMenus); |
|
|
for (SingleMenu singleMenu : singleMenus) { //剔除掉不符合的
|
|
|
|
|
|
if (singleMenu.getVisible().equals("1") && singleMenu.getStatus().equals("1")) { |
|
|
|
|
|
singleAllMenus.add(singleMenu); |
|
|
|
|
|
} |
|
|
|
|
|
if (!singleMenu.getChildren().isEmpty()) { |
|
|
|
|
|
List<SingleMenu> children = singleMenu.getChildren(); |
|
|
|
|
|
for (SingleMenu child : children) { |
|
|
|
|
|
if (singleMenu.getVisible().equals("1") && singleMenu.getStatus().equals("1")) { |
|
|
|
|
|
singleAllMenus.add(child); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
List<String> collect = singleAllMenus.stream().map(singleMenu -> singleMenu.getPermissionCode()).collect(Collectors.toList()); |
|
|
List<String> collect = singleAllMenus.stream().map(singleMenu -> singleMenu.getPermissionCode()).collect(Collectors.toList()); |
|
|
QueryWrapper<SysMenu> menuQueryWrapper = Wrappers.query(); |
|
|
QueryWrapper<SysMenu> menuQueryWrapper = Wrappers.query(); |
|
|
menuQueryWrapper.in("perms",collect); |
|
|
menuQueryWrapper.in("perms",collect); |
|
@ -311,32 +294,72 @@ public class SysLoginController extends BaseController { |
|
|
JSONObject datajson = JSONObject.parseObject(data); |
|
|
JSONObject datajson = JSONObject.parseObject(data); |
|
|
// List<String> functionPerms = datajson.getJSONArray("functionPerms").toJavaList(String.class);
|
|
|
// 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); |
|
|
QueryWrapper<SysRole> sysRoleQueryWrapper = Wrappers.query(); |
|
|
log.info("获取的权限有:"+roles); |
|
|
sysRoleQueryWrapper.in("role_key", roles); |
|
|
if(CollectionUtil.isNotEmpty(roles)) { |
|
|
List<SysRole> roleList = sysRoleService.list(sysRoleQueryWrapper); |
|
|
QueryWrapper<SysRole> sysRoleQueryWrapper = Wrappers.query(); |
|
|
if (CollectionUtil.isNotEmpty(roleList)) { |
|
|
sysRoleQueryWrapper.in("role_key", roles); |
|
|
QueryWrapper<SysRoleMenu> sysRoleMenuQueryWrapper = Wrappers.query(); |
|
|
List<SysRole> roleList = sysRoleService.list(sysRoleQueryWrapper); |
|
|
List<String> rids = roleList.stream().map(role -> role.getId()).collect(Collectors.toList()); |
|
|
if (CollectionUtil.isNotEmpty(roleList)) { |
|
|
if(CollectionUtil.isNotEmpty(rids)) { |
|
|
QueryWrapper<SysRoleMenu> sysRoleMenuQueryWrapper = Wrappers.query(); |
|
|
sysRoleMenuQueryWrapper.in("role_id",rids); |
|
|
List<String> rids = roleList.stream().map(role -> role.getId()).collect(Collectors.toList()); |
|
|
sysRoleMenuService.remove(sysRoleMenuQueryWrapper); |
|
|
if (CollectionUtil.isNotEmpty(rids)) { |
|
|
} |
|
|
sysRoleMenuQueryWrapper.in("role_id", rids); |
|
|
for (SysRole sysRole : roleList) { |
|
|
sysRoleMenuService.remove(sysRoleMenuQueryWrapper); |
|
|
for (SysMenu menu : menus) { |
|
|
} |
|
|
SysRoleMenu sysRoleMenu = new SysRoleMenu(); |
|
|
for (SysRole sysRole : roleList) { |
|
|
sysRoleMenu.preInsert(); |
|
|
for (SysMenu menu : menus) { |
|
|
sysRoleMenu.setRoleId(sysRole.getId()); |
|
|
SysRoleMenu sysRoleMenu = new SysRoleMenu(); |
|
|
sysRoleMenu.setMenuId(menu.getId()); |
|
|
sysRoleMenu.preInsert(); |
|
|
sysRoleMenuService.save(sysRoleMenu); |
|
|
sysRoleMenu.setRoleId(sysRole.getId()); |
|
|
|
|
|
sysRoleMenu.setMenuId(menu.getId()); |
|
|
|
|
|
sysRoleMenuService.save(sysRoleMenu); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}catch (Exception e){ |
|
|
}catch (Exception e){ |
|
|
log.error("同步菜单权限失败:"+e.getMessage()); |
|
|
log.error("同步菜单权限失败:"+e.getMessage()); |
|
|
|
|
|
throw e; |
|
|
}finally { |
|
|
}finally { |
|
|
countDownLatch.countDown(); |
|
|
countDownLatch.countDown(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void setChildren(List<SingleMenu> singleMenus,List<SingleMenu> singleAllMenus){ |
|
|
|
|
|
if(CollectionUtil.isNotEmpty(singleMenus)) { |
|
|
|
|
|
for (SingleMenu singleMenu : |
|
|
|
|
|
singleMenus) { //剔除掉不符合的
|
|
|
|
|
|
if(singleMenu.getVisible()!=null&&singleMenu.getStatus()!=null) { |
|
|
|
|
|
if (singleMenu.getVisible().equals("1") && singleMenu.getStatus().equals("1")) { |
|
|
|
|
|
singleAllMenus.add(singleMenu); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (CollectionUtil.isNotEmpty(singleMenu.getChildren())) { |
|
|
|
|
|
List<SingleMenu> children = singleMenu.getChildren(); |
|
|
|
|
|
for (SingleMenu child : children) { |
|
|
|
|
|
if(singleMenu.getVisible()!=null&&singleMenu.getStatus()!=null) { |
|
|
|
|
|
if (singleMenu.getVisible().equals("1") && singleMenu.getStatus().equals("1")) { |
|
|
|
|
|
singleAllMenus.add(child); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if(CollectionUtil.isNotEmpty(child.getChildren())) { |
|
|
|
|
|
setChildren(child.getChildren(),singleAllMenus); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) { |
|
|
|
|
|
String s ="[{\"systemId\":\"1732648267643097090\",\"code\":\"\",\"visible\":\"1\",\"icon\":\"目录图标\",\"pid\":\"0\",\"type\":\"0\",\"compName\":\"\",\"path\":\"\",\"children\":[{\"systemId\":\"1732648267643097090\",\"code\":\"儿子标识\",\"visible\":\"1\",\"icon\":\"儿子图标\",\"pid\":\"1767496685650014209\",\"type\":\"1\",\"compName\":\"儿子组件\",\"path\":\"儿子路径\",\"children\":[{\"systemId\":\"1732648267643097090\",\"code\":\"system:projectinfo:edit\",\"visible\":\"1\",\"pid\":\"1767752726962860033\",\"type\":\"1\",\"name\":\"专题管理修改\",\"id\":\"1768470222661578753\",\"iframe\":\"0\",\"permissionCode\":\"system:projectinfo:edit\",\"seq\":1,\"status\":\"1\"}],\"name\":\"专题管理\",\"id\":\"1767752726962860033\",\"iframe\":\"0\",\"permissionCode\":\"project:special:list\",\"seq\":1,\"status\":\"1\"}],\"name\":\"前期项目管理\",\"id\":\"1767496685650014209\",\"iframe\":\"0\",\"permissionCode\":\"upfront:project:management\",\"seq\":1,\"status\":\"1\"}]"; |
|
|
|
|
|
ArrayList<SingleMenu> arrayList = new ArrayList<>(); |
|
|
|
|
|
List<SingleMenu> singleMenus = JSONObject.parseArray(s, SingleMenu.class); |
|
|
|
|
|
setChildren(singleMenus,arrayList); |
|
|
|
|
|
System.out.println(arrayList); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|