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.MenuServiceApi;
|
||||||
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
|
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.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.entity.SysApp;
|
||||||
import cn.stylefeng.roses.kernel.system.modular.app.mapper.SysAppMapper;
|
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.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.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.like(ObjectUtil.isNotEmpty(sysAppRequest.getAppCode()), SysApp::getAppCode, sysAppRequest.getAppCode());
|
||||||
|
|
||||||
|
// 根据激活状态
|
||||||
|
queryWrapper.eq(ObjectUtil.isNotEmpty(sysAppRequest.getStatusFlag()), SysApp::getActiveFlag, sysAppRequest.getActiveFlag());
|
||||||
|
|
||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -142,8 +142,8 @@ public class SysMenuController {
|
||||||
* @date 2021/1/7 15:17
|
* @date 2021/1/7 15:17
|
||||||
*/
|
*/
|
||||||
@GetResource(name = "获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)", path = "/sysMenu/getLeftMenusAntdv", requiredPermission = false)
|
@GetResource(name = "获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)", path = "/sysMenu/getLeftMenusAntdv", requiredPermission = false)
|
||||||
public ResponseData getLeftMenusAntdv() {
|
public ResponseData getLeftMenusAntdv(SysMenuRequest sysMenuRequest) {
|
||||||
List<AntdSysMenuDTO> sysMenuResponses = sysMenuService.getLeftMenusAntdv();
|
List<AntdSysMenuDTO> sysMenuResponses = sysMenuService.getLeftMenusAntdv(sysMenuRequest);
|
||||||
return new SuccessResponseData(sysMenuResponses);
|
return new SuccessResponseData(sysMenuResponses);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -133,7 +133,7 @@ public interface SysMenuService extends IService<SysMenu> {
|
||||||
* @author majianguo
|
* @author majianguo
|
||||||
* @date 2021/1/7 15:24
|
* @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
|
@Override
|
||||||
public List<AntdSysMenuDTO> getLeftMenusAntdv() {
|
public List<AntdSysMenuDTO> getLeftMenusAntdv(SysMenuRequest sysMenuRequest) {
|
||||||
|
|
||||||
LambdaQueryWrapper<SysMenu> wrapper = this.createWrapper(new SysMenuRequest());
|
String appCode = sysMenuRequest.getAppCode();
|
||||||
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());
|
|
||||||
|
|
||||||
// 如果是超级管理员,则获取所有的菜单
|
// 获取默认激活的应用
|
||||||
if (LoginContext.me().getSuperAdminFlag()) {
|
if (ObjectUtil.isEmpty(appCode)) {
|
||||||
List<SysMenu> totalList = this.list(wrapper);
|
appCode = appServiceApi.getActiveAppCode();
|
||||||
return AntdMenusFactory.createTotalMenus(totalList);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取当前用户的所有菜单
|
// 获取应用对应的菜单
|
||||||
List<Long> menuIdList = getCurrentUserMenuIds();
|
List<SysMenu> currentUserMenus = this.getCurrentUserMenus(appCode);
|
||||||
wrapper.in(SysMenu::getMenuId, menuIdList);
|
|
||||||
List<SysMenu> customList = this.list(wrapper);
|
return AntdMenusFactory.createTotalMenus(currentUserMenus);
|
||||||
return AntdMenusFactory.createTotalMenus(customList);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -417,23 +406,29 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
@Override
|
@Override
|
||||||
public List<SysMenu> getCurrentUserMenus(String appCode) {
|
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<>();
|
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)) {
|
if (StrUtil.isNotBlank(appCode)) {
|
||||||
queryWrapper.eq(SysMenu::getAppCode, 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);
|
return this.list(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue