菜单详情获取父级菜单名称,应用列表接口

pull/57/head
Liyanjun 2023-07-02 18:20:26 +08:00
parent 450c039a28
commit 84b6469141
3 changed files with 331 additions and 291 deletions

View File

@ -10,10 +10,14 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
import cn.stylefeng.roses.kernel.sys.modular.app.entity.SysApp; import cn.stylefeng.roses.kernel.sys.modular.app.entity.SysApp;
import cn.stylefeng.roses.kernel.sys.modular.app.pojo.request.SysAppRequest; import cn.stylefeng.roses.kernel.sys.modular.app.pojo.request.SysAppRequest;
import cn.stylefeng.roses.kernel.sys.modular.app.service.SysAppService; import cn.stylefeng.roses.kernel.sys.modular.app.service.SysAppService;
import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.response.AppGroupDetail;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
/** /**
@ -99,6 +103,16 @@ public class SysAppController {
return new SuccessResponseData<>(sysAppService.findPage(sysAppRequest)); return new SuccessResponseData<>(sysAppService.findPage(sysAppRequest));
} }
/**
* -
*
* @author liyanjun
* @date 2023/07/02 18:28
*/
@GetResource(name = "分页查询-应用列表", path = "/sysApp/list")
public ResponseData<List<SysApp>> list(SysAppRequest sysAppRequest) {
return new SuccessResponseData<>(sysAppService.findList(sysAppRequest));
}
/** /**
* *
* *

View File

@ -145,6 +145,13 @@ public class SysMenu extends BaseExpandFieldEntity implements BasePidBuildModel
@TableField(exist = false) @TableField(exist = false)
private List<SysMenu> children; private List<SysMenu> children;
/**
*
*/
@TableField("exist = false")
@ChineseDescription("父级菜单名称")
private String menuParentName;
@Override @Override
public String pidBuildNodeId() { public String pidBuildNodeId() {
if (ObjectUtil.isEmpty(menuId)) { if (ObjectUtil.isEmpty(menuId)) {

View File

@ -39,323 +39,342 @@ import java.util.stream.Collectors;
@Service @Service
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService { public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {
@Resource @Resource
private SysAppService sysAppService; private SysAppService sysAppService;
@Resource @Resource
private DbOperatorApi dbOperatorApi; private DbOperatorApi dbOperatorApi;
@Override @Override
public void add(SysMenuRequest sysMenuRequest) { public void add(SysMenuRequest sysMenuRequest) {
// 校验参数合法性 // 校验参数合法性
MenuValidateFactory.validateAddMenuParam(sysMenuRequest); MenuValidateFactory.validateAddMenuParam(sysMenuRequest);
SysMenu sysMenu = new SysMenu(); SysMenu sysMenu = new SysMenu();
BeanUtil.copyProperties(sysMenuRequest, sysMenu); BeanUtil.copyProperties(sysMenuRequest, sysMenu);
// 组装pids集合 // 组装pids集合
String pids = this.createPids(sysMenuRequest.getMenuParentId()); String pids = this.createPids(sysMenuRequest.getMenuParentId());
sysMenu.setMenuPids(pids); sysMenu.setMenuPids(pids);
this.save(sysMenu); this.save(sysMenu);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void del(SysMenuRequest sysMenuRequest) { public void del(SysMenuRequest sysMenuRequest) {
Long menuId = sysMenuRequest.getMenuId(); Long menuId = sysMenuRequest.getMenuId();
// 获取所有子级的菜单id // 获取所有子级的菜单id
Set<Long> totalMenuIds = this.dbOperatorApi.findSubListByParentId("sys_menu", "menu_pids", "menu_id", menuId); Set<Long> totalMenuIds = this.dbOperatorApi.findSubListByParentId("sys_menu", "menu_pids", "menu_id", menuId);
totalMenuIds.add(menuId); totalMenuIds.add(menuId);
// 删除菜单 // 删除菜单
this.removeByIds(totalMenuIds); this.removeByIds(totalMenuIds);
// 删除菜单下面关联的其他业务关联表 // 删除菜单下面关联的其他业务关联表
Map<String, RemoveMenuCallbackApi> removeMenuCallbackApiMap = SpringUtil.getBeansOfType(RemoveMenuCallbackApi.class); Map<String, RemoveMenuCallbackApi> removeMenuCallbackApiMap = SpringUtil
for (RemoveMenuCallbackApi removeMenuCallbackApi : removeMenuCallbackApiMap.values()) { .getBeansOfType(RemoveMenuCallbackApi.class);
removeMenuCallbackApi.removeMenuAction(totalMenuIds); for (RemoveMenuCallbackApi removeMenuCallbackApi : removeMenuCallbackApiMap.values()) {
} removeMenuCallbackApi.removeMenuAction(totalMenuIds);
} }
}
@Override @Override
public void edit(SysMenuRequest sysMenuRequest) { public void edit(SysMenuRequest sysMenuRequest) {
// 无法修改上下级结构(使用拖拽接口比修改接口更方便) // 无法修改上下级结构(使用拖拽接口比修改接口更方便)
sysMenuRequest.setMenuParentId(null); sysMenuRequest.setMenuParentId(null);
// 无法修改菜单的所属应用 // 无法修改菜单的所属应用
sysMenuRequest.setAppId(null); sysMenuRequest.setAppId(null);
// 校验参数合法性 // 校验参数合法性
MenuValidateFactory.validateAddMenuParam(sysMenuRequest); MenuValidateFactory.validateAddMenuParam(sysMenuRequest);
SysMenu sysMenu = this.querySysMenu(sysMenuRequest); SysMenu sysMenu = this.querySysMenu(sysMenuRequest);
BeanUtil.copyProperties(sysMenuRequest, sysMenu); BeanUtil.copyProperties(sysMenuRequest, sysMenu);
this.updateById(sysMenu); this.updateById(sysMenu);
} }
@Override @Override
public SysMenu detail(SysMenuRequest sysMenuRequest) { public SysMenu detail(SysMenuRequest sysMenuRequest) {
LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysMenuLambdaQueryWrapper.eq(SysMenu::getMenuId, sysMenuRequest.getMenuId()); sysMenuLambdaQueryWrapper.eq(SysMenu::getMenuId, sysMenuRequest.getMenuId());
sysMenuLambdaQueryWrapper.select(SysMenu::getAppId, SysMenu::getMenuName, SysMenu::getMenuCode, SysMenu::getMenuSort, sysMenuLambdaQueryWrapper.select(SysMenu::getAppId, SysMenu::getMenuName, SysMenu::getMenuCode,
SysMenu::getMenuType, SysMenu::getAntdvComponent, SysMenu::getAntdvRouter, SysMenu::getAntdvVisible, SysMenu::getMenuSort, SysMenu::getMenuType, SysMenu::getAntdvComponent, SysMenu::getAntdvRouter,
SysMenu::getAntdvActiveUrl, SysMenu::getAntdvLinkUrl, SysMenu::getAntdvIcon); SysMenu::getAntdvVisible, SysMenu::getAntdvActiveUrl, SysMenu::getAntdvLinkUrl, SysMenu::getAntdvIcon,
SysMenu::getMenuParentId);
return this.getOne(sysMenuLambdaQueryWrapper, false); SysMenu sysMenu = this.getOne(sysMenuLambdaQueryWrapper, false);
}
@Override if (ObjectUtil.isNotEmpty(sysMenu) && ObjectUtil.isNotEmpty(sysMenu.getMenuParentId())) {
public boolean validateMenuBindApp(Set<Long> appIdList) { if (sysMenu.getMenuParentId().equals(TreeConstants.DEFAULT_PARENT_ID)) {
sysMenu.setMenuParentName("根节点");
} else {
SysMenu parentMenu=this.getById(sysMenu.getMenuParentId());
sysMenu.setMenuParentName(parentMenu.getMenuName());
}
}
LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>(); return sysMenu;
sysMenuLambdaQueryWrapper.in(SysMenu::getAppId, appIdList); }
sysMenuLambdaQueryWrapper.select(SysMenu::getMenuId);
long count = this.count(sysMenuLambdaQueryWrapper);
return count > 0; @Override
} public boolean validateMenuBindApp(Set<Long> appIdList) {
@Override LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
public List<SysMenu> getTotalMenus() { sysMenuLambdaQueryWrapper.in(SysMenu::getAppId, appIdList);
LambdaQueryWrapper<SysMenu> menuLambdaQueryWrapper = new LambdaQueryWrapper<>(); sysMenuLambdaQueryWrapper.select(SysMenu::getMenuId);
menuLambdaQueryWrapper.select(SysMenu::getMenuId, SysMenu::getMenuName, SysMenu::getMenuParentId, SysMenu::getAppId); long count = this.count(sysMenuLambdaQueryWrapper);
menuLambdaQueryWrapper.orderByAsc(SysMenu::getMenuSort);
return this.list(menuLambdaQueryWrapper);
}
@Override return count > 0;
@Transactional(rollbackFor = Exception.class) }
public void updateMenuTree(SysMenuRequest sysMenuRequest) {
// 获取被更新的应用和菜单树信息 @Override
List<SysMenu> updateTree = sysMenuRequest.getUpdateMenuTree(); public List<SysMenu> getTotalMenus() {
LambdaQueryWrapper<SysMenu> menuLambdaQueryWrapper = new LambdaQueryWrapper<>();
menuLambdaQueryWrapper.select(SysMenu::getMenuId, SysMenu::getMenuName, SysMenu::getMenuParentId,
SysMenu::getAppId);
menuLambdaQueryWrapper.orderByAsc(SysMenu::getMenuSort);
return this.list(menuLambdaQueryWrapper);
}
// 更新树节点的菜单顺序 @Override
MenuTreeFactory.updateSort(updateTree, 1); @Transactional(rollbackFor = Exception.class)
public void updateMenuTree(SysMenuRequest sysMenuRequest) {
// 填充树节点的parentId字段
MenuTreeFactory.fillParentId(-1L, updateTree); // 获取被更新的应用和菜单树信息
List<SysMenu> updateTree = sysMenuRequest.getUpdateMenuTree();
// 平行展开树形结构准备从新整理pids
ArrayList<SysMenu> totalMenuList = new ArrayList<>(); // 更新树节点的菜单顺序
MenuTreeFactory.collectTreeTasks(updateTree, totalMenuList); MenuTreeFactory.updateSort(updateTree, 1);
// 从新整理上下级结构整理id和pid关系 // 填充树节点的parentId字段
PidStructureBuildUtil.createPidStructure(totalMenuList); MenuTreeFactory.fillParentId(-1L, updateTree);
// 更新菜单的sort字段、pid字段和pids字段这3个字段 // 平行展开树形结构准备从新整理pids
this.updateBatchById(totalMenuList); ArrayList<SysMenu> totalMenuList = new ArrayList<>();
} MenuTreeFactory.collectTreeTasks(updateTree, totalMenuList);
@Override // 从新整理上下级结构整理id和pid关系
public List<SysMenu> getTotalMenuList() { PidStructureBuildUtil.createPidStructure(totalMenuList);
LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysMenuLambdaQueryWrapper.select(SysMenu::getMenuId, SysMenu::getAppId); // 更新菜单的sort字段、pid字段和pids字段这3个字段
return this.list(sysMenuLambdaQueryWrapper); this.updateBatchById(totalMenuList);
} }
@Override @Override
public List<SysMenu> getIndexMenuInfoList(List<Long> menuIdList) { public List<SysMenu> getTotalMenuList() {
LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(menuIdList)) { sysMenuLambdaQueryWrapper.select(SysMenu::getMenuId, SysMenu::getAppId);
return new ArrayList<>(); return this.list(sysMenuLambdaQueryWrapper);
} }
LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>(); @Override
public List<SysMenu> getIndexMenuInfoList(List<Long> menuIdList) {
sysMenuLambdaQueryWrapper.in(SysMenu::getMenuId, menuIdList);
if (ObjectUtil.isEmpty(menuIdList)) {
// 查询指定的菜单内容 return new ArrayList<>();
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); LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysMenuLambdaQueryWrapper.orderByAsc(SysMenu::getMenuSort); sysMenuLambdaQueryWrapper.in(SysMenu::getMenuId, menuIdList);
return this.list(sysMenuLambdaQueryWrapper); // 查询指定的菜单内容
} sysMenuLambdaQueryWrapper.select(SysMenu::getMenuId, SysMenu::getMenuParentId, SysMenu::getAppId,
SysMenu::getMenuCode, SysMenu::getMenuName, SysMenu::getMenuType, SysMenu::getAntdvIcon,
@Override SysMenu::getAntdvVisible, SysMenu::getAntdvActiveUrl, SysMenu::getAntdvRouter,
public List<String> getMenuCodeList(List<Long> menuIdList) { SysMenu::getAntdvComponent, SysMenu::getMenuSort);
if (ObjectUtil.isEmpty(menuIdList)) { sysMenuLambdaQueryWrapper.orderByAsc(SysMenu::getMenuSort);
return new ArrayList<>();
} return this.list(sysMenuLambdaQueryWrapper);
}
LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysMenuLambdaQueryWrapper.in(SysMenu::getMenuId, menuIdList); @Override
sysMenuLambdaQueryWrapper.select(SysMenu::getMenuCode); public List<String> getMenuCodeList(List<Long> menuIdList) {
List<SysMenu> sysMenuList = this.list(sysMenuLambdaQueryWrapper);
if (ObjectUtil.isEmpty(menuIdList)) {
return sysMenuList.stream().map(SysMenu::getMenuCode).collect(Collectors.toList()); return new ArrayList<>();
} }
@Override LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
public List<AppGroupDetail> getAppMenuGroupDetail(SysMenuRequest sysMenuRequest) { sysMenuLambdaQueryWrapper.in(SysMenu::getMenuId, menuIdList);
sysMenuLambdaQueryWrapper.select(SysMenu::getMenuCode);
// 1. 获取所有应用列表 List<SysMenu> sysMenuList = this.list(sysMenuLambdaQueryWrapper);
List<AppGroupDetail> appList = sysAppService.getAppList();
if (ObjectUtil.isEmpty(appList)) { return sysMenuList.stream().map(SysMenu::getMenuCode).collect(Collectors.toList());
return new ArrayList<>(); }
}
@Override
// 所有的应用id public List<AppGroupDetail> getAppMenuGroupDetail(SysMenuRequest sysMenuRequest) {
Set<Long> totalAppIds = appList.stream().map(AppGroupDetail::getAppId).collect(Collectors.toSet());
// 1. 获取所有应用列表
// 2. 获取应用对应的所有菜单 List<AppGroupDetail> appList = sysAppService.getAppList();
LambdaQueryWrapper<SysMenu> wrapper = this.createWrapper(sysMenuRequest); if (ObjectUtil.isEmpty(appList)) {
wrapper.in(SysMenu::getAppId, totalAppIds); return new ArrayList<>();
wrapper.select(SysMenu::getMenuId, SysMenu::getMenuParentId, SysMenu::getMenuPids, SysMenu::getMenuName, SysMenu::getAppId, }
SysMenu::getMenuType);
List<SysMenu> sysMenuList = this.list(wrapper); // 所有的应用id
if (ObjectUtil.isEmpty(sysMenuList)) { Set<Long> totalAppIds = appList.stream().map(AppGroupDetail::getAppId).collect(Collectors.toSet());
return appList;
} // 2. 获取应用对应的所有菜单
LambdaQueryWrapper<SysMenu> wrapper = this.createWrapper(sysMenuRequest);
// 2.1 如果查询条件不为空,则需要补全被查询菜单的父级结构,否则组不成树结构 wrapper.in(SysMenu::getAppId, totalAppIds);
if (StrUtil.isNotBlank(sysMenuRequest.getSearchText())) { wrapper.select(SysMenu::getMenuId, SysMenu::getMenuParentId, SysMenu::getMenuPids, SysMenu::getMenuName,
Set<Long> menuParentIds = MenuFactory.getMenuParentIds(sysMenuList); SysMenu::getAppId, SysMenu::getMenuType);
if (ObjectUtil.isNotEmpty(menuParentIds)) { List<SysMenu> sysMenuList = this.list(wrapper);
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>(); if (ObjectUtil.isEmpty(sysMenuList)) {
queryWrapper.in(SysMenu::getMenuId, menuParentIds); return appList;
queryWrapper.select(SysMenu::getMenuId, SysMenu::getMenuParentId, SysMenu::getMenuPids, SysMenu::getMenuName, }
SysMenu::getAppId, SysMenu::getMenuType);
queryWrapper.orderByAsc(SysMenu::getMenuSort); // 2.1 如果查询条件不为空,则需要补全被查询菜单的父级结构,否则组不成树结构
List<SysMenu> parentMenus = this.list(queryWrapper); if (StrUtil.isNotBlank(sysMenuRequest.getSearchText())) {
sysMenuList.addAll(parentMenus); Set<Long> menuParentIds = MenuFactory.getMenuParentIds(sysMenuList);
} if (ObjectUtil.isNotEmpty(menuParentIds)) {
} LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(SysMenu::getMenuId, menuParentIds);
// 3. 组装应用信息和菜单信息 queryWrapper.select(SysMenu::getMenuId, SysMenu::getMenuParentId, SysMenu::getMenuPids,
return MenuFactory.createAppGroupDetailResult(appList, sysMenuList); SysMenu::getMenuName, SysMenu::getAppId, SysMenu::getMenuType);
} queryWrapper.orderByAsc(SysMenu::getMenuSort);
List<SysMenu> parentMenus = this.list(queryWrapper);
@Override sysMenuList.addAll(parentMenus);
public List<UserAppMenuInfo> getUserAppMenuDetailList(Set<Long> menuIdList) { }
}
// 通过id查询菜单的详情信息
LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>(); // 3. 组装应用信息和菜单信息
sysMenuLambdaQueryWrapper.in(SysMenu::getMenuId, menuIdList); return MenuFactory.createAppGroupDetailResult(appList, sysMenuList);
sysMenuLambdaQueryWrapper.select(SysMenu::getMenuId, SysMenu::getMenuName, SysMenu::getAntdvRouter, SysMenu::getAntdvIcon); }
List<SysMenu> sysMenuList = this.list(sysMenuLambdaQueryWrapper);
@Override
if (ObjectUtil.isEmpty(sysMenuList)) { public List<UserAppMenuInfo> getUserAppMenuDetailList(Set<Long> menuIdList) {
return new ArrayList<>();
} // 通过id查询菜单的详情信息
LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
// 转化成响应信息 sysMenuLambdaQueryWrapper.in(SysMenu::getMenuId, menuIdList);
List<UserAppMenuInfo> result = new ArrayList<>(); sysMenuLambdaQueryWrapper.select(SysMenu::getMenuId, SysMenu::getMenuName, SysMenu::getAntdvRouter,
for (SysMenu sysMenu : sysMenuList) { SysMenu::getAntdvIcon);
UserAppMenuInfo userAppMenuInfo = new UserAppMenuInfo(); List<SysMenu> sysMenuList = this.list(sysMenuLambdaQueryWrapper);
userAppMenuInfo.setMenuId(sysMenu.getMenuId());
userAppMenuInfo.setMenuName(sysMenu.getMenuName()); if (ObjectUtil.isEmpty(sysMenuList)) {
userAppMenuInfo.setMenuIcon(sysMenu.getAntdvIcon()); return new ArrayList<>();
userAppMenuInfo.setMenuRouter(sysMenu.getAntdvRouter()); }
result.add(userAppMenuInfo);
} // 转化成响应信息
List<UserAppMenuInfo> result = new ArrayList<>();
return result; for (SysMenu sysMenu : sysMenuList) {
} UserAppMenuInfo userAppMenuInfo = new UserAppMenuInfo();
userAppMenuInfo.setMenuId(sysMenu.getMenuId());
@Override userAppMenuInfo.setMenuName(sysMenu.getMenuName());
public Map<Long, Long> getMenuAppId(List<Long> menuIdList) { userAppMenuInfo.setMenuIcon(sysMenu.getAntdvIcon());
userAppMenuInfo.setMenuRouter(sysMenu.getAntdvRouter());
// 定义返回结果 result.add(userAppMenuInfo);
HashMap<Long, Long> menuIdAppIdMap = new HashMap<>(); }
if (ObjectUtil.isEmpty(menuIdList)) { return result;
return menuIdAppIdMap; }
}
@Override
// 查询数据库菜单id对应的应用id集合 public Map<Long, Long> getMenuAppId(List<Long> menuIdList) {
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(SysMenu::getMenuId, menuIdList); // 定义返回结果
queryWrapper.select(SysMenu::getAppId, SysMenu::getMenuId); HashMap<Long, Long> menuIdAppIdMap = new HashMap<>();
List<SysMenu> queryList = this.list(queryWrapper);
if (ObjectUtil.isEmpty(menuIdList)) {
if (ObjectUtil.isEmpty(queryList)) { return menuIdAppIdMap;
return menuIdAppIdMap; }
}
// 查询数据库菜单id对应的应用id集合
// 制作映射关系 LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
for (SysMenu sysMenu : queryList) { queryWrapper.in(SysMenu::getMenuId, menuIdList);
menuIdAppIdMap.put(sysMenu.getMenuId(), sysMenu.getAppId()); queryWrapper.select(SysMenu::getAppId, SysMenu::getMenuId);
} List<SysMenu> queryList = this.list(queryWrapper);
return menuIdAppIdMap; if (ObjectUtil.isEmpty(queryList)) {
} return menuIdAppIdMap;
}
/**
* // 制作映射关系
* for (SysMenu sysMenu : queryList) {
* @author fengshuonan menuIdAppIdMap.put(sysMenu.getMenuId(), sysMenu.getAppId());
* @date 2023/06/10 21:28 }
*/
private SysMenu querySysMenu(SysMenuRequest sysMenuRequest) { return menuIdAppIdMap;
SysMenu sysMenu = this.getById(sysMenuRequest.getMenuId()); }
if (ObjectUtil.isEmpty(sysMenu)) {
throw new ServiceException(SysMenuExceptionEnum.SYS_MENU_NOT_EXISTED); /**
} *
return sysMenu; *
} * @author fengshuonan
* @date 2023/06/10 21:28
/** */
* wrapper private SysMenu querySysMenu(SysMenuRequest sysMenuRequest) {
* SysMenu sysMenu = this.getById(sysMenuRequest.getMenuId());
* @author fengshuonan if (ObjectUtil.isEmpty(sysMenu)) {
* @date 2023/06/10 21:28 throw new ServiceException(SysMenuExceptionEnum.SYS_MENU_NOT_EXISTED);
*/ }
private LambdaQueryWrapper<SysMenu> createWrapper(SysMenuRequest sysMenuRequest) { return sysMenu;
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>(); }
// 根据搜索条件查询菜单,根据菜单名称、编码、路由地址、组件地址 /**
String searchText = sysMenuRequest.getSearchText(); * wrapper
if (StrUtil.isNotBlank(searchText)) { *
queryWrapper.like(SysMenu::getMenuName, searchText); * @author fengshuonan
queryWrapper.or().like(SysMenu::getMenuCode, searchText); * @date 2023/06/10 21:28
queryWrapper.or().like(SysMenu::getAntdvRouter, searchText); */
queryWrapper.or().like(SysMenu::getAntdvComponent, searchText); private LambdaQueryWrapper<SysMenu> createWrapper(SysMenuRequest sysMenuRequest) {
} LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
// 根据顺序排序 // 根据搜索条件查询菜单,根据菜单名称、编码、路由地址、组件地址
queryWrapper.orderByAsc(SysMenu::getMenuSort); String searchText = sysMenuRequest.getSearchText();
if (StrUtil.isNotBlank(searchText)) {
return queryWrapper; queryWrapper.like(SysMenu::getMenuName, searchText);
} queryWrapper.or().like(SysMenu::getMenuCode, searchText);
queryWrapper.or().like(SysMenu::getAntdvRouter, searchText);
/** queryWrapper.or().like(SysMenu::getAntdvComponent, searchText);
* pids }
* <p>
* pidpids = [-1], // 根据顺序排序
* <p> queryWrapper.orderByAsc(SysMenu::getMenuSort);
* pidpids = pids,[pid],
* return queryWrapper;
* @author fengshuonan }
* @since 2023/6/15 10:09
*/ /**
private String createPids(Long pid) { * pids
if (pid.equals(TreeConstants.DEFAULT_PARENT_ID)) { * <p>
return SymbolConstant.LEFT_SQUARE_BRACKETS + TreeConstants.DEFAULT_PARENT_ID + SymbolConstant.RIGHT_SQUARE_BRACKETS + SymbolConstant.COMMA; * pidpids = [-1],
} else { * <p>
//获取父菜单 * pidpids = pids,[pid],
LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>(); *
sysMenuLambdaQueryWrapper.eq(SysMenu::getMenuId, pid); * @author fengshuonan
sysMenuLambdaQueryWrapper.select(SysMenu::getMenuPids); * @since 2023/6/15 10:09
SysMenu parentMenu = this.getOne(sysMenuLambdaQueryWrapper, false); */
if (parentMenu == null) { private String createPids(Long pid) {
return SymbolConstant.LEFT_SQUARE_BRACKETS + TreeConstants.DEFAULT_PARENT_ID + SymbolConstant.RIGHT_SQUARE_BRACKETS + SymbolConstant.COMMA; if (pid.equals(TreeConstants.DEFAULT_PARENT_ID)) {
} else { return SymbolConstant.LEFT_SQUARE_BRACKETS + TreeConstants.DEFAULT_PARENT_ID
// 组装pids + SymbolConstant.RIGHT_SQUARE_BRACKETS + SymbolConstant.COMMA;
return parentMenu.getMenuPids() + SymbolConstant.LEFT_SQUARE_BRACKETS + pid + SymbolConstant.RIGHT_SQUARE_BRACKETS + SymbolConstant.COMMA; } else {
} // 获取父菜单
} LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
} sysMenuLambdaQueryWrapper.eq(SysMenu::getMenuId, pid);
sysMenuLambdaQueryWrapper.select(SysMenu::getMenuPids);
SysMenu parentMenu = this.getOne(sysMenuLambdaQueryWrapper, false);
if (parentMenu == null) {
return SymbolConstant.LEFT_SQUARE_BRACKETS + TreeConstants.DEFAULT_PARENT_ID
+ SymbolConstant.RIGHT_SQUARE_BRACKETS + SymbolConstant.COMMA;
} else {
// 组装pids
return parentMenu.getMenuPids() + SymbolConstant.LEFT_SQUARE_BRACKETS + pid
+ SymbolConstant.RIGHT_SQUARE_BRACKETS + SymbolConstant.COMMA;
}
}
}
} }