Browse Source

修改

dev_kxc
ljf 1 year ago
parent
commit
65f6a65aa7
  1. 1
      jwtech-admin/src/main/java/com/kms/config/singleDomain/SingleMenu.java
  2. 86
      jwtech-admin/src/main/java/com/kms/web/controller/system/SysLoginController.java
  3. 2
      jwtech-admin/src/main/java/com/kms/web/controller/tool/TestController.java
  4. 4
      jwtech-admin/src/main/resources/application-test.yml

1
jwtech-admin/src/main/java/com/kms/config/singleDomain/SingleMenu.java

@ -19,6 +19,7 @@ public class SingleMenu {
private String iframe;//是否外链
private Integer seq; //排序
private String stats; //状态 1启用 0停用
private String permissionCode; //权限标识
private List<SingleMenu> children;
}

86
jwtech-admin/src/main/java/com/kms/web/controller/system/SysLoginController.java

@ -29,6 +29,7 @@ import com.kms.config.singleDomain.SingleRole;
import com.kms.framework.manager.AsyncManager;
import com.kms.framework.manager.factory.AsyncFactory;
import com.kms.framework.web.service.SysPermissionService;
import com.kms.system.domain.SysRoleMenu;
import com.kms.system.service.SysMenuService;
import com.kms.system.service.SysRoleMenuService;
import com.kms.system.service.SysRoleService;
@ -46,8 +47,13 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
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,26 +226,82 @@ public class SysLoginController extends BaseController {
@Autowired
SysMenuService sysMenuService;
ExecutorService executorService = Executors.newFixedThreadPool(5);
/**
* 根据用户token获取资源权限
* @param token
* @return
*/
@GetMapping("/getSingleRotes/{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);
// 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();
query.in("perms",functionPerms);
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{
WaterResult result = waterRequestUtil.getUserResource(token);
List<SingleMenu> singleUserList = JSONObject.parseArray(result.getData(), SingleMenu.class);
public String token;
public List<SysMenu> menus;
return null;
public RolePerms(String token,List<SysMenu> menus){
this.token = token;
this.menus = menus;
}
@Override
public void run() {
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);
for (SysRole sysRole : roleList) {
for (SysMenu menu : menus) {
SysRoleMenu sysRoleMenu = new SysRoleMenu();
sysRoleMenu.preInsert();
sysRoleMenu.setRoleId(sysRole.getId());
sysRoleMenu.setMenuId(menu.getId());
sysRoleMenuService.save(sysRoleMenu);
}
}
}
}
}

2
jwtech-admin/src/main/java/com/kms/web/controller/tool/TestController.java

@ -47,7 +47,7 @@ public class TestController extends BaseController
@GetMapping("test")
public WaterResult test(){
WaterResult waterResult = waterRequestUtil.authUser("bearer 0e6d6082-9ae7-4313-b6b1-ea45179eee1e");
WaterResult waterResult = waterRequestUtil.getUserResource("bearer 0e6d6082-9ae7-4313-b6b1-ea45179eee1e");
String data = waterResult.getData();
// String records = JSONObject.parseObject(data).getString("records");
// List<SingleUser> singleUserList = JSONObject.parseArray(records, SingleUser.class);

4
jwtech-admin/src/main/resources/application-test.yml

@ -257,8 +257,8 @@ water:
systemCode: sgc-jg
systemName: 水工程应用-水利工程建设管理模块
#请求测试环境网关
# url: http://19.25.35.204:31190/data_center/gateway/api
url: http://119.25.40.10:31190/data_center/gateway/portal
url: http://19.25.35.204:31190/data_center/gateway/api
# url: http://119.25.40.10:31190/data_center/gateway/portal
#应用token
paasToken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzeXN0ZW1JZCI6IjE3MzI3MDMxMTE1NDc0ODIxMTQifQ.4oiD3WBwrxT5z8goAvA9O88vsYVxwaE-8vyQmWl7xbg
#应用id

Loading…
Cancel
Save