From 499ee6d6eb0e0c38cdc23ebe3c320f46dd498d0a Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期一, 13 一月 2025 16:07:21 +0800 Subject: [PATCH] 添加isEmpty参数优化库位查找逻辑 --- src/main/java/com/zy/common/web/AuthController.java | 233 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 174 insertions(+), 59 deletions(-) diff --git a/src/main/java/com/zy/common/web/AuthController.java b/src/main/java/com/zy/common/web/AuthController.java index e311882..e4d60dc 100644 --- a/src/main/java/com/zy/common/web/AuthController.java +++ b/src/main/java/com/zy/common/web/AuthController.java @@ -51,10 +51,12 @@ private PermissionService permissionService; @Autowired private RolePermissionService rolePermissionService; + @Autowired + private RolePdaResourceService rolePdaResourceService; @RequestMapping("/login.action") @ManagerAuth(value = ManagerAuth.Auth.NONE, memo = "鐧诲綍") - public R loginAction(String username, String password){ + public R loginAction(String username, String password) { //楠岃瘉璁稿彲璇佹槸鍚︽湁鏁� // LicenseVerify licenseVerify = new LicenseVerify(); // boolean verify = licenseVerify.verify(); @@ -70,13 +72,13 @@ EntityWrapper<User> userWrapper = new EntityWrapper<>(); userWrapper.eq("username", username); User user = userService.selectOne(userWrapper); - if (Cools.isEmpty(user)){ + if (Cools.isEmpty(user)) { return R.parse(CodeRes.USER_10001); } - if (user.getStatus()!=1){ + if (user.getStatus() != 1) { return R.parse(CodeRes.USER_10002); } - if (!user.getPassword().equals(password)){ + if (!user.getPassword().equals(password)) { return R.parse(CodeRes.USER_10003); } String token = Cools.enToken(System.currentTimeMillis() + username, user.getPassword()); @@ -109,7 +111,7 @@ int time = 0; while (time < 3000) { code = RandomValidateCodeUtil.code.get(sd); - if (!Cools.isEmpty(code)){ + if (!Cools.isEmpty(code)) { break; } else { Thread.sleep(10); @@ -122,13 +124,13 @@ @RequestMapping("/user/detail/auth") @ManagerAuth - public R userDetail(){ + public R userDetail() { return R.ok(userService.selectById(getUserId())); } @RequestMapping("/menu/auth") @ManagerAuth - public R menu(){ + public R menu() { // 鑾峰彇鎵�鏈変竴绾ц彍鍗� List<Resource> oneLevel; User user = null; @@ -138,16 +140,16 @@ resourceWrapper = new EntityWrapper<Resource>().eq("level", 2).eq("status", 1).orderBy("sort"); } else { // 婵�娲荤爜楠岃瘉 - if (!SystemProperties.SYSTEM_ACTIVATION) { - return R.ok(); - } +// if (!SystemProperties.SYSTEM_ACTIVATION) { +// return R.ok(); +// } oneLevel = resourceService.selectList(new EntityWrapper<Resource>().eq("level", 1).eq("status", 1).orderBy("sort")); // 鑾峰彇褰撳墠鐢ㄦ埛鐨勬墍鏈変簩绾ц彍鍗� user = userService.selectById(getUserId()); List<RoleResource> roleResources = roleResourceService.selectList(new EntityWrapper<RoleResource>().eq("role_id", user.getRoleId())); List<Long> resourceIds = new ArrayList<>(); roleResources.forEach(roleResource -> resourceIds.add(roleResource.getResourceId())); - if (resourceIds.isEmpty()){ + if (resourceIds.isEmpty()) { return R.ok(); } resourceWrapper = new EntityWrapper<Resource>().in("id", resourceIds).eq("level", 2).eq("status", 1).orderBy("sort"); @@ -165,11 +167,11 @@ // 鏄惁鎷ユ湁鏌ョ湅鏉冮檺 if (getUserId() != 9527) { Resource view = resourceService.selectOne(new EntityWrapper<Resource>().eq("resource_id", resource.getId()).like("code", "#view")); - if (!Cools.isEmpty(view)){ + if (!Cools.isEmpty(view)) { RoleResource param = new RoleResource(); param.setResourceId(view.getId()); param.setRoleId(user.getRoleId()); - if (null == roleResourceService.selectOne(new EntityWrapper<>(param))){ + if (null == roleResourceService.selectOne(new EntityWrapper<>(param))) { continue; } } @@ -194,11 +196,11 @@ @RequestMapping("/power/list/auth") @ManagerAuth - public R powerList(){ + public R powerList() { List<Resource> oneLevels = resourceService.selectList(new EntityWrapper<Resource>().eq("level", 1).eq("status", 1).orderBy("sort")); List<Map> result = new ArrayList<>(); // 涓�绾� - for (Resource oneLevel : oneLevels){ + for (Resource oneLevel : oneLevels) { List<Map> twoLevelsList = new ArrayList<>(); Map<String, Object> oneLevelMap = new HashMap<>(); oneLevelMap.put("title", oneLevel.getName()); @@ -207,7 +209,7 @@ oneLevelMap.put("children", twoLevelsList); List<Resource> twoLevels = resourceService.selectList(new EntityWrapper<Resource>().eq("resource_id", oneLevel.getId()).eq("level", 2).eq("status", 1).orderBy("sort")); // 浜岀骇 - for (Resource twoLevel : twoLevels){ + for (Resource twoLevel : twoLevels) { Map<String, Object> twoLevelMap = new HashMap<>(); twoLevelMap.put("title", twoLevel.getName()); twoLevelMap.put("id", twoLevel.getId()); @@ -217,7 +219,7 @@ twoLevelMap.put("children", threeLevelsList); // 涓夌骇 List<Resource> threeLevels = resourceService.selectList(new EntityWrapper<Resource>().eq("resource_id", twoLevel.getId()).eq("level", 3).eq("status", 1).orderBy("sort")); - for (Resource threeLevel : threeLevels){ + for (Resource threeLevel : threeLevels) { Map<String, Object> threeLevelMap = new HashMap<>(); threeLevelMap.put("title", threeLevel.getName()); threeLevelMap.put("id", threeLevel.getId()); @@ -235,7 +237,6 @@ functions.put("title", "pda鍔熻兘"); functions.put("id", "function"); functions.put("spread", true); - functions.put("checked", false); List<Map> funcs = new ArrayList<>(); functions.put("children", funcs); List<PdaResource> oneLevs = pdaResourceService.selectList(new EntityWrapper<PdaResource>().eq("level", 1).eq("status", 1).orderBy("sort")); @@ -246,26 +247,26 @@ oneLevelMap.put("title", oneLev.getName()); oneLevelMap.put("id", oneLev.getId()); oneLevelMap.put("spread", true); - oneLevelMap.put("checked", true); + oneLevelMap.put("checked", false); oneLevelMap.put("children", twoLevelsList); List<PdaResource> twoLevels = pdaResourceService.selectList(new EntityWrapper<PdaResource>().eq("resource_id", oneLev.getId()).eq("level", 2).eq("status", 1).orderBy("sort")); // 浜岀骇 - for (PdaResource twoLevel : twoLevels){ + for (PdaResource twoLevel : twoLevels) { Map<String, Object> twoLevelMap = new HashMap<>(); twoLevelMap.put("title", twoLevel.getName()); twoLevelMap.put("id", twoLevel.getId()); twoLevelMap.put("spread", false); - twoLevelMap.put("checked", true); + twoLevelMap.put("checked", false); List<Map> threeLevelsList = new ArrayList<>(); twoLevelMap.put("children", threeLevelsList); // 涓夌骇 List<PdaResource> threeLevels = pdaResourceService.selectList(new EntityWrapper<PdaResource>().eq("resource_id", twoLevel.getId()).eq("level", 3).eq("status", 1).orderBy("sort")); - for (PdaResource threeLevel : threeLevels){ + for (PdaResource threeLevel : threeLevels) { Map<String, Object> threeLevelMap = new HashMap<>(); threeLevelMap.put("title", threeLevel.getName()); threeLevelMap.put("id", threeLevel.getId()); - threeLevelMap.put("checked", true); + threeLevelMap.put("checked", false); threeLevelsList.add(threeLevelMap); } twoLevelsList.add(twoLevelMap); @@ -283,20 +284,39 @@ List<Object> result = new ArrayList<>(); // 鑿滃崟 List<RoleResource> roleResources = roleResourceService.selectList(new EntityWrapper<RoleResource>().eq("role_id", roleId)); - for (RoleResource roleResource : roleResources){ + for (RoleResource roleResource : roleResources) { Resource resource = resourceService.selectById(roleResource.getResourceId()); - if (!Cools.isEmpty(resource)){ - if (resource.getLevel() == 3){ + if (!Cools.isEmpty(resource)) { + if (resource.getLevel() == 3) { result.add(resource.getId()); } } } // 鍔熻兘 List<RolePermission> rolePermissions = rolePermissionService.selectList(new EntityWrapper<RolePermission>().eq("role_id", roleId)); - for (RolePermission rolePermission : rolePermissions){ + for (RolePermission rolePermission : rolePermissions) { Permission permission = permissionService.selectById(rolePermission.getPermissionId()); - if (!Cools.isEmpty(permission)){ + if (!Cools.isEmpty(permission)) { result.add(permission.getAction()); + } + } + // pda鏉冮檺 + List<RolePdaResource> rolePdaResources = rolePdaResourceService.selectList(new EntityWrapper<RolePdaResource>().eq("role_id", roleId)); + for (RolePdaResource rolePdaResource : rolePdaResources) { + PdaResource pdaResource = pdaResourceService.selectById(rolePdaResource.getResourceId()); + if (!Cools.isEmpty(pdaResource)) { + if (pdaResource.getLevel() == 1) { + List<PdaResource> pdaResources = pdaResourceService.selectList(new EntityWrapper<PdaResource>().eq("resource_id", pdaResource.getId())); + if (Cools.isEmpty(pdaResources)) { + result.add(pdaResource.getId()); + } + } + if (pdaResource.getLevel() == 2) { + List<PdaResource> pdaResources = pdaResourceService.selectList(new EntityWrapper<PdaResource>().eq("resource_id", pdaResource.getId())); + if (Cools.isEmpty(pdaResources)) { + result.add(pdaResource.getId()); + } + } } } return R.ok(result); @@ -305,12 +325,13 @@ @RequestMapping("/power/auth") @ManagerAuth(memo = "鎺堟潈") @Transactional - public R power(Long roleId, String powers){ + public R power(Long roleId, String powers) { Role role = roleService.selectById(roleId); Long leaderId = role.getLeader(); roleResourceService.delete(new EntityWrapper<RoleResource>().eq("role_id", roleId)); rolePermissionService.delete(new EntityWrapper<RolePermission>().eq("role_id", roleId)); - if (!Cools.isEmpty(powers)){ + rolePdaResourceService.delete(new EntityWrapper<RolePdaResource>().eq("role_id", roleId)); + if (!Cools.isEmpty(powers)) { List<PowerDto> dtos = JSON.parseArray(powers, PowerDto.class); for (PowerDto dto : dtos) { if (isNumber(dto.getTwo())) { @@ -328,30 +349,67 @@ roleResource.setResourceId(resource.getId()); roleResourceService.insert(roleResource); } + } else { - Permission permission = permissionService.selectOne(new EntityWrapper<Permission>().eq("action", dto.getTwo())); - if (!Cools.isEmpty(permission)){ - RolePermission rolePermission = new RolePermission(); - rolePermission.setRoleId(roleId); - rolePermission.setPermissionId(permission.getId()); - rolePermissionService.insert(rolePermission); - } - } - for (String three : dto.getThree()){ - Resource resource1 = resourceService.selectOne(new EntityWrapper<Resource>().eq("id", three).eq("level", 3)); - if (!Cools.isEmpty(resource1)) { - // 鏍¢獙涓婄骇鏉冮檺 - if (leaderId != null) { - RoleResource roleResource = roleResourceService.selectOne(new EntityWrapper<RoleResource>().eq("role_id", leaderId).eq("resource_id", resource1.getId())); - if (null == roleResource) { - throw new CoolException(resource1.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName())); + if (dto.getTwo().substring(0, 1).contains("-")) { + PdaResource pdaResource = pdaResourceService.selectOne(new EntityWrapper<PdaResource>().eq("id", dto.getTwo()).eq("level", 1)); + if (!Cools.isEmpty(pdaResource)) { + // 鏍¢獙涓婄骇鏉冮檺 + if (leaderId != null) { + RolePdaResource rolePdaResource = rolePdaResourceService.selectOne(new EntityWrapper<RolePdaResource>().eq("role_id", leaderId).eq("resource_id", pdaResource.getId())); + if (null == rolePdaResource) { + throw new CoolException(pdaResource.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName())); + } } + RolePdaResource rolePdaResource = new RolePdaResource(); + rolePdaResource.setRoleId(roleId); + rolePdaResource.setResourceId(pdaResource.getId()); + rolePdaResourceService.insert(rolePdaResource); } - RoleResource roleResource = new RoleResource(); - roleResource.setRoleId(roleId); - roleResource.setResourceId(resource1.getId()); - roleResourceService.insert(roleResource); + } else { + Permission permission = permissionService.selectOne(new EntityWrapper<Permission>().eq("action", dto.getTwo())); + if (!Cools.isEmpty(permission)) { + RolePermission rolePermission = new RolePermission(); + rolePermission.setRoleId(roleId); + rolePermission.setPermissionId(permission.getId()); + rolePermissionService.insert(rolePermission); + } } + + } + for (String three : dto.getThree()) { + if (three.substring(0, 1).contains("-")) { + PdaResource pdaResource = pdaResourceService.selectOne(new EntityWrapper<PdaResource>().eq("id", three).eq("level", 2)); + if (!Cools.isEmpty(pdaResource)) { + // 鏍¢獙涓婄骇鏉冮檺 + if (leaderId != null) { + RolePdaResource rolePdaResource = rolePdaResourceService.selectOne(new EntityWrapper<RolePdaResource>().eq("role_id", leaderId).eq("resource_id", pdaResource.getId())); + if (null == rolePdaResource) { + throw new CoolException(pdaResource.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName())); + } + } + RolePdaResource rolePdaResource = new RolePdaResource(); + rolePdaResource.setRoleId(roleId); + rolePdaResource.setResourceId(pdaResource.getId()); + rolePdaResourceService.insert(rolePdaResource); + } + } else { + Resource resource1 = resourceService.selectOne(new EntityWrapper<Resource>().eq("id", three).eq("level", 3)); + if (!Cools.isEmpty(resource1)) { + // 鏍¢獙涓婄骇鏉冮檺 + if (leaderId != null) { + RoleResource roleResource = roleResourceService.selectOne(new EntityWrapper<RoleResource>().eq("role_id", leaderId).eq("resource_id", resource1.getId())); + if (null == roleResource) { + throw new CoolException(resource1.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName())); + } + } + RoleResource roleResource = new RoleResource(); + roleResource.setRoleId(roleId); + roleResource.setResourceId(resource1.getId()); + roleResourceService.insert(roleResource); + } + } + } } } @@ -414,26 +472,83 @@ return R.error("婵�娲诲け璐�"); } SystemProperties.SYSTEM_ACTIVATION = Boolean.TRUE; - return R.ok("婵�娲绘垚鍔燂紝鏈夋晥鏈熻嚦"+DateUtils.convert(exprTime)); + return R.ok("婵�娲绘垚鍔燂紝鏈夋晥鏈熻嚦" + DateUtils.convert(exprTime)); } @RequestMapping("/menu/pda/auth") @ManagerAuth - public R menuPda(){ + public R menuPda(@RequestBody HashMap<String, String> params) { Long userId = getUserId(); - List<RolePermission> rolePermissions; + String level = params.get("level"); + Long id = Long.valueOf(params.get("id")); + List<RolePdaResource> rolePdaResources; if (userId == 9527L) { - rolePermissions = rolePermissionService.selectList(new EntityWrapper<>()); + rolePdaResources = rolePdaResourceService.selectList(new EntityWrapper<>()); } else { Long roleId = getUser().getRoleId(); - rolePermissions = rolePermissionService.selectList(new EntityWrapper<RolePermission>().eq("role_id", roleId)); + rolePdaResources = rolePdaResourceService.selectList(new EntityWrapper<RolePdaResource>().eq("role_id", roleId)); } - if (Cools.isEmpty(rolePermissions)) { + if (Cools.isEmpty(rolePdaResources)) { return R.ok(); } - List<Long> collect = rolePermissions.stream().map(RolePermission::getPermissionId).distinct().collect(Collectors.toList()); - List<Permission> permissions = permissionService.selectBatchIds(collect); - return R.ok().add(permissions); + List<Long> collect = rolePdaResources.stream().map(RolePdaResource::getResourceId).distinct().collect(Collectors.toList()); + List<PdaResource> pdaResources = pdaResourceService.selectBatchIds(collect); + List<PdaResource> results = new ArrayList<>(); + + for (PdaResource pdaResource : pdaResources) { + if (Integer.parseInt(level) == 1) { + if (pdaResource.getLevel().equals(Short.valueOf(level))) { + results.add(pdaResource); + } + } else { + if (pdaResource.getLevel().equals(Short.valueOf(level)) && pdaResource.getResourceId().equals(id)) { + results.add(pdaResource); + } + } + } + return R.ok().add(results); } + + @RequestMapping("/menu/pdaAll/auth") + @ManagerAuth + public R menuPdaAll() { + Long userId = getUserId(); + List<RolePdaResource> rolePdaResources; + if (userId == 9527L) { + rolePdaResources = rolePdaResourceService.selectList(new EntityWrapper<>()); + } else { + Long roleId = getUser().getRoleId(); + rolePdaResources = rolePdaResourceService.selectList(new EntityWrapper<RolePdaResource>().eq("role_id", roleId)); + } + if (Cools.isEmpty(rolePdaResources)) { + return R.ok(); + } + List<Long> collect = rolePdaResources.stream().map(RolePdaResource::getResourceId).distinct().collect(Collectors.toList()); + List<PdaResource> pdaResources = pdaResourceService.selectBatchIds(collect); + List<PdaResource> results = list2Tree(pdaResources, 0L); + + return R.ok().add(results); + } + + + public List<PdaResource> list2Tree(List<PdaResource> list, Long pId) { + List<PdaResource> tree = new ArrayList<>(); + Iterator<PdaResource> it = list.iterator(); + while (it.hasNext()) { + PdaResource m = it.next(); + if (m.getResourceId() == pId || (pId == 0L && m.getResourceId() == null)) { + tree.add(m); + // 宸叉坊鍔犵殑鍏冪礌鍒犻櫎鎺� + it.remove(); + } + } + // 瀵绘壘瀛愬厓绱� + for (PdaResource n : tree) { + n.setChildren(list2Tree(list, n.getId())); + } + return tree; + } + + } -- Gitblit v1.9.1