From 52805a2308f901610e3c2e26ad2212138bca8070 Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期五, 28 六月 2024 14:50:24 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/phyzwms2' into phyzwms2 --- src/main/java/com/zy/common/web/AuthController.java | 196 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 160 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/zy/common/web/AuthController.java b/src/main/java/com/zy/common/web/AuthController.java index a54e094..7f178c1 100644 --- a/src/main/java/com/zy/common/web/AuthController.java +++ b/src/main/java/com/zy/common/web/AuthController.java @@ -25,6 +25,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.*; +import java.util.stream.Collectors; /** * Created by vincent on 2019-07-30 @@ -43,11 +44,15 @@ @Autowired private ResourceService resourceService; @Autowired + private PdaResourceService pdaResourceService; + @Autowired private RoleResourceService roleResourceService; @Autowired private PermissionService permissionService; @Autowired private RolePermissionService rolePermissionService; + @Autowired + private RolePdaResourceService rolePdaResourceService; @RequestMapping("/login.action") @ManagerAuth(value = ManagerAuth.Auth.NONE, memo = "鐧诲綍") @@ -229,18 +234,44 @@ // 鍔熻兘妯″潡 Map<String, Object> functions = new HashMap<>(); - functions.put("title", "鎸囧畾鍔熻兘"); + functions.put("title", "pda鍔熻兘"); functions.put("id", "function"); functions.put("spread", true); List<Map> funcs = new ArrayList<>(); functions.put("children", funcs); - List<Permission> permissions = permissionService.selectList(new EntityWrapper<Permission>().eq("status", 1)); - for (Permission permission : permissions) { - Map<String, Object> func = new HashMap<>(); - func.put("title", permission.getName()); - func.put("id", permission.getAction()); - func.put("spread", true); - funcs.add(func); + List<PdaResource> oneLevs = pdaResourceService.selectList(new EntityWrapper<PdaResource>().eq("level", 1).eq("status", 1).orderBy("sort")); + // 涓�绾� + for (PdaResource oneLev : oneLevs) { + List<Map> twoLevelsList = new ArrayList<>(); + Map<String, Object> oneLevelMap = new HashMap<>(); + oneLevelMap.put("title", oneLev.getName()); + oneLevelMap.put("id", oneLev.getId()); + oneLevelMap.put("spread", 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){ + Map<String, Object> twoLevelMap = new HashMap<>(); + twoLevelMap.put("title", twoLevel.getName()); + twoLevelMap.put("id", twoLevel.getId()); + twoLevelMap.put("spread", false); + 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){ + Map<String, Object> threeLevelMap = new HashMap<>(); + threeLevelMap.put("title", threeLevel.getName()); + threeLevelMap.put("id", threeLevel.getId()); + threeLevelMap.put("checked", false); + threeLevelsList.add(threeLevelMap); + } + twoLevelsList.add(twoLevelMap); + } + funcs.add(oneLevelMap); } result.add(functions); @@ -269,6 +300,25 @@ 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); } @@ -280,46 +330,86 @@ Long leaderId = role.getLeader(); roleResourceService.delete(new EntityWrapper<RoleResource>().eq("role_id", roleId)); rolePermissionService.delete(new EntityWrapper<RolePermission>().eq("role_id", roleId)); + 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) { - Resource resource = resourceService.selectOne(new EntityWrapper<Resource>().eq("id", dto.getTwo()).eq("level", 2)); - if (!Cools.isEmpty(resource)) { - // 鏍¢獙涓婄骇鏉冮檺 - if (leaderId != null) { - RoleResource roleResource = roleResourceService.selectOne(new EntityWrapper<RoleResource>().eq("role_id", leaderId).eq("resource_id", resource.getId())); - if (null == roleResource) { - throw new CoolException(resource.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName())); - } - } - RoleResource roleResource = new RoleResource(); - roleResource.setRoleId(roleId); - 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 (isNumber(dto.getTwo())) { + Resource resource = resourceService.selectOne(new EntityWrapper<Resource>().eq("id", dto.getTwo()).eq("level", 2)); + if (!Cools.isEmpty(resource)) { // 鏍¢獙涓婄骇鏉冮檺 if (leaderId != null) { - RoleResource roleResource = roleResourceService.selectOne(new EntityWrapper<RoleResource>().eq("role_id", leaderId).eq("resource_id", resource1.getId())); + RoleResource roleResource = roleResourceService.selectOne(new EntityWrapper<RoleResource>().eq("role_id", leaderId).eq("resource_id", resource.getId())); if (null == roleResource) { - throw new CoolException(resource.getName().concat("鐨�").concat(resource1.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName()))); + throw new CoolException(resource.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName())); } } RoleResource roleResource = new RoleResource(); roleResource.setRoleId(roleId); - roleResource.setResourceId(resource1.getId()); + roleResource.setResourceId(resource.getId()); roleResourceService.insert(roleResource); } + + } else { + 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); + } + } 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); + } + } + } } } @@ -385,4 +475,38 @@ return R.ok("婵�娲绘垚鍔燂紝鏈夋晥鏈熻嚦"+DateUtils.convert(exprTime)); } + @RequestMapping("/menu/pda/auth") + @ManagerAuth + public R menuPda(@RequestBody HashMap<String,String> params){ + Long userId = getUserId(); + String level = params.get("level"); + Long id = Long.valueOf(params.get("id")); + 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 = 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); + } + } -- Gitblit v1.9.1