From d0d64cf47ce37027307ceb64dc72e3ae36796a92 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期四, 27 二月 2025 18:28:00 +0800
Subject: [PATCH] 四期

---
 src/main/java/com/zy/common/web/AuthController.java |  368 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 296 insertions(+), 72 deletions(-)

diff --git a/src/main/java/com/zy/common/web/AuthController.java b/src/main/java/com/zy/common/web/AuthController.java
index 51e204a..cbe2ae2 100644
--- a/src/main/java/com/zy/common/web/AuthController.java
+++ b/src/main/java/com/zy/common/web/AuthController.java
@@ -3,27 +3,29 @@
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.core.annotations.ManagerAuth;
+import com.core.common.AesUtils;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.core.exception.CoolException;
 import com.zy.common.CodeRes;
 import com.zy.common.entity.Parameter;
 import com.zy.common.model.PowerDto;
 import com.zy.common.model.enums.HtmlNavIconType;
+import com.zy.common.properties.OSinfo;
+import com.zy.common.properties.SystemProperties;
 import com.zy.common.utils.RandomValidateCodeUtil;
 import com.zy.system.entity.*;
 import com.zy.system.service.*;
-import com.core.annotations.ManagerAuth;
-import com.core.common.Cools;
-import com.core.common.R;
-import com.core.exception.CoolException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2019-07-30
@@ -42,38 +44,50 @@
     @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 = "鐧诲綍")
-    public R loginAction(String mobile, String password){
-        if (mobile.equals("super") && password.equals(Cools.md5(superPwd))) {
+    public R loginAction(String username, String password) {
+        //楠岃瘉璁稿彲璇佹槸鍚︽湁鏁�
+//        LicenseVerify licenseVerify = new LicenseVerify();
+//        boolean verify = licenseVerify.verify();
+//        if (!verify) {//璁稿彲璇佸凡澶辨晥
+//            return R.parse(CodeRes.SYSTEM_20001);
+//        }
+        if (username.equals("super") && password.equals(Cools.md5(superPwd))) {
             Map<String, Object> res = new HashMap<>();
-            res.put("username", mobile);
-            res.put("token", Cools.enToken(System.currentTimeMillis() + mobile, superPwd));
+            res.put("username", username);
+            res.put("token", Cools.enToken(System.currentTimeMillis() + username, superPwd));
             return R.ok(res);
         }
         EntityWrapper<User> userWrapper = new EntityWrapper<>();
-        userWrapper.eq("mobile", mobile);
+        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 (!Cools.md5(user.getPassword()).equals(password)){
+        if (!user.getPassword().equals(password)) {
             return R.parse(CodeRes.USER_10003);
         }
-        String token = Cools.enToken(System.currentTimeMillis() + mobile, user.getPassword());
-        userLoginService.delete(new EntityWrapper<UserLogin>().eq("user_id", user.getId()));
+        String token = Cools.enToken(System.currentTimeMillis() + username, user.getPassword());
+        userLoginService.delete(new EntityWrapper<UserLogin>().eq("user_id", user.getId()).eq("system", "WMS"));
         UserLogin userLogin = new UserLogin();
         userLogin.setUserId(user.getId());
         userLogin.setToken(token);
+        userLogin.setCreateTime(new Date());
+        userLogin.setSystem("WMS");
         userLoginService.insert(userLogin);
         Map<String, Object> res = new HashMap<>();
         res.put("username", user.getUsername());
@@ -97,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);
@@ -110,26 +124,32 @@
 
     @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 = resourceService.selectList(new EntityWrapper<Resource>().eq("level", 1).eq("status", 1).orderBy("sort"));
+        List<Resource> oneLevel;
         User user = null;
         Wrapper<Resource> resourceWrapper;
         if (getUserId() == 9527) {
+            oneLevel = resourceService.selectList(new EntityWrapper<Resource>().eq("level", 1).orderBy("sort"));
             resourceWrapper = new EntityWrapper<Resource>().eq("level", 2).eq("status", 1).orderBy("sort");
         } else {
+            // 婵�娲荤爜楠岃瘉
+//            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");
@@ -147,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;
                             }
                         }
@@ -176,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());
@@ -189,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());
@@ -199,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());
@@ -214,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);
 
@@ -238,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);
@@ -260,51 +325,91 @@
     @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) {
-                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);
+                        }
+                    }
+
                 }
             }
         }
@@ -326,5 +431,124 @@
         return R.ok(resources);
     }
 
+    @GetMapping(value = "/system/activation/auth")
+    public R activation() {
+        if (SystemProperties.SYSTEM_ACTIVATION) {
+            String activationCode = SystemProperties.getActivationCode(OSinfo.getOSname().getActivationCodePath());
+            String timeStr = AesUtils.decrypt(activationCode, SystemProperties.SALT);
+            if (null == timeStr) {
+                SystemProperties.SYSTEM_ACTIVATION = Boolean.FALSE;
+                return R.error("鏈縺娲�");
+            }
+            Date exprTime = DateUtils.convert(timeStr, DateUtils.yyyyMMddHHmmss);
+            if (new Date().getTime() < exprTime.getTime()) {
+                return R.ok().add(DateUtils.convert(exprTime));
+            } else {
+                SystemProperties.SYSTEM_ACTIVATION = Boolean.FALSE;
+                return R.error("鏈縺娲�");
+            }
+        } else {
+            return R.error("鏈縺娲�");
+        }
+    }
+
+    @PostMapping(value = "/system/secret/auth")
+    @ManagerAuth
+    public R systemSecret(@RequestParam(value = "secret") String secret) {
+        if (Cools.isEmpty(secret)) {
+            return R.error("璇疯緭鍏ユ縺娲荤爜");
+        }
+        // 楠岃瘉婵�娲荤爜
+        String timeStr = AesUtils.decrypt(secret, SystemProperties.SALT);
+        if (null == timeStr) {
+            return R.error("婵�娲荤爜閿欒");
+        }
+        Date exprTime = DateUtils.convert(timeStr, DateUtils.yyyyMMddHHmmss);
+        if (new Date().getTime() >= exprTime.getTime()) {
+            return R.error("婵�娲荤爜宸插け鏁�");
+        }
+        boolean result = SystemProperties.saveActivationCode(OSinfo.getOSname().getActivationCodePath(), secret);
+        if (!result) {
+            return R.error("婵�娲诲け璐�");
+        }
+        SystemProperties.SYSTEM_ACTIVATION = Boolean.TRUE;
+        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);
+    }
+
+
+    @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