From dae7092f0d87853c414a3ae668701ea805016247 Mon Sep 17 00:00:00 2001 From: ljf Date: Fri, 15 Mar 2024 14:58:40 +0800 Subject: [PATCH] shujutongbu --- .../java/com/kms/config/WaterRequestUtil.java | 2 +- .../kms/config/scheduled/WaterScheduled.java | 1 + .../system/CmsCallBackController.java | 1 + .../controller/system/SysLoginController.java | 97 ++++++++++++------- .../web/controller/tool/TestController.java | 2 +- 5 files changed, 64 insertions(+), 39 deletions(-) diff --git a/jwtech-admin/src/main/java/com/kms/config/WaterRequestUtil.java b/jwtech-admin/src/main/java/com/kms/config/WaterRequestUtil.java index 87215f28..08d33664 100644 --- a/jwtech-admin/src/main/java/com/kms/config/WaterRequestUtil.java +++ b/jwtech-admin/src/main/java/com/kms/config/WaterRequestUtil.java @@ -289,7 +289,7 @@ public class WaterRequestUtil { if(waterResult==null){ throw new CustomException("请求异常"); } - if(waterResult.getCode()!=200&&waterResult.getSuccess()){ + if(waterResult.getCode()!=200||!waterResult.getSuccess()){ throw new CustomException("请求失败,原因:"+waterResult.getMessage()); } } diff --git a/jwtech-admin/src/main/java/com/kms/config/scheduled/WaterScheduled.java b/jwtech-admin/src/main/java/com/kms/config/scheduled/WaterScheduled.java index c035137c..39711d71 100644 --- a/jwtech-admin/src/main/java/com/kms/config/scheduled/WaterScheduled.java +++ b/jwtech-admin/src/main/java/com/kms/config/scheduled/WaterScheduled.java @@ -72,6 +72,7 @@ public class WaterScheduled { user.setId(IdUtils.fastSimpleUUID()); user.setIsPcUser("0"); user.setDelFlag("0"); + user.setUserType("04"); user.setMd5(MD5Util.MD5Encode(singleUser.toString(), "utf-8")); }else { String md = MD5Util.MD5Encode(singleUser.toString(), "utf-8"); diff --git a/jwtech-admin/src/main/java/com/kms/web/controller/system/CmsCallBackController.java b/jwtech-admin/src/main/java/com/kms/web/controller/system/CmsCallBackController.java index 1faeb4dd..7ed8cd7d 100644 --- a/jwtech-admin/src/main/java/com/kms/web/controller/system/CmsCallBackController.java +++ b/jwtech-admin/src/main/java/com/kms/web/controller/system/CmsCallBackController.java @@ -80,6 +80,7 @@ public class CmsCallBackController { user.setId(IdUtils.fastSimpleUUID()); user.setIsPcUser("0"); user.setDelFlag("0"); + user.setUserType("04"); user.setPhonenumber(singleUser.getPhone()); user.setNickName(singleUser.getName()); user.setUserName(singleUser.getUsername()); diff --git a/jwtech-admin/src/main/java/com/kms/web/controller/system/SysLoginController.java b/jwtech-admin/src/main/java/com/kms/web/controller/system/SysLoginController.java index cd5394a9..e50ccc7f 100644 --- a/jwtech-admin/src/main/java/com/kms/web/controller/system/SysLoginController.java +++ b/jwtech-admin/src/main/java/com/kms/web/controller/system/SysLoginController.java @@ -55,10 +55,7 @@ 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.Arrays; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -222,7 +219,7 @@ public class SysLoginController extends BaseController { } AsyncManager.me().execute(AsyncFactory.recordLogininfor(sysUser.getUserName(), Constants.LOGIN_SUCCESS, "登录成功")); StpUtil.login(sysUser.getId()); - StpUtil.getSession().set("jianwei-user",user); + StpUtil.getSession().set("jianwei-user",sysUser); String tokenValue = StpUtil.getTokenValue(); ajax.put("token",tokenValue); ajax.put("authorization",token); @@ -287,21 +284,7 @@ public class SysLoginController extends BaseController { WaterResult result = waterRequestUtil.getUserResource(token); List singleMenus = JSONObject.parseArray(result.getData(), SingleMenu.class); List singleAllMenus = new ArrayList<>(); - if(CollectionUtil.isNotEmpty(singleMenus)) { - for (SingleMenu singleMenu : singleMenus) { //剔除掉不符合的 - if (singleMenu.getVisible().equals("1") && singleMenu.getStatus().equals("1")) { - singleAllMenus.add(singleMenu); - } - if (!singleMenu.getChildren().isEmpty()) { - List children = singleMenu.getChildren(); - for (SingleMenu child : children) { - if (singleMenu.getVisible().equals("1") && singleMenu.getStatus().equals("1")) { - singleAllMenus.add(child); - } - } - } - } - } + setChildren(singleMenus,singleAllMenus); List collect = singleAllMenus.stream().map(singleMenu -> singleMenu.getPermissionCode()).collect(Collectors.toList()); QueryWrapper menuQueryWrapper = Wrappers.query(); menuQueryWrapper.in("perms",collect); @@ -311,32 +294,72 @@ public class SysLoginController extends BaseController { JSONObject datajson = JSONObject.parseObject(data); // List functionPerms = datajson.getJSONArray("functionPerms").toJavaList(String.class); List roles = datajson.getJSONArray("roles").toJavaList(String.class); - QueryWrapper sysRoleQueryWrapper = Wrappers.query(); - sysRoleQueryWrapper.in("role_key", roles); - List roleList = sysRoleService.list(sysRoleQueryWrapper); - if (CollectionUtil.isNotEmpty(roleList)) { - QueryWrapper sysRoleMenuQueryWrapper = Wrappers.query(); - List rids = roleList.stream().map(role -> role.getId()).collect(Collectors.toList()); - if(CollectionUtil.isNotEmpty(rids)) { - sysRoleMenuQueryWrapper.in("role_id",rids); - sysRoleMenuService.remove(sysRoleMenuQueryWrapper); - } - 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); + log.info("获取的权限有:"+roles); + if(CollectionUtil.isNotEmpty(roles)) { + QueryWrapper sysRoleQueryWrapper = Wrappers.query(); + sysRoleQueryWrapper.in("role_key", roles); + List roleList = sysRoleService.list(sysRoleQueryWrapper); + if (CollectionUtil.isNotEmpty(roleList)) { + QueryWrapper sysRoleMenuQueryWrapper = Wrappers.query(); + List rids = roleList.stream().map(role -> role.getId()).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(rids)) { + sysRoleMenuQueryWrapper.in("role_id", rids); + sysRoleMenuService.remove(sysRoleMenuQueryWrapper); + } + 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); + } } } } }catch (Exception e){ log.error("同步菜单权限失败:"+e.getMessage()); + throw e; }finally { countDownLatch.countDown(); } } } + + public static void setChildren(List singleMenus,List 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 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 arrayList = new ArrayList<>(); + List singleMenus = JSONObject.parseArray(s, SingleMenu.class); + setChildren(singleMenus,arrayList); + System.out.println(arrayList); + } + } diff --git a/jwtech-admin/src/main/java/com/kms/web/controller/tool/TestController.java b/jwtech-admin/src/main/java/com/kms/web/controller/tool/TestController.java index 3c80c9e7..b72502b5 100644 --- a/jwtech-admin/src/main/java/com/kms/web/controller/tool/TestController.java +++ b/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.getUserResource("bearer 0e6d6082-9ae7-4313-b6b1-ea45179eee1e"); + WaterResult waterResult = waterRequestUtil.getUserResource("bearer 56dee4e6-4834-42ff-80be-bcda38478187"); String data = waterResult.getData(); // String records = JSONObject.parseObject(data).getString("records"); // List singleUserList = JSONObject.parseArray(records, SingleUser.class);