|
@@ -11,10 +11,7 @@ import com.xy.mapper.SysDeptMapper;
|
|
|
import com.xy.mapper.SysMenuMapper;
|
|
|
import com.xy.mapper.SysRoleMapper;
|
|
|
import com.xy.mapper.SysSystemMapper;
|
|
|
-import com.xy.utils.AuthorizeUtils;
|
|
|
-import com.xy.utils.Emptys;
|
|
|
-import com.xy.utils.RedisService;
|
|
|
-import com.xy.utils.SpringBeanUtils;
|
|
|
+import com.xy.utils.*;
|
|
|
import icu.mhb.mybatisplus.plugln.core.JoinLambdaWrapper;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.web.context.request.RequestContextHolder;
|
|
@@ -23,6 +20,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* 权限系统redis工具类
|
|
@@ -156,4 +154,96 @@ public class RedisCache extends AuthorizeUtils {
|
|
|
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
|
return authByData(systemId, request.getRequestURI());
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取菜单
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static List<List<SysMenuJoinSysRoleMenu>> getMenu() {
|
|
|
+ List<List<SysMenuJoinSysRoleMenu>> lists = new ArrayList<>();
|
|
|
+ //获取redis缓存
|
|
|
+ Map<String, List<CacheEntity>> map = getRedisService().getMap(getKey(getLoginId(getToken(), Long.class)));
|
|
|
+ map.forEach((s, cacheEntities) -> {
|
|
|
+ //角色菜单累加
|
|
|
+ JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus = new JArrayList<>();
|
|
|
+ cacheEntities.forEach(cacheEntity -> {
|
|
|
+ if (Emptys.check(cacheEntity.getList())) {
|
|
|
+ sysMenuJoinSysRoleMenus.addAll(cacheEntity.getList());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //去重
|
|
|
+ sysMenuJoinSysRoleMenus.comparing(SysMenuJoinSysRoleMenu::getId);
|
|
|
+ if (Emptys.check(sysMenuJoinSysRoleMenus)) {
|
|
|
+ lists.add(sysMenuJoinSysRoleMenus);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return lists;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取菜单树
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static List<List<SysMenuJoinSysRoleMenu>> getMenuTree() {
|
|
|
+ List<List<SysMenuJoinSysRoleMenu>> list = new ArrayList<>();
|
|
|
+ //获取菜单
|
|
|
+ List<List<SysMenuJoinSysRoleMenu>> menu = getMenu();
|
|
|
+ menu.forEach(sysMenuJoinSysRoleMenus -> {
|
|
|
+ //生成树
|
|
|
+ JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus1 = new JArrayList<>(sysMenuJoinSysRoleMenus);
|
|
|
+ JList<SysMenuJoinSysRoleMenu> tops = sysMenuJoinSysRoleMenus1.filter().isNull(SysMenuJoinSysRoleMenu::getPaterId).list();
|
|
|
+ for (SysMenuJoinSysRoleMenu top : tops) {
|
|
|
+ List<SysMenuJoinSysRoleMenu> tree = Beans.tree(top, sysMenuJoinSysRoleMenus1, SysMenuJoinSysRoleMenu::getId, SysMenuJoinSysRoleMenu::getPaterId, SysMenuJoinSysRoleMenu::getSonSysMenu);
|
|
|
+ top.setSonSysMenu(tree);
|
|
|
+ }
|
|
|
+ list.add(tops);
|
|
|
+ });
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取菜单
|
|
|
+ *
|
|
|
+ * @param systemId 系统id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static List<SysMenuJoinSysRoleMenu> getMenu(Long systemId) {
|
|
|
+ JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus = new JArrayList<>();
|
|
|
+ //获取redis缓存
|
|
|
+ List<AuthorizeUtils.CacheEntity> cacheEntities = getRedisService().getMap(getKey(getLoginId(getToken(), Long.class)), systemId.toString());
|
|
|
+ if (!Emptys.check(cacheEntities)) {
|
|
|
+ return sysMenuJoinSysRoleMenus;
|
|
|
+ }
|
|
|
+ //角色菜单累加
|
|
|
+ cacheEntities.forEach(cacheEntity -> {
|
|
|
+ if (Emptys.check(cacheEntity.getList())) {
|
|
|
+ sysMenuJoinSysRoleMenus.addAll(cacheEntity.getList());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //去重
|
|
|
+ sysMenuJoinSysRoleMenus.comparing(SysMenuJoinSysRoleMenu::getId);
|
|
|
+ return sysMenuJoinSysRoleMenus;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取菜单树
|
|
|
+ *
|
|
|
+ * @param systemId 系统id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static List<SysMenuJoinSysRoleMenu> getMenuTree(Long systemId) {
|
|
|
+ //获取菜单
|
|
|
+ List<SysMenuJoinSysRoleMenu> menu = getMenu(systemId);
|
|
|
+ JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus = new JArrayList<>(menu);
|
|
|
+ //生成树
|
|
|
+ JList<SysMenuJoinSysRoleMenu> tops = sysMenuJoinSysRoleMenus.filter().isNull(SysMenuJoinSysRoleMenu::getPaterId).list();
|
|
|
+ for (SysMenuJoinSysRoleMenu top : tops) {
|
|
|
+ List<SysMenuJoinSysRoleMenu> tree = Beans.tree(top, sysMenuJoinSysRoleMenus, SysMenuJoinSysRoleMenu::getId, SysMenuJoinSysRoleMenu::getPaterId, SysMenuJoinSysRoleMenu::getSonSysMenu);
|
|
|
+ top.setSonSysMenu(tree);
|
|
|
+ }
|
|
|
+ return tops;
|
|
|
+ }
|
|
|
+
|
|
|
}
|