From c59cbfa92147058b828f78ed35b15d4ef4a7ef94 Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期三, 26 六月 2024 14:47:25 +0800 Subject: [PATCH] 恢复Git删除的代码 --- hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java | 148 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 148 insertions(+), 0 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 new file mode 100644 index 0000000..597f93c --- /dev/null +++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java @@ -0,0 +1,148 @@ +package com.mes.menu.service.impl; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.json.JSONUtil; +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.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.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * <p> + * 鑿滃崟琛� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author zhoush + * @since 2024-04-11 + */ +@Service +@Slf4j +public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService { + + @Autowired + SysUserService sysUserService; + + @Autowired + SysUserRoleMapper sysUserRoleMapper; + + @Autowired + SysRoleMenuService sysRoleMenuService; + + @Override + public SysMenu updateMenu(SysMenu menu) { + baseMapper.updateById(menu); + // 娓呴櫎鎵�鏈変笌璇ヨ彍鍗曠浉鍏崇殑鏉冮檺缂撳瓨 + sysUserService.clearUserAuthorityInfoByMenuId(menu.getId()); + return menu; + } + + @Override + public List<SysMenu> getMenuTree(GeneralRequest request) { + //todo:闇�瑕佸厛鑾峰彇鐢ㄦ埛鐨勮鑹诧紝瑙掕壊涓嬬殑鑿滃崟鏉冮檺锛屾嬁鍒拌彍鍗昳d鑾峰彇鎵�鏈夎彍鍗� + SysUser user = UserInfoUtils.get(); + MPJLambdaWrapper<SysUserRole> wrapper = new MPJLambdaWrapper<>(); + + wrapper.selectAll(SysMenu.class).distinct() + .innerJoin(SysUser.class, SysUser::getId, SysUserRole::getUserId) + .innerJoin(SysRoleMenu.class, SysRoleMenu::getRoleId, SysUserRole::getRoleId) + .innerJoin(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); + log.info("userinfos:{}",menuList); + return create(menuList); + } + + @Override + public List<String> getAuthorityInfo() { + SysUser user = UserInfoUtils.get(); + log.info("鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓簕}", user); + // 鑾峰彇鏉冮檺淇℃伅 + // 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 "鎵归噺鍒犻櫎鎴愬姛"; + } + + + /** + * 灏嗘暟鎹簱涓煡璇㈠嚭鏉ョ殑list闆嗗悎浼犲叆姝ゆ柟娉曞嵆鍙幏寰楁帓鎴愭爲褰㈢粨鏋勭殑list闆嗗悎 + * + * @param lists + * @return + */ + public List<SysMenu> create(List<SysMenu> lists) { + List<SysMenu> deptTreeList = lists.stream() + .filter(item -> item.getParentId() == 0) + .map(item -> { + item.setChildren(getChildren(item, lists)); + return item; + }).collect(Collectors.toList()); + return deptTreeList; + } + + /** + * 姝ゆ柟娉曞皢琚�掑綊璋冪敤 + * + * @param menu + * @param menus + * @return + */ + private List<SysMenu> getChildren(SysMenu menu, List<SysMenu> menus) { + List<SysMenu> res = menus.stream() + .filter(item -> item.getParentId().equals(menu.getId())) + .collect(Collectors.toList()); + log.info("鑿滃崟鏍�:{}", JSONUtil.toJsonStr(res)); + return res; + } + +} -- Gitblit v1.8.0