From 9d4a4690882739998114f5f5bec40c9618962737 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期一, 24 六月 2024 08:16:54 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/web/AuthController.java |  131 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 102 insertions(+), 29 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..7f178c1 100644
--- a/src/main/java/com/zy/common/web/AuthController.java
+++ b/src/main/java/com/zy/common/web/AuthController.java
@@ -51,6 +51,8 @@
     private PermissionService permissionService;
     @Autowired
     private RolePermissionService rolePermissionService;
+    @Autowired
+    private RolePdaResourceService rolePdaResourceService;
 
     @RequestMapping("/login.action")
     @ManagerAuth(value = ManagerAuth.Auth.NONE, memo = "鐧诲綍")
@@ -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,7 +247,7 @@
             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"));
@@ -256,7 +257,7 @@
                 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);
                 // 涓夌骇
@@ -265,7 +266,7 @@
                     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);
@@ -299,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);
     }
 
@@ -310,6 +330,7 @@
         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) {
@@ -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);
+                    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()){
-                    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 (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);
                         }
-                        RoleResource roleResource = new RoleResource();
-                        roleResource.setRoleId(roleId);
-                        roleResource.setResourceId(resource1.getId());
-                        roleResourceService.insert(roleResource);
+                    } 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);
+                        }
                     }
+
                 }
             }
         }
@@ -419,21 +477,36 @@
 
     @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);
     }
 
 }

--
Gitblit v1.9.1