From 2c2d541aa1c5060b47c1ba5c6e3d192b2ff82fef Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期日, 28 四月 2024 14:15:21 +0800
Subject: [PATCH] fixbug:权限功能实现用户重复登录异常

---
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java |  161 ++++++++++++++++++++++++++---------------------------
 1 files changed, 79 insertions(+), 82 deletions(-)

diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
index 1f8f34e..884b2ed 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
@@ -1,21 +1,17 @@
 package com.mes.menu.service.impl;
 
 import cn.hutool.json.JSONUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.menu.entity.SysMenu;
 import com.mes.menu.mapper.SysMenuMapper;
 import com.mes.menu.service.SysMenuService;
 import com.mes.userinfo.entity.SysUser;
-import com.mes.userinfo.mapper.SysUserMapper;
 import com.mes.userinfo.service.SysUserService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -43,11 +39,12 @@
 
     @Override
     public List<String> getAuthorityInfo(String userName) {
-        SysUser sysUser = sysUserService.listByUserName(userName);
+        log.info("鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓簕}", userName);
+        SysUser sysUser = sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, userName));
 
         // 鑾峰彇鏉冮檺淇℃伅
-        String authorityInfo = sysUserService.getUserAuthorityInfo(sysUser.getId());// ROLE_admin,ROLE_normal,sys:user:list,....
-        String[] authorityInfoArray = StringUtils.tokenizeToStringArray(authorityInfo, ",");
+        // ROLE_admin,ROLE_normal,sys:user:list,....
+        return sysUserService.getUserAuthorityInfo(sysUser.getId());
     }
 
 
@@ -85,79 +82,79 @@
         return res;
     }
 
-
-    @Autowired
-    SysUserMapper sysUserMapper;
-
-    @Override
-    public List<SysMenuDto> getCurrentUserNav() {
-        String username = (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
-        SysUser sysUser = sysUserService.getByUsername(username);
-
-        List<Long> menuIds = sysUserMapper.getNavMenuIds(sysUser.getId());
-        List<SysMenu> menus = this.listByIds(menuIds);
-
-        // 杞爲鐘剁粨鏋�
-        List<SysMenu> menuTree = buildTreeMenu(menus);
-
-        // 瀹炰綋杞珼TO
-        return convert(menuTree);
-    }
-
-    @Override
-    public List<SysMenu> tree() {
-        // 鑾峰彇鎵�鏈夎彍鍗曚俊鎭�
-        List<SysMenu> sysMenus = this.list(new QueryWrapper<SysMenu>().orderByAsc("orderNum"));
-
-        // 杞垚鏍戠姸缁撴瀯
-        return buildTreeMenu(sysMenus);
-    }
-
-    private List<SysMenuDto> convert(List<SysMenu> menuTree) {
-        List<SysMenuDto> menuDtos = new ArrayList<>();
-
-        menuTree.forEach(m -> {
-            SysMenuDto dto = new SysMenuDto();
-
-            dto.setId(m.getId());
-            dto.setName(m.getPerms());
-            dto.setTitle(m.getName());
-            dto.setComponent(m.getComponent());
-            dto.setPath(m.getPath());
-
-            if (m.getChildren().size() > 0) {
-
-                // 瀛愯妭鐐硅皟鐢ㄥ綋鍓嶆柟娉曡繘琛屽啀娆¤浆鎹�
-                dto.setChildren(convert(m.getChildren()));
-            }
-
-            menuDtos.add(dto);
-        });
-
-        return menuDtos;
-    }
-
-    private List<SysMenu> buildTreeMenu(List<SysMenu> menus) {
-
-        List<SysMenu> finalMenus = new ArrayList<>();
-
-        // 鍏堝悇鑷鎵惧埌鍚勮嚜鐨勫瀛�
-        for (SysMenu menu : menus) {
-
-            for (SysMenu e : menus) {
-                if (menu.getId() == e.getParentId()) {
-                    menu.getChildren().add(e);
-                }
-            }
-
-            // 鎻愬彇鍑虹埗鑺傜偣
-            if (menu.getParentId() == 0L) {
-                finalMenus.add(menu);
-            }
-        }
-
-        System.out.println(JSONUtil.toJsonStr(finalMenus));
-        return finalMenus;
-    }
+//
+//    @Autowired
+//    SysUserMapper sysUserMapper;
+//
+//    @Override
+//    public List<SysMenuDto> getCurrentUserNav() {
+//        String username = (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+//        SysUser sysUser = sysUserService.listByUserNameName(username);
+//
+//        List<Long> menuIds = sysUserMapper.getNavMenuIds(sysUser.getId());
+//        List<SysMenu> menus = this.listByIds(menuIds);
+//
+//        // 杞爲鐘剁粨鏋�
+//        List<SysMenu> menuTree = buildTreeMenu(menus);
+//
+//        // 瀹炰綋杞珼TO
+//        return convert(menuTree);
+//    }
+//
+//    @Override
+//    public List<SysMenu> tree() {
+//        // 鑾峰彇鎵�鏈夎彍鍗曚俊鎭�
+//        List<SysMenu> sysMenus = this.list(new QueryWrapper<SysMenu>().orderByAsc("orderNum"));
+//
+//        // 杞垚鏍戠姸缁撴瀯
+//        return buildTreeMenu(sysMenus);
+//    }
+//
+//    private List<SysMenuDto> convert(List<SysMenu> menuTree) {
+//        List<SysMenuDto> menuDtos = new ArrayList<>();
+//
+//        menuTree.forEach(m -> {
+//            SysMenuDto dto = new SysMenuDto();
+//
+//            dto.setId(m.getId());
+//            dto.setName(m.getPerms());
+//            dto.setTitle(m.getName());
+//            dto.setComponent(m.getComponent());
+//            dto.setPath(m.getPath());
+//
+//            if (m.getChildren().size() > 0) {
+//
+//                // 瀛愯妭鐐硅皟鐢ㄥ綋鍓嶆柟娉曡繘琛屽啀娆¤浆鎹�
+//                dto.setChildren(convert(m.getChildren()));
+//            }
+//
+//            menuDtos.add(dto);
+//        });
+//
+//        return menuDtos;
+//    }
+//
+//    private List<SysMenu> buildTreeMenu(List<SysMenu> menus) {
+//
+//        List<SysMenu> finalMenus = new ArrayList<>();
+//
+//        // 鍏堝悇鑷鎵惧埌鍚勮嚜鐨勫瀛�
+//        for (SysMenu menu : menus) {
+//
+//            for (SysMenu e : menus) {
+//                if (menu.getId() == e.getParentId()) {
+//                    menu.getChildren().add(e);
+//                }
+//            }
+//
+//            // 鎻愬彇鍑虹埗鑺傜偣
+//            if (menu.getParentId() == 0L) {
+//                finalMenus.add(menu);
+//            }
+//        }
+//
+//        System.out.println(JSONUtil.toJsonStr(finalMenus));
+//        return finalMenus;
+//    }
 
 }

--
Gitblit v1.8.0