lyhzzz 2 éve
szülő
commit
49001b1712

+ 4 - 0
src/main/java/com/fdkankan/manage/mapper/ISysRoleMenuMapper.java

@@ -3,6 +3,9 @@ package com.fdkankan.manage.mapper;
 import com.fdkankan.manage.entity.SysRoleMenu;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -15,4 +18,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface ISysRoleMenuMapper extends BaseMapper<SysRoleMenu> {
 
+    List<Long> getButtonIdsByRoleId(@Param("roleId") Long roleId);
 }

+ 2 - 0
src/main/java/com/fdkankan/manage/service/ISysRoleMenuService.java

@@ -20,4 +20,6 @@ public interface ISysRoleMenuService extends IService<SysRoleMenu> {
     void saveBatchByRoleId(Long roleId, List<Long> menuIds);
 
     List<SysRoleMenu> getByRoleId(Long roleId);
+
+    List<Long> getButtonIdsByRoleId(Long roleId);
 }

+ 1 - 12
src/main/java/com/fdkankan/manage/service/impl/SysMenuServiceImpl.java

@@ -167,17 +167,6 @@ public class SysMenuServiceImpl extends ServiceImpl<ISysMenuMapper, SysMenu> imp
 
     @Override
     public List<Long> getMenuIdsByRoleId(Long roleId) {
-        LambdaQueryWrapper<SysRoleMenu> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(SysRoleMenu::getRoleId,roleId);
-        List<SysRoleMenu> list = roleMenuService.list(wrapper);
-        List<Long> menuIds = list.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList());
-        List<Long> setIds = new ArrayList<>();
-        HashMap<Long, SysMenu> byIds = this.getByIds(menuIds);
-        for (Long menuId : menuIds) {
-            if(byIds.get(menuId).getType()==2){
-                setIds.add(menuId);
-            }
-        }
-        return setIds;
+        return  roleMenuService.getButtonIdsByRoleId(roleId);
     }
 }

+ 5 - 0
src/main/java/com/fdkankan/manage/service/impl/SysRoleMenuServiceImpl.java

@@ -65,4 +65,9 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<ISysRoleMenuMapper, SysR
         wrapper.eq(SysRoleMenu::getRoleId,roleId);
         return this.list(wrapper);
     }
+
+    @Override
+    public List<Long> getButtonIdsByRoleId(Long roleId) {
+        return this.getBaseMapper().getButtonIdsByRoleId(roleId);
+    }
 }

+ 4 - 0
src/main/resources/mapper/manage/SysRoleMenuMapper.xml

@@ -2,4 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fdkankan.manage.mapper.ISysRoleMenuMapper">
 
+    <select id="getButtonIdsByRoleId" resultType="java.lang.Long">
+        select m.id from sys_menu m left join sys_role_menu r on m.id = r.menu_id
+        where m.type = 2 and role_id = #{roleId}
+    </select>
 </mapper>