From 91e4ba507f9806c975a4273154d79f1a43b836c4 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期一, 29 四月 2024 13:42:29 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
---
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java | 165 ++++++++++++++++++++++++------------------------------
1 files changed, 74 insertions(+), 91 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..b4d0fc6 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,22 +1,28 @@
package com.mes.menu.service.impl;
+import cn.hutool.core.map.MapUtil;
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.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.utils.UserInfoUtils;
+import com.mes.entity.request.GeneralRequest;
import com.mes.menu.entity.SysMenu;
import com.mes.menu.mapper.SysMenuMapper;
import com.mes.menu.service.SysMenuService;
+import com.mes.role.entity.SysRoleMenu;
+import com.mes.role.service.SysRoleMenuService;
import com.mes.userinfo.entity.SysUser;
-import com.mes.userinfo.mapper.SysUserMapper;
+import com.mes.userinfo.entity.SysUserRole;
+import com.mes.userinfo.mapper.SysUserRoleMapper;
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.Map;
import java.util.stream.Collectors;
/**
@@ -34,20 +40,75 @@
@Autowired
SysUserService sysUserService;
+ @Autowired
+ SysUserRoleMapper sysUserRoleMapper;
+
+ @Autowired
+ SysRoleMenuService sysRoleMenuService;
+
@Override
- public List<SysMenu> getMenuTree() {
+ public SysMenu updateMenu(SysMenu menu) {
+ baseMapper.updateById(menu);
+ // 娓呴櫎鎵�鏈変笌璇ヨ彍鍗曠浉鍏崇殑鏉冮檺缂撳瓨
+ sysUserService.clearUserAuthorityInfoByMenuId(menu.getId());
+ return menu;
+ }
+
+ @Override
+ public List<SysMenu> getMenuTree(GeneralRequest request) {
//todo:闇�瑕佸厛鑾峰彇鐢ㄦ埛鐨勮鑹诧紝瑙掕壊涓嬬殑鑿滃崟鏉冮檺锛屾嬁鍒拌彍鍗昳d鑾峰彇鎵�鏈夎彍鍗�
- List<SysMenu> menuList = this.baseMapper.selectList(null);
+ SysUser user = UserInfoUtils.get();
+ MPJLambdaWrapper<SysUserRole> wrapper = new MPJLambdaWrapper<>();
+
+ wrapper.selectAll(SysMenu.class).distinct()
+ .leftJoin(SysUser.class, SysUser::getId, SysUserRole::getUserId)
+ .leftJoin(SysRoleMenu.class, SysRoleMenu::getRoleId, SysUserRole::getRoleId)
+ .leftJoin(SysMenu.class, SysMenu::getId, SysRoleMenu::getMenuId)
+ .eq(SysUser::getId, user.getId())
+ .like(StringUtils.isNotBlank(request.getKey()), SysMenu::getMenuName, request.getKey());
+
+ List<SysMenu> menuList = sysUserRoleMapper.selectJoinList(SysMenu.class, wrapper);
return create(menuList);
}
@Override
- public List<String> getAuthorityInfo(String userName) {
- SysUser sysUser = sysUserService.listByUserName(userName);
-
+ public List<String> getAuthorityInfo() {
+ SysUser user = UserInfoUtils.get();
+ log.info("鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓簕}", user);
// 鑾峰彇鏉冮檺淇℃伅
- 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(user.getId());
+ }
+
+ @Override
+ public Map<Object, Object> nav() {
+ List<SysMenu> menuTree = getMenuTree(new GeneralRequest());
+ List<String> authorityInfo = getAuthorityInfo();
+ return MapUtil.builder().put("authoritys", authorityInfo)
+ .put("tree", menuTree).map();
+ }
+
+ @Override
+ public String deleteMenu(Long menuId) {
+ int count = this.count(new LambdaQueryWrapper<SysMenu>().eq(SysMenu::getParentId, menuId));
+ if (count > 0) {
+ return "鏃犳硶鍒犻櫎,璇峰厛鍒犻櫎瀛愯彍鍗�";
+ }
+
+ // 娓呴櫎鎵�鏈変笌璇ヨ彍鍗曠浉鍏崇殑鏉冮檺缂撳瓨
+ sysUserService.clearUserAuthorityInfoByMenuId(menuId);
+
+ this.removeById(menuId);
+
+ // 鍚屾鍒犻櫎涓棿鍏宠仈琛�
+ sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getMenuId, menuId));
+ return "鍒犻櫎鎴愬姛";
+ }
+
+ @Override
+ public String batchDeleteMenu(List<Long> menuIds) {
+ menuIds.stream().forEach(e -> deleteMenu(e));
+ return "鎵归噺鍒犻櫎鎴愬姛";
}
@@ -77,87 +138,9 @@
private List<SysMenu> getChildren(SysMenu menu, List<SysMenu> menus) {
List<SysMenu> res = menus.stream()
.filter(item -> item.getParentId().equals(menu.getId()))
- .map(item -> {
- item.setChildren(getChildren(item, menus));
- return item;
- }).collect(Collectors.toList());
+ .collect(Collectors.toList());
log.info("鑿滃崟鏍�:{}", JSONUtil.toJsonStr(res));
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;
}
}
--
Gitblit v1.8.0