|
@ -29,6 +29,7 @@ import com.kms.config.singleDomain.SingleRole; |
|
|
import com.kms.framework.manager.AsyncManager; |
|
|
import com.kms.framework.manager.AsyncManager; |
|
|
import com.kms.framework.manager.factory.AsyncFactory; |
|
|
import com.kms.framework.manager.factory.AsyncFactory; |
|
|
import com.kms.framework.web.service.SysPermissionService; |
|
|
import com.kms.framework.web.service.SysPermissionService; |
|
|
|
|
|
import com.kms.system.domain.SysRoleMenu; |
|
|
import com.kms.system.service.SysMenuService; |
|
|
import com.kms.system.service.SysMenuService; |
|
|
import com.kms.system.service.SysRoleMenuService; |
|
|
import com.kms.system.service.SysRoleMenuService; |
|
|
import com.kms.system.service.SysRoleService; |
|
|
import com.kms.system.service.SysRoleService; |
|
@ -46,8 +47,13 @@ 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.List; |
|
|
import java.util.List; |
|
|
import java.util.Set; |
|
|
import java.util.Set; |
|
|
|
|
|
import java.util.concurrent.ExecutorService; |
|
|
|
|
|
import java.util.concurrent.Executors; |
|
|
|
|
|
import java.util.concurrent.ThreadPoolExecutor; |
|
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 登录验证 |
|
|
* 登录验证 |
|
@ -220,8 +226,64 @@ public class SysLoginController extends BaseController { |
|
|
@Autowired |
|
|
@Autowired |
|
|
SysMenuService sysMenuService; |
|
|
SysMenuService sysMenuService; |
|
|
|
|
|
|
|
|
|
|
|
ExecutorService executorService = Executors.newFixedThreadPool(5); |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 根据用户token获取资源权限 |
|
|
|
|
|
* @param token |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
@GetMapping("/getSingleRotes/{token}") |
|
|
@GetMapping("/getSingleRotes/{token}") |
|
|
public AjaxResult getSingleRotes(@PathVariable String token){ |
|
|
public AjaxResult getSingleRotes(@PathVariable String token){ |
|
|
|
|
|
// WaterResult waterResult = waterRequestUtil.authUser(token);
|
|
|
|
|
|
// String data = waterResult.getData();
|
|
|
|
|
|
// JSONObject jsonObject = JSONObject.parseObject(data);
|
|
|
|
|
|
// List<String> functionPerms = jsonObject.getJSONArray("functionPerms").toJavaList(String.class);
|
|
|
|
|
|
// List<String> roles = jsonObject.getJSONArray("roles").toJavaList(String.class);
|
|
|
|
|
|
// QueryWrapper<SysRole> query = Wrappers.query();
|
|
|
|
|
|
// query.in("role_key",roles);
|
|
|
|
|
|
// List<SysRole> roleList = sysRoleService.list(query);
|
|
|
|
|
|
// QueryWrapper<SysMenu> menuQueryWrapper = Wrappers.query();
|
|
|
|
|
|
// menuQueryWrapper.in("perms",functionPerms);
|
|
|
|
|
|
// List<SysMenu> menus = sysMenuService.list(menuQueryWrapper);
|
|
|
|
|
|
|
|
|
|
|
|
WaterResult result = waterRequestUtil.getUserResource(token); |
|
|
|
|
|
List<SingleMenu> singleMenus = JSONObject.parseArray(result.getData(), SingleMenu.class); |
|
|
|
|
|
List<SingleMenu> singleAllMenus = new ArrayList<>(); |
|
|
|
|
|
for (SingleMenu singleMenu : singleMenus) { //剔除掉不符合的
|
|
|
|
|
|
if(singleMenu.getVisible().equals("1")&&singleMenu.getStats().equals("1")) { |
|
|
|
|
|
singleAllMenus.add(singleMenu); |
|
|
|
|
|
} |
|
|
|
|
|
if(!singleMenu.getChildren().isEmpty()){ |
|
|
|
|
|
List<SingleMenu> children = singleMenu.getChildren(); |
|
|
|
|
|
for (SingleMenu child : children) { |
|
|
|
|
|
if(singleMenu.getVisible().equals("1")&&singleMenu.getStats().equals("1")) { |
|
|
|
|
|
singleAllMenus.add(child); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
List<String> collect = singleMenus.stream().map(singleMenu -> singleMenu.getPermissionCode()).collect(Collectors.toList()); |
|
|
|
|
|
QueryWrapper<SysMenu> menuQueryWrapper = Wrappers.query(); |
|
|
|
|
|
menuQueryWrapper.in("perms",collect); |
|
|
|
|
|
List<SysMenu> menus = sysMenuService.list(menuQueryWrapper); |
|
|
|
|
|
executorService.submit(new RolePerms(token,menus)); |
|
|
|
|
|
return AjaxResult.success(menuService.buildMenus(menus)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
class RolePerms implements Runnable{ |
|
|
|
|
|
|
|
|
|
|
|
public String token; |
|
|
|
|
|
|
|
|
|
|
|
public List<SysMenu> menus; |
|
|
|
|
|
|
|
|
|
|
|
public RolePerms(String token,List<SysMenu> menus){ |
|
|
|
|
|
this.token = token; |
|
|
|
|
|
this.menus = menus; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void run() { |
|
|
WaterResult waterResult = waterRequestUtil.authUser(token); |
|
|
WaterResult waterResult = waterRequestUtil.authUser(token); |
|
|
String data = waterResult.getData(); |
|
|
String data = waterResult.getData(); |
|
|
JSONObject jsonObject = JSONObject.parseObject(data); |
|
|
JSONObject jsonObject = JSONObject.parseObject(data); |
|
@ -230,16 +292,16 @@ public class SysLoginController extends BaseController { |
|
|
QueryWrapper<SysRole> query = Wrappers.query(); |
|
|
QueryWrapper<SysRole> query = Wrappers.query(); |
|
|
query.in("role_key",roles); |
|
|
query.in("role_key",roles); |
|
|
List<SysRole> roleList = sysRoleService.list(query); |
|
|
List<SysRole> roleList = sysRoleService.list(query); |
|
|
QueryWrapper<SysMenu> menuQueryWrapper = Wrappers.query(); |
|
|
for (SysRole sysRole : roleList) { |
|
|
query.in("perms",functionPerms); |
|
|
for (SysMenu menu : menus) { |
|
|
List<SysMenu> menus = sysMenuService.list(menuQueryWrapper); |
|
|
SysRoleMenu sysRoleMenu = new SysRoleMenu(); |
|
|
|
|
|
sysRoleMenu.preInsert(); |
|
|
|
|
|
sysRoleMenu.setRoleId(sysRole.getId()); |
|
|
WaterResult result = waterRequestUtil.getUserResource(token); |
|
|
sysRoleMenu.setMenuId(menu.getId()); |
|
|
List<SingleMenu> singleUserList = JSONObject.parseArray(result.getData(), SingleMenu.class); |
|
|
sysRoleMenuService.save(sysRoleMenu); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
return null; |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|