Jelajahi Sumber

角色分页返回菜单信息,反显用

谭斌 2 tahun lalu
induk
melakukan
36d17ac522

+ 8 - 0
authorize-api-service/src/main/java/com/xy/service/SysRoleMenuService.java

@@ -21,4 +21,12 @@ public interface SysRoleMenuService extends IService<SysRoleMenu> {
      */
     Boolean saveRoleMenus(RoleMenuVo roleMenuVo);
 
+    /**
+     * 获取角色菜单ID
+     *
+     * @param roleId
+     * @return
+     */
+    List<Long> getMenuIdsByRoleId(Long roleId);
+
 }

+ 13 - 0
authorize-api-service/src/main/java/com/xy/service/impl/SysRoleMenuServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xy.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -10,6 +11,7 @@ import com.xy.vo.RoleMenuVo;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -51,4 +53,15 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
         return saveBatch(roleMenuList);
     }
 
+    @Override
+    public List<Long> getMenuIdsByRoleId(Long roleId) {
+        List<Long> menuIds = new ArrayList<>(16);
+        List<SysRoleMenu> sysRoleMenus = this.list(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, roleId));
+        if (CollUtil.isNotEmpty(sysRoleMenus)) {
+            return menuIds;
+        }
+        menuIds = sysRoleMenus.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList());
+        return menuIds;
+    }
+
 }

+ 13 - 1
authorize-api-service/src/main/java/com/xy/service/impl/SysRoleServiceImpl.java

@@ -150,7 +150,19 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                     .eq(SysRole::getIsLeave, true)
             );
         }
+        //角色菜单信息
         IPage<SysRole> page = page(toIPage(pageBean), lqw);
-        return R.ok(toPageBean(SysRoleVo.class, page));
+        PageBean<SysRoleVo> sysRoleVoPageBean = toPageBean(SysRoleVo.class, page);
+        List<SysRoleVo> records = sysRoleVoPageBean.getRecords();
+        if (CollUtil.isNotEmpty(records)) {
+            //拿到角色菜单信息返回
+            records.forEach(sysRoleVo -> {
+                Long id = sysRoleVo.getId();
+                List<Long> menuIdsByRoleId = sysRoleMenuService.getMenuIdsByRoleId(id);
+                sysRoleVo.setMenuIds(menuIdsByRoleId);
+            });
+            sysRoleVoPageBean.setRecords(records);
+        }
+        return R.ok(sysRoleVoPageBean);
     }
 }