From c635d78b479510ebe2556a420948effcd30a0731 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 21 十二月 2024 18:40:43 +0800
Subject: [PATCH] 新建德森项目分支

---
 zy-asrs-common/src/main/java/com/zy/asrs/common/web/AuthController.java |  704 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 352 insertions(+), 352 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/web/AuthController.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/web/AuthController.java
index adc8247..eb5877f 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/web/AuthController.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/web/AuthController.java
@@ -1,352 +1,352 @@
-package com.zy.asrs.common.web;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zy.asrs.common.domain.CodeRes;
-import com.zy.asrs.common.domain.dto.PowerDto;
-import com.zy.asrs.common.domain.entity.Parameter;
-import com.zy.asrs.common.domain.enums.HtmlNavIconType;
-import com.zy.asrs.common.domain.enums.LoginSystemType;
-import com.zy.asrs.common.sys.entity.*;
-import com.zy.asrs.common.sys.service.*;
-import com.zy.asrs.common.utils.RandomValidateCodeUtil;
-import com.zy.asrs.framework.annotations.ManagerAuth;
-import com.zy.asrs.framework.common.Cools;
-import com.zy.asrs.framework.common.R;
-import com.zy.asrs.framework.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.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.*;
-
-/**
- * Created by vincent on 2019-07-30
- */
-@RestController
-public class AuthController extends BaseController {
-
-    @Value("${super.pwd}")
-    private String superPwd;
-    @Autowired
-    private UserService userService;
-    @Autowired
-    private RoleService roleService;
-    @Autowired
-    private UserLoginService userLoginService;
-    @Autowired
-    private ResourceService resourceService;
-    @Autowired
-    private RoleResourceService roleResourceService;
-    @Autowired
-    private HostService hostService;
-    @Autowired
-    private ConfigService configService;
-
-    @RequestMapping("/login.action")
-    @ManagerAuth(value = ManagerAuth.Auth.NONE, memo = "鐧诲綍")
-    public R loginAction(String username, String password, Boolean wms) {
-        if (username.equals("super") && password.equals(Cools.md5(superPwd))) {
-            Map<String, Object> res = new HashMap<>();
-            res.put("username", username);
-            res.put("token", Cools.enToken(System.currentTimeMillis() + username, superPwd));
-            return R.ok(res);
-        }
-        LambdaQueryWrapper<User> userWrapper = new LambdaQueryWrapper<>();
-        userWrapper.eq(User::getUsername, username);
-        User user = userService.getOne(userWrapper);
-        if (Cools.isEmpty(user)) {
-            return R.parse(CodeRes.USER_10001);
-        }
-        if (user.getStatus() != 1) {
-            return R.parse(CodeRes.USER_10002);
-        }
-        if (!user.getPassword().equals(password)) {
-            return R.parse(CodeRes.USER_10003);
-        }
-        String system = null;//鐧婚檰绯荤粺
-        if (wms) {
-            system = String.valueOf(LoginSystemType.WMS);
-        }else {
-            system = String.valueOf(LoginSystemType.WCS);
-        }
-        String token = Cools.enToken(System.currentTimeMillis() + username, user.getPassword());
-        userLoginService.remove(new LambdaQueryWrapper<UserLogin>().eq(UserLogin::getUserId, user.getId()).eq(UserLogin::getSystem, system));
-        UserLogin userLogin = new UserLogin();
-        userLogin.setUserId(user.getId());
-        userLogin.setToken(token);
-        userLogin.setCreateTime(new Date());
-        userLogin.setSystem(system);
-        if (user.getRoleId() == 2) {
-            userLogin.setHostId(hostService.getTop1().getId());
-        }
-        userLoginService.save(userLogin);
-        Map<String, Object> res = new HashMap<>();
-        res.put("username", user.getUsername());
-        res.put("token", token);
-        return R.ok(res);
-    }
-
-    @RequestMapping("/show/host.action")
-    @ManagerAuth
-    public R showHosts() {
-        Long hostId = getHostId();
-        String hostName = null;
-        if (hostId != null) {
-            Host host = hostService.getById(hostId);
-            if (host != null) {
-                hostName = host.getName();
-            }
-        }
-        return R.ok().add(Cools
-                .add("root", getUser().getRoleId() == 2)
-                .add("host", getHostId() == null)
-                .add("hostName", hostName)
-        );
-    }
-
-    @RequestMapping(value = "/root/change/host/auth")
-    @ManagerAuth
-    public R rootChangeHost(@RequestParam Long hostId) {
-        UserLogin userLogin = userLoginService.getOne(new LambdaQueryWrapper<UserLogin>().eq(UserLogin::getUserId, getUserId()).eq(UserLogin::getSystem, String.valueOf(LoginSystemType.WMS)));
-        if (userLogin != null) {
-            userLogin.setHostId(hostId);
-            if (!userLoginService.updateById(userLogin)) {
-                throw new CoolException("淇敼鍟嗘埛澶辫触");
-            }
-            return R.ok();
-        } else {
-            return R.error();
-        }
-    }
-
-    @RequestMapping("/code/switch.action")
-    public R code() {
-        return R.ok().add(Parameter.get().getCodeSwitch());
-    }
-
-    @RequestMapping("/code.action")
-    public void code(@RequestParam String sd, HttpServletResponse response) {
-        RandomValidateCodeUtil.getRandcode(sd, response);
-    }
-
-    @RequestMapping("/code.do")
-    public String codeDo(@RequestParam String sd) throws Exception {
-        String code = null;
-        int time = 0;
-        while (time < 3000) {
-            code = RandomValidateCodeUtil.code.get(sd);
-            if (!Cools.isEmpty(code)){
-                break;
-            } else {
-                Thread.sleep(10);
-                time = time + 100;
-            }
-        }
-        RandomValidateCodeUtil.code.remove(sd);
-        return code;
-    }
-
-    @RequestMapping("/user/detail/auth")
-    @ManagerAuth
-    public R userDetail(){
-        return R.ok(userService.getById(getUserId()));
-    }
-
-    @RequestMapping("/menu/auth")
-    @ManagerAuth
-    public R menu(){
-        // 鑾峰彇鎵�鏈変竴绾ц彍鍗�
-        List<Resource> oneLevel;
-        User user = null;
-        LambdaQueryWrapper<Resource> resourceWrapper;
-        if (getUserId() == 9527) {
-            oneLevel = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getLevel, 1).orderByAsc(Resource::getSort));
-            resourceWrapper = new LambdaQueryWrapper<Resource>().eq(Resource::getLevel, 2).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort);
-        } else {
-            oneLevel = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getLevel, 1).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort));
-            // 鑾峰彇褰撳墠鐢ㄦ埛鐨勬墍鏈変簩绾ц彍鍗�
-            user = userService.getById(getUserId());
-            List<RoleResource> roleResources = roleResourceService.list(new LambdaQueryWrapper<RoleResource>().eq(RoleResource::getRoleId, user.getRoleId()));
-            List<Long> resourceIds = new ArrayList<>();
-            roleResources.forEach(roleResource -> resourceIds.add(roleResource.getResourceId()));
-            if (resourceIds.isEmpty()){
-                return R.ok();
-            }
-            resourceWrapper = new LambdaQueryWrapper<Resource>().in(Resource::getId, resourceIds).eq(Resource::getLevel, 2).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort);
-        }
-        List<Resource> twoLevel = resourceService.list(resourceWrapper);
-        List<Map<String, Object>> result = new ArrayList<>();
-        for (Resource menu : oneLevel) {
-            Map<String, Object> map = new HashMap<>();
-            List<Resource> subMenu = new ArrayList<>();
-            Iterator<Resource> iterator = twoLevel.iterator();
-            while (iterator.hasNext()) {
-                Resource resource = iterator.next();
-                if (resource.getResourceId() != null && resource.getResourceId().equals(menu.getId())) {
-
-                    // 鏄惁鎷ユ湁鏌ョ湅鏉冮檺
-                    if (getUserId() != 9527) {
-                        Resource view = resourceService.getOne(new LambdaQueryWrapper<Resource>().eq(Resource::getResourceId, resource.getId()).like(Resource::getCode, "#view"));
-                        if (!Cools.isEmpty(view)) {
-                            RoleResource param = new RoleResource();
-                            param.setResourceId(view.getId());
-                            param.setRoleId(user.getRoleId());
-                            if (null == roleResourceService.getOne(new LambdaQueryWrapper<>(param))) {
-                                continue;
-                            }
-                        }
-                    }
-
-                    subMenu.add(resource);
-                    iterator.remove();
-                }
-            }
-            if (subMenu.isEmpty()) {
-                continue;
-            }
-            map.put("menuId", menu.getId());
-            map.put("menuCode", menu.getCode());
-            map.put("menuIcon", HtmlNavIconType.get(menu.getCode()));
-            map.put("menu", menu.getName());
-            map.put("subMenu", subMenu);
-            result.add(map);
-        }
-        return R.ok(result);
-    }
-
-    @RequestMapping("/power/list/auth")
-    @ManagerAuth
-    public R powerList(){
-        List<Resource> oneLevels = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getLevel, 1).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort));
-        List<Map> result = new ArrayList<>();
-        // 涓�绾�
-        for (Resource oneLevel : oneLevels){
-            List<Map> twoLevelsList = new ArrayList<>();
-            Map<String, Object> oneLevelMap = new HashMap<>();
-            oneLevelMap.put("title", oneLevel.getName());
-            oneLevelMap.put("id", oneLevel.getId());
-            oneLevelMap.put("spread", true);
-            oneLevelMap.put("children", twoLevelsList);
-            List<Resource> twoLevels = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getResourceId, oneLevel.getId()).eq(Resource::getLevel, 2).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort));
-            // 浜岀骇
-            for (Resource twoLevel : twoLevels){
-                Map<String, Object> twoLevelMap = new HashMap<>();
-                twoLevelMap.put("title", twoLevel.getName());
-                twoLevelMap.put("id", twoLevel.getId());
-                twoLevelMap.put("spread", false);
-
-                List<Map> threeLevelsList = new ArrayList<>();
-                twoLevelMap.put("children", threeLevelsList);
-                // 涓夌骇
-                List<Resource> threeLevels = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getResourceId, twoLevel.getId()).eq(Resource::getLevel, 3).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort));
-                for (Resource 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);
-            }
-            result.add(oneLevelMap);
-        }
-
-        return R.ok(result);
-    }
-
-    @RequestMapping(value = "/power/{roleId}/auth")
-    @ManagerAuth
-    public R get(@PathVariable("roleId") Long roleId) {
-        List<Object> result = new ArrayList<>();
-        // 鑿滃崟
-        List<RoleResource> roleResources = roleResourceService.list(new LambdaQueryWrapper<RoleResource>().eq(RoleResource::getRoleId, roleId));
-        for (RoleResource roleResource : roleResources){
-            Resource resource = resourceService.getById(roleResource.getResourceId());
-            if (!Cools.isEmpty(resource)){
-                if (resource.getLevel() == 3){
-                    result.add(resource.getId());
-                }
-            }
-        }
-        return R.ok(result);
-    }
-
-    @RequestMapping("/power/auth")
-    @ManagerAuth(memo = "鎺堟潈")
-    @Transactional
-    public R power(Long roleId, String powers){
-        Role role = roleService.getById(roleId);
-        Long leaderId = role.getLeader();
-        roleResourceService.remove(new LambdaQueryWrapper<RoleResource>().eq(RoleResource::getRoleId, roleId));
-        if (!Cools.isEmpty(powers)){
-            List<PowerDto> dtos = JSON.parseArray(powers, PowerDto.class);
-            for (PowerDto dto : dtos) {
-                Resource resource = resourceService.getOne(new LambdaQueryWrapper<Resource>().eq(Resource::getId, dto.getTwo()).eq(Resource::getLevel, 2));
-                if (!Cools.isEmpty(resource)) {
-                    // 鏍¢獙涓婄骇鏉冮檺
-                    if (leaderId != null) {
-                        RoleResource roleResource = roleResourceService.getOne(new LambdaQueryWrapper<RoleResource>().eq(RoleResource::getRoleId, leaderId).eq(RoleResource::getResourceId, 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.save(roleResource);
-                }
-                for (String three : dto.getThree()){
-                    Resource resource1 = resourceService.getOne(new LambdaQueryWrapper<Resource>().eq(Resource::getId, three).eq(Resource::getLevel, 3));
-                    if (!Cools.isEmpty(resource1)) {
-                        // 鏍¢獙涓婄骇鏉冮檺
-                        if (leaderId != null) {
-                            RoleResource roleResource = roleResourceService.getOne(new LambdaQueryWrapper<RoleResource>().eq(RoleResource::getRoleId, leaderId).eq(RoleResource::getResourceId, resource1.getId()));
-                            if (null == roleResource) {
-                                throw new CoolException(resource.getName().concat("鐨�").concat(resource1.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName())));
-                            }
-                        }
-                        RoleResource roleResource = new RoleResource();
-                        roleResource.setRoleId(roleId);
-                        roleResource.setResourceId(resource1.getId());
-                        roleResourceService.save(roleResource);
-                    }
-                }
-            }
-        }
-        return R.ok();
-    }
-
-    @RequestMapping(value = "/power/menu/{resourceId}/auth")
-    @ManagerAuth
-    public R buttonResource(@PathVariable("resourceId") Long resourceId) {
-        List<Resource> resources;
-        if (getUserId() == 9527) {
-            resources = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getLevel, 3).eq(Resource::getResourceId, resourceId));
-        } else {
-            resources = roleResourceService.getMenuButtomResource(resourceId, getUserId());
-        }
-        for (Resource resource : resources) {
-            resource.setCode(resource.getCode().split("#")[1]);
-        }
-        return R.ok(resources);
-    }
-
-    @RequestMapping("/loginInformation")
-    public R getLoginPageInformation() {
-        Config loginLogo = configService.selectByCode("loginLogo");
-        Config loginCopyrightText = configService.selectByCode("loginCopyrightText");
-        Config loginCopyrightImg1 = configService.selectByCode("loginCopyrightImg1");
-
-        HashMap<String, Object> map = new HashMap<>();
-        map.put("loginLogo", loginLogo.getValue());
-        map.put("loginCopyrightText", loginCopyrightText.getValue());
-        map.put("loginCopyrightImg1", loginCopyrightImg1.getStatus() == 1 ? loginCopyrightImg1.getValue() : "");
-
-        return R.ok().add(map);
-    }
-
-}
+package com.zy.asrs.common.web;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.domain.CodeRes;
+import com.zy.asrs.common.domain.dto.PowerDto;
+import com.zy.asrs.common.domain.entity.Parameter;
+import com.zy.asrs.common.domain.enums.HtmlNavIconType;
+import com.zy.asrs.common.domain.enums.LoginSystemType;
+import com.zy.asrs.common.sys.entity.*;
+import com.zy.asrs.common.sys.service.*;
+import com.zy.asrs.common.utils.RandomValidateCodeUtil;
+import com.zy.asrs.framework.annotations.ManagerAuth;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.R;
+import com.zy.asrs.framework.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.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+
+/**
+ * Created by vincent on 2019-07-30
+ */
+@RestController
+public class AuthController extends BaseController {
+
+    @Value("${super.pwd}")
+    private String superPwd;
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private RoleService roleService;
+    @Autowired
+    private UserLoginService userLoginService;
+    @Autowired
+    private ResourceService resourceService;
+    @Autowired
+    private RoleResourceService roleResourceService;
+    @Autowired
+    private HostService hostService;
+    @Autowired
+    private ConfigService configService;
+
+    @RequestMapping("/login.action")
+    @ManagerAuth(value = ManagerAuth.Auth.NONE, memo = "鐧诲綍")
+    public R loginAction(String username, String password, Boolean wms) {
+        if (username.equals("super") && password.equals(Cools.md5(superPwd))) {
+            Map<String, Object> res = new HashMap<>();
+            res.put("username", username);
+            res.put("token", Cools.enToken(System.currentTimeMillis() + username, superPwd));
+            return R.ok(res);
+        }
+        LambdaQueryWrapper<User> userWrapper = new LambdaQueryWrapper<>();
+        userWrapper.eq(User::getUsername, username);
+        User user = userService.getOne(userWrapper);
+        if (Cools.isEmpty(user)) {
+            return R.parse(CodeRes.USER_10001);
+        }
+        if (user.getStatus() != 1) {
+            return R.parse(CodeRes.USER_10002);
+        }
+        if (!user.getPassword().equals(password)) {
+            return R.parse(CodeRes.USER_10003);
+        }
+        String system = null;//鐧婚檰绯荤粺
+        if (wms) {
+            system = String.valueOf(LoginSystemType.WMS);
+        }else {
+            system = String.valueOf(LoginSystemType.WCS);
+        }
+        String token = Cools.enToken(System.currentTimeMillis() + username, user.getPassword());
+        userLoginService.remove(new LambdaQueryWrapper<UserLogin>().eq(UserLogin::getUserId, user.getId()).eq(UserLogin::getSystem, system));
+        UserLogin userLogin = new UserLogin();
+        userLogin.setUserId(user.getId());
+        userLogin.setToken(token);
+        userLogin.setCreateTime(new Date());
+        userLogin.setSystem(system);
+        if (user.getRoleId() == 2) {
+            userLogin.setHostId(hostService.getTop1().getId());
+        }
+        userLoginService.save(userLogin);
+        Map<String, Object> res = new HashMap<>();
+        res.put("username", user.getUsername());
+        res.put("token", token);
+        return R.ok(res);
+    }
+
+    @RequestMapping("/show/host.action")
+    @ManagerAuth
+    public R showHosts() {
+        Long hostId = getHostId();
+        String hostName = null;
+        if (hostId != null) {
+            Host host = hostService.getById(hostId);
+            if (host != null) {
+                hostName = host.getName();
+            }
+        }
+        return R.ok().add(Cools
+                .add("root", getUser().getRoleId() == 2)
+                .add("host", getHostId() == null)
+                .add("hostName", hostName)
+        );
+    }
+
+    @RequestMapping(value = "/root/change/host/auth")
+    @ManagerAuth
+    public R rootChangeHost(@RequestParam Long hostId) {
+        UserLogin userLogin = userLoginService.getOne(new LambdaQueryWrapper<UserLogin>().eq(UserLogin::getUserId, getUserId()).eq(UserLogin::getSystem, String.valueOf(LoginSystemType.WMS)));
+        if (userLogin != null) {
+            userLogin.setHostId(hostId);
+            if (!userLoginService.updateById(userLogin)) {
+                throw new CoolException("淇敼鍟嗘埛澶辫触");
+            }
+            return R.ok();
+        } else {
+            return R.error();
+        }
+    }
+
+    @RequestMapping("/code/switch.action")
+    public R code() {
+        return R.ok().add(Parameter.get().getCodeSwitch());
+    }
+
+    @RequestMapping("/code.action")
+    public void code(@RequestParam String sd, HttpServletResponse response) {
+        RandomValidateCodeUtil.getRandcode(sd, response);
+    }
+
+    @RequestMapping("/code.do")
+    public String codeDo(@RequestParam String sd) throws Exception {
+        String code = null;
+        int time = 0;
+        while (time < 3000) {
+            code = RandomValidateCodeUtil.code.get(sd);
+            if (!Cools.isEmpty(code)){
+                break;
+            } else {
+                Thread.sleep(10);
+                time = time + 100;
+            }
+        }
+        RandomValidateCodeUtil.code.remove(sd);
+        return code;
+    }
+
+    @RequestMapping("/user/detail/auth")
+    @ManagerAuth
+    public R userDetail(){
+        return R.ok(userService.getById(getUserId()));
+    }
+
+    @RequestMapping("/menu/auth")
+    @ManagerAuth
+    public R menu(){
+        // 鑾峰彇鎵�鏈変竴绾ц彍鍗�
+        List<Resource> oneLevel;
+        User user = null;
+        LambdaQueryWrapper<Resource> resourceWrapper;
+        if (getUserId() == 9527) {
+            oneLevel = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getLevel, 1).orderByAsc(Resource::getSort));
+            resourceWrapper = new LambdaQueryWrapper<Resource>().eq(Resource::getLevel, 2).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort);
+        } else {
+            oneLevel = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getLevel, 1).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort));
+            // 鑾峰彇褰撳墠鐢ㄦ埛鐨勬墍鏈変簩绾ц彍鍗�
+            user = userService.getById(getUserId());
+            List<RoleResource> roleResources = roleResourceService.list(new LambdaQueryWrapper<RoleResource>().eq(RoleResource::getRoleId, user.getRoleId()));
+            List<Long> resourceIds = new ArrayList<>();
+            roleResources.forEach(roleResource -> resourceIds.add(roleResource.getResourceId()));
+            if (resourceIds.isEmpty()){
+                return R.ok();
+            }
+            resourceWrapper = new LambdaQueryWrapper<Resource>().in(Resource::getId, resourceIds).eq(Resource::getLevel, 2).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort);
+        }
+        List<Resource> twoLevel = resourceService.list(resourceWrapper);
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (Resource menu : oneLevel) {
+            Map<String, Object> map = new HashMap<>();
+            List<Resource> subMenu = new ArrayList<>();
+            Iterator<Resource> iterator = twoLevel.iterator();
+            while (iterator.hasNext()) {
+                Resource resource = iterator.next();
+                if (resource.getResourceId() != null && resource.getResourceId().equals(menu.getId())) {
+
+                    // 鏄惁鎷ユ湁鏌ョ湅鏉冮檺
+                    if (getUserId() != 9527) {
+                        Resource view = resourceService.getOne(new LambdaQueryWrapper<Resource>().eq(Resource::getResourceId, resource.getId()).like(Resource::getCode, "#view"));
+                        if (!Cools.isEmpty(view)) {
+                            RoleResource param = new RoleResource();
+                            param.setResourceId(view.getId());
+                            param.setRoleId(user.getRoleId());
+                            if (null == roleResourceService.getOne(new LambdaQueryWrapper<>(param))) {
+                                continue;
+                            }
+                        }
+                    }
+
+                    subMenu.add(resource);
+                    iterator.remove();
+                }
+            }
+            if (subMenu.isEmpty()) {
+                continue;
+            }
+            map.put("menuId", menu.getId());
+            map.put("menuCode", menu.getCode());
+            map.put("menuIcon", HtmlNavIconType.get(menu.getCode()));
+            map.put("menu", menu.getName());
+            map.put("subMenu", subMenu);
+            result.add(map);
+        }
+        return R.ok(result);
+    }
+
+    @RequestMapping("/power/list/auth")
+    @ManagerAuth
+    public R powerList(){
+        List<Resource> oneLevels = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getLevel, 1).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort));
+        List<Map> result = new ArrayList<>();
+        // 涓�绾�
+        for (Resource oneLevel : oneLevels){
+            List<Map> twoLevelsList = new ArrayList<>();
+            Map<String, Object> oneLevelMap = new HashMap<>();
+            oneLevelMap.put("title", oneLevel.getName());
+            oneLevelMap.put("id", oneLevel.getId());
+            oneLevelMap.put("spread", true);
+            oneLevelMap.put("children", twoLevelsList);
+            List<Resource> twoLevels = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getResourceId, oneLevel.getId()).eq(Resource::getLevel, 2).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort));
+            // 浜岀骇
+            for (Resource twoLevel : twoLevels){
+                Map<String, Object> twoLevelMap = new HashMap<>();
+                twoLevelMap.put("title", twoLevel.getName());
+                twoLevelMap.put("id", twoLevel.getId());
+                twoLevelMap.put("spread", false);
+
+                List<Map> threeLevelsList = new ArrayList<>();
+                twoLevelMap.put("children", threeLevelsList);
+                // 涓夌骇
+                List<Resource> threeLevels = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getResourceId, twoLevel.getId()).eq(Resource::getLevel, 3).eq(Resource::getStatus, 1).orderByAsc(Resource::getSort));
+                for (Resource 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);
+            }
+            result.add(oneLevelMap);
+        }
+
+        return R.ok(result);
+    }
+
+    @RequestMapping(value = "/power/{roleId}/auth")
+    @ManagerAuth
+    public R get(@PathVariable("roleId") Long roleId) {
+        List<Object> result = new ArrayList<>();
+        // 鑿滃崟
+        List<RoleResource> roleResources = roleResourceService.list(new LambdaQueryWrapper<RoleResource>().eq(RoleResource::getRoleId, roleId));
+        for (RoleResource roleResource : roleResources){
+            Resource resource = resourceService.getById(roleResource.getResourceId());
+            if (!Cools.isEmpty(resource)){
+                if (resource.getLevel() == 3){
+                    result.add(resource.getId());
+                }
+            }
+        }
+        return R.ok(result);
+    }
+
+    @RequestMapping("/power/auth")
+    @ManagerAuth(memo = "鎺堟潈")
+    @Transactional
+    public R power(Long roleId, String powers){
+        Role role = roleService.getById(roleId);
+        Long leaderId = role.getLeader();
+        roleResourceService.remove(new LambdaQueryWrapper<RoleResource>().eq(RoleResource::getRoleId, roleId));
+        if (!Cools.isEmpty(powers)){
+            List<PowerDto> dtos = JSON.parseArray(powers, PowerDto.class);
+            for (PowerDto dto : dtos) {
+                Resource resource = resourceService.getOne(new LambdaQueryWrapper<Resource>().eq(Resource::getId, dto.getTwo()).eq(Resource::getLevel, 2));
+                if (!Cools.isEmpty(resource)) {
+                    // 鏍¢獙涓婄骇鏉冮檺
+                    if (leaderId != null) {
+                        RoleResource roleResource = roleResourceService.getOne(new LambdaQueryWrapper<RoleResource>().eq(RoleResource::getRoleId, leaderId).eq(RoleResource::getResourceId, 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.save(roleResource);
+                }
+                for (String three : dto.getThree()){
+                    Resource resource1 = resourceService.getOne(new LambdaQueryWrapper<Resource>().eq(Resource::getId, three).eq(Resource::getLevel, 3));
+                    if (!Cools.isEmpty(resource1)) {
+                        // 鏍¢獙涓婄骇鏉冮檺
+                        if (leaderId != null) {
+                            RoleResource roleResource = roleResourceService.getOne(new LambdaQueryWrapper<RoleResource>().eq(RoleResource::getRoleId, leaderId).eq(RoleResource::getResourceId, resource1.getId()));
+                            if (null == roleResource) {
+                                throw new CoolException(resource.getName().concat("鐨�").concat(resource1.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName())));
+                            }
+                        }
+                        RoleResource roleResource = new RoleResource();
+                        roleResource.setRoleId(roleId);
+                        roleResource.setResourceId(resource1.getId());
+                        roleResourceService.save(roleResource);
+                    }
+                }
+            }
+        }
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/power/menu/{resourceId}/auth")
+    @ManagerAuth
+    public R buttonResource(@PathVariable("resourceId") Long resourceId) {
+        List<Resource> resources;
+        if (getUserId() == 9527) {
+            resources = resourceService.list(new LambdaQueryWrapper<Resource>().eq(Resource::getLevel, 3).eq(Resource::getResourceId, resourceId));
+        } else {
+            resources = roleResourceService.getMenuButtomResource(resourceId, getUserId());
+        }
+        for (Resource resource : resources) {
+            resource.setCode(resource.getCode().split("#")[1]);
+        }
+        return R.ok(resources);
+    }
+
+    @RequestMapping("/loginInformation")
+    public R getLoginPageInformation() {
+        Config loginLogo = configService.selectByCode("loginLogo");
+        Config loginCopyrightText = configService.selectByCode("loginCopyrightText");
+        Config loginCopyrightImg1 = configService.selectByCode("loginCopyrightImg1");
+
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("loginLogo", loginLogo.getValue());
+        map.put("loginCopyrightText", loginCopyrightText.getValue());
+        map.put("loginCopyrightImg1", loginCopyrightImg1.getStatus() == 1 ? loginCopyrightImg1.getValue() : "");
+
+        return R.ok().add(map);
+    }
+
+}

--
Gitblit v1.9.1