【7.6.0】【sys】新增一个通过菜单id获取菜单详情的接口

pull/57/head
fengshuonan 2023-06-26 21:41:50 +08:00
parent b6219971ef
commit 486a4b134b
3 changed files with 116 additions and 5 deletions

View File

@ -0,0 +1,50 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.sys.api;
import cn.stylefeng.roses.kernel.sys.api.pojo.menu.UserAppMenuInfo;
import java.util.List;
import java.util.Set;
/**
* Api
*
* @author fengshuonan
* @since 2023/6/26 21:36
*/
public interface SysMenuServiceApi {
/**
* id
* <p>
*
*
* @author fengshuonan
* @since 2023/6/26 21:37
*/
List<UserAppMenuInfo> getUserAppMenuDetailList(Set<Long> menuIdList);
}

View File

@ -0,0 +1,35 @@
package cn.stylefeng.roses.kernel.sys.api.pojo.menu;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import lombok.Data;
/**
*
* <p>
*
*
* @author fengshuonan
* @since 2023/6/26 21:35
*/
@Data
public class UserAppMenuInfo {
/**
*
*/
@ChineseDescription("菜单名称")
private String menuName;
/**
*
*/
@ChineseDescription("菜单图标")
private String menuIcon;
/**
*
*/
@ChineseDescription("菜单路由")
private String menuRouter;
}

View File

@ -9,7 +9,9 @@ import cn.stylefeng.roses.kernel.rule.constants.SymbolConstant;
import cn.stylefeng.roses.kernel.rule.constants.TreeConstants;
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
import cn.stylefeng.roses.kernel.rule.tree.buildpids.PidStructureBuildUtil;
import cn.stylefeng.roses.kernel.sys.api.SysMenuServiceApi;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveMenuCallbackApi;
import cn.stylefeng.roses.kernel.sys.api.pojo.menu.UserAppMenuInfo;
import cn.stylefeng.roses.kernel.sys.modular.app.service.SysAppService;
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenu;
import cn.stylefeng.roses.kernel.sys.modular.menu.enums.SysMenuExceptionEnum;
@ -39,7 +41,7 @@ import java.util.stream.Collectors;
* @date 2023/06/10 21:28
*/
@Service
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService, SysMenuServiceApi {
@Resource
private SysAppService sysAppService;
@ -190,9 +192,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
// 查询指定的菜单内容
sysMenuLambdaQueryWrapper.select(SysMenu::getMenuId, SysMenu::getMenuParentId, SysMenu::getAppId, SysMenu::getMenuCode,
SysMenu::getMenuName, SysMenu::getMenuType,
SysMenu::getAntdvIcon, SysMenu::getAntdvVisible, SysMenu::getAntdvActiveUrl, SysMenu::getAntdvRouter,
SysMenu::getAntdvComponent, SysMenu::getMenuSort);
SysMenu::getMenuName, SysMenu::getMenuType, SysMenu::getAntdvIcon, SysMenu::getAntdvVisible, SysMenu::getAntdvActiveUrl,
SysMenu::getAntdvRouter, SysMenu::getAntdvComponent, SysMenu::getMenuSort);
sysMenuLambdaQueryWrapper.orderByAsc(SysMenu::getMenuSort);
@ -254,6 +255,32 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
return MenuFactory.createAppGroupDetailResult(appList, sysMenuList);
}
@Override
public List<UserAppMenuInfo> getUserAppMenuDetailList(Set<Long> menuIdList) {
// 通过id查询菜单的详情信息
LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysMenuLambdaQueryWrapper.in(SysMenu::getMenuId, menuIdList);
sysMenuLambdaQueryWrapper.select(SysMenu::getMenuName, SysMenu::getAntdvRouter, SysMenu::getAntdvIcon);
List<SysMenu> sysMenuList = this.list(sysMenuLambdaQueryWrapper);
if (ObjectUtil.isEmpty(sysMenuList)) {
return new ArrayList<>();
}
// 转化成响应信息
List<UserAppMenuInfo> result = new ArrayList<>();
for (SysMenu sysMenu : sysMenuList) {
UserAppMenuInfo userAppMenuInfo = new UserAppMenuInfo();
userAppMenuInfo.setMenuName(sysMenu.getMenuName());
userAppMenuInfo.setMenuIcon(sysMenu.getAntdvIcon());
userAppMenuInfo.setMenuRouter(sysMenu.getAntdvRouter());
result.add(userAppMenuInfo);
}
return result;
}
/**
*
*
@ -319,5 +346,4 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
}
}
}
}