派生自 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,9 +18,10 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * 角色
 * 角色
 * 
 * @author ody.yuan
 *
@@ -29,8 +31,9 @@
   @Autowired
   UserRoleDAO dao;
   /**
    * 得到菜单
    * 得到菜单
    * 
    * @return
    */
@@ -40,13 +43,13 @@
   }
   /**
    * 得到菜单
    * 得到菜单
    * 
    * @return
    */
   private Result queryCommonMenus(String roleId) {
      // 按角色过滤
      // 按角色过滤
      Result result = new Result(true);
@@ -85,7 +88,7 @@
   }
   /**
    * 取得当前角色是否编辑过 按钮权限,有记录就是编辑过
    * 取得当前角色是否编辑过 按钮权限,有记录就是编辑过
    * 
    * @return
    */
@@ -119,20 +122,56 @@
   @Override
   public Result delete(String userId) {
      boolean result = dao.delete(userId);
      String messge = "移除成功";
      String messge = "移除成功";
      if (!result) {
         messge = "移除失败";
         messge = "移除失败";
      }
      return new Result(result, messge);
   }
   @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
@@ -172,4 +211,5 @@
      return dao.addTeachers(teacherIds, roleId);
   }
}