mirror of https://gitee.com/stylefeng/roses
【menu】整理菜单的两个通用service
parent
3f634f8eef
commit
c3e1a6e698
|
@ -25,10 +25,10 @@ Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意
|
|||
package cn.stylefeng.roses.kernel.menu.modular.service;
|
||||
|
||||
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenu;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.tree.LoginMenuTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.tree.MenuBaseTreeNode;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -87,6 +87,23 @@ public interface SysMenuService extends IService<SysMenu> {
|
|||
*/
|
||||
List<SysMenu> list(SysMenuRequest sysMenuRequest);
|
||||
|
||||
/**
|
||||
* 获取当前用户的所有菜单
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 18:11
|
||||
*/
|
||||
List<SysMenu> getCurrentUserMenus();
|
||||
|
||||
/**
|
||||
* 获取当前用户的某个应用下的菜单
|
||||
*
|
||||
* @param appCode 应用编码
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 18:11
|
||||
*/
|
||||
List<SysMenu> getCurrentUserMenus(String appCode);
|
||||
|
||||
/**
|
||||
* 获取某个应用的菜单,用于系统顶部切换菜单(AntDesign前端框架)
|
||||
*
|
||||
|
|
|
@ -27,6 +27,7 @@ package cn.stylefeng.roses.kernel.menu.modular.service.impl;
|
|||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
|
||||
|
@ -148,8 +149,14 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<LoginMenuTreeNode> getAppMenusAntDesign(String appCode) {
|
||||
public List<SysMenu> getCurrentUserMenus() {
|
||||
return getCurrentUserMenus(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> getCurrentUserMenus(String appCode) {
|
||||
|
||||
// 获取当前用户所有的菜单id
|
||||
List<Long> menuIdList = getCurrentUserMenuIds();
|
||||
|
||||
// 当前用户没有菜单
|
||||
|
@ -162,12 +169,24 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
queryWrapper.in(SysMenu::getMenuId, menuIdList)
|
||||
.eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode())
|
||||
.eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode())
|
||||
.eq(SysMenu::getAppCode, appCode)
|
||||
.orderByAsc(SysMenu::getMenuSort);
|
||||
List<SysMenu> sysMenuList = this.list(queryWrapper);
|
||||
|
||||
// 如果应用编码不为空,则拼接应用编码
|
||||
if (StrUtil.isNotBlank(appCode)) {
|
||||
queryWrapper.eq(SysMenu::getAppCode, appCode);
|
||||
}
|
||||
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LoginMenuTreeNode> getAppMenusAntDesign(String appCode) {
|
||||
|
||||
// 获取当前用户的所有菜单
|
||||
List<SysMenu> currentUserMenus = this.getCurrentUserMenus(appCode);
|
||||
|
||||
// 转换成登录菜单格式
|
||||
return MenuFactory.convertSysMenuToLoginMenu(sysMenuList);
|
||||
return MenuFactory.convertSysMenuToLoginMenu(currentUserMenus);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue