mirror of https://gitee.com/stylefeng/roses
【7.0.3】antdv获取菜单增加appCode
parent
743a922052
commit
4a632f3a7e
|
@ -37,10 +37,10 @@ import cn.stylefeng.roses.kernel.system.api.AppServiceApi;
|
|||
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
|
||||
import cn.stylefeng.roses.kernel.system.api.exception.enums.app.AppExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.app.entity.SysApp;
|
||||
import cn.stylefeng.roses.kernel.system.modular.app.mapper.SysAppMapper;
|
||||
import cn.stylefeng.roses.kernel.system.modular.app.service.SysAppService;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppRequest;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
@ -260,6 +260,9 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
|
|||
// 根据编码模糊查询
|
||||
queryWrapper.like(ObjectUtil.isNotEmpty(sysAppRequest.getAppCode()), SysApp::getAppCode, sysAppRequest.getAppCode());
|
||||
|
||||
// 根据激活状态
|
||||
queryWrapper.eq(ObjectUtil.isNotEmpty(sysAppRequest.getStatusFlag()), SysApp::getActiveFlag, sysAppRequest.getActiveFlag());
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
|
|
|
@ -142,8 +142,8 @@ public class SysMenuController {
|
|||
* @date 2021/1/7 15:17
|
||||
*/
|
||||
@GetResource(name = "获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)", path = "/sysMenu/getLeftMenusAntdv", requiredPermission = false)
|
||||
public ResponseData getLeftMenusAntdv() {
|
||||
List<AntdSysMenuDTO> sysMenuResponses = sysMenuService.getLeftMenusAntdv();
|
||||
public ResponseData getLeftMenusAntdv(SysMenuRequest sysMenuRequest) {
|
||||
List<AntdSysMenuDTO> sysMenuResponses = sysMenuService.getLeftMenusAntdv(sysMenuRequest);
|
||||
return new SuccessResponseData(sysMenuResponses);
|
||||
}
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ public interface SysMenuService extends IService<SysMenu> {
|
|||
* @author majianguo
|
||||
* @date 2021/1/7 15:24
|
||||
*/
|
||||
List<AntdSysMenuDTO> getLeftMenusAntdv();
|
||||
List<AntdSysMenuDTO> getLeftMenusAntdv(SysMenuRequest sysMenuRequest);
|
||||
|
||||
/**
|
||||
* 获取包含按钮的系统菜单
|
||||
|
|
|
@ -278,30 +278,19 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<AntdSysMenuDTO> getLeftMenusAntdv() {
|
||||
public List<AntdSysMenuDTO> getLeftMenusAntdv(SysMenuRequest sysMenuRequest) {
|
||||
|
||||
LambdaQueryWrapper<SysMenu> wrapper = this.createWrapper(new SysMenuRequest());
|
||||
wrapper.select(SysMenu::getMenuName,
|
||||
SysMenu::getAntdvIcon,
|
||||
SysMenu::getAntdvRouter,
|
||||
SysMenu::getAntdvComponent,
|
||||
SysMenu::getVisible,
|
||||
SysMenu::getAntdvUidUrl,
|
||||
SysMenu::getMenuId,
|
||||
SysMenu::getMenuParentId);
|
||||
wrapper.eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode());
|
||||
String appCode = sysMenuRequest.getAppCode();
|
||||
|
||||
// 如果是超级管理员,则获取所有的菜单
|
||||
if (LoginContext.me().getSuperAdminFlag()) {
|
||||
List<SysMenu> totalList = this.list(wrapper);
|
||||
return AntdMenusFactory.createTotalMenus(totalList);
|
||||
// 获取默认激活的应用
|
||||
if (ObjectUtil.isEmpty(appCode)) {
|
||||
appCode = appServiceApi.getActiveAppCode();
|
||||
}
|
||||
|
||||
// 获取当前用户的所有菜单
|
||||
List<Long> menuIdList = getCurrentUserMenuIds();
|
||||
wrapper.in(SysMenu::getMenuId, menuIdList);
|
||||
List<SysMenu> customList = this.list(wrapper);
|
||||
return AntdMenusFactory.createTotalMenus(customList);
|
||||
// 获取应用对应的菜单
|
||||
List<SysMenu> currentUserMenus = this.getCurrentUserMenus(appCode);
|
||||
|
||||
return AntdMenusFactory.createTotalMenus(currentUserMenus);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -417,23 +406,29 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
@Override
|
||||
public List<SysMenu> getCurrentUserMenus(String appCode) {
|
||||
|
||||
// 获取当前用户所有的菜单id
|
||||
List<Long> menuIdList = getCurrentUserMenuIds();
|
||||
|
||||
// 当前用户没有菜单
|
||||
if (menuIdList.isEmpty()) {
|
||||
throw new SystemModularException(SysUserExceptionEnum.USER_NOT_HAVE_MENUS);
|
||||
}
|
||||
|
||||
// 获取菜单列表
|
||||
// 菜单查询条件
|
||||
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(SysMenu::getMenuId, menuIdList).eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode()).eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode()).orderByAsc(SysMenu::getMenuSort);
|
||||
queryWrapper.eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode())
|
||||
.eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode())
|
||||
.orderByAsc(SysMenu::getMenuSort);
|
||||
|
||||
// 如果应用编码不为空,则拼接应用编码
|
||||
if (StrUtil.isNotBlank(appCode)) {
|
||||
queryWrapper.eq(SysMenu::getAppCode, appCode);
|
||||
}
|
||||
|
||||
// 如果是超级管理员,则获取所有的菜单
|
||||
if (LoginContext.me().getSuperAdminFlag()) {
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
// 非超级管理员,获取当前用户所有的菜单id
|
||||
List<Long> menuIdList = getCurrentUserMenuIds();
|
||||
if (menuIdList.isEmpty()) {
|
||||
throw new SystemModularException(SysUserExceptionEnum.USER_NOT_HAVE_MENUS);
|
||||
}
|
||||
queryWrapper.in(SysMenu::getMenuId, menuIdList);
|
||||
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue