派生自 projectDept/qhighschool

EricsHu
2023-11-26 1da190e7f267bcd3501884f3aeaac7476850fec7
src/main/java/com/qxueyou/scc/user/service/impl/UserRoleService.java
@@ -1,5 +1,6 @@
package com.qxueyou.scc.user.service.impl;
import com.qxueyou.scc.admin.classes.model.ClsClass;
import com.qxueyou.scc.base.model.Result;
import com.qxueyou.scc.base.service.impl.CommonAppService;
import com.qxueyou.scc.base.util.ClientUtils;
@@ -17,6 +18,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * 角色
@@ -28,6 +30,7 @@
public class UserRoleService extends CommonAppService implements IUserRoleService {
   @Autowired
   UserRoleDAO dao;
   /**
    * 得到菜单
@@ -128,11 +131,47 @@
   @Override
   public Result queryRoleDetail(String roleId) {
      List<Map<String, Object>> findMenuLstById = dao.findMenuLstById(roleId);
      List<Map<String, Object>> findRoleMenuLstById = dao.findMenuLstById(roleId);
      UserRole userRole = read(UserRole.class, roleId);
///////////////////////////////////////////////////新增方法
       StringBuffer hql=new StringBuffer( "select m.name as name ,m.menuId as menuId  ,m.parentMenuId as parentMenuId ,m.level as level  from SysMenu m where deleteFlag is false ");
//获取所有菜单
      List<SysMenu> sysMenusAll = new ArrayList<>();
      List<Map<String, Object>> listWithMapByHql = findListWithMapByHql(hql.toString(), CollectionUtils.newObjectMap());
      //将map转化成SysMenu实体类
      for (Map<String, Object> stringObjectMap : listWithMapByHql) {
         SysMenu sysMenu = new SysMenu();
         sysMenu.setMenuId(stringObjectMap.get("menuId").toString());
         sysMenu.setName(stringObjectMap.get("name").toString());
         sysMenu.setParentMenuId(stringObjectMap.get("parentMenuId").toString());
         sysMenu.setLevel(Integer.parseInt(stringObjectMap.get("level").toString()));
         sysMenusAll.add(sysMenu);
      }
      //获取一级菜单
      List<SysMenu> firstMenuList = sysMenusAll.stream().filter
            //过滤出一级菜单
                  (s -> s.getLevel()==0)
            // 返回list集合形式
            .collect(Collectors.toList());
      // 遍历一级菜单,构造菜单树
      for (SysMenu menu : firstMenuList) {
         getChildrenList(menu, sysMenusAll);
      }
      ///////////////////////////////////////////////////新增方法
      return new Result(true, "success",
            CollectionUtils.newObjectMap("roleName", userRole.getName(), "menuLst", findMenuLstById));
            CollectionUtils.newObjectMap("roleName", userRole.getName(), "menuLstAll", firstMenuList,"roleMenuLstById",findRoleMenuLstById));
   }
   public SysMenu getChildrenList(SysMenu sysMenu, List<SysMenu>  sysMenuList ) {
      for (SysMenu menu : sysMenuList) {
         if (menu.getParentMenuId().equals(sysMenu.getMenuId())) {
            sysMenu.getChildrenList().add(getChildrenList(menu, sysMenuList));
         }
      }
      return sysMenu;
   }
   @Override