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