update:修改sysmenu实现
parent
eacbc2f5ec
commit
3b28702b69
|
@ -18,8 +18,29 @@ public interface ISysMenuData extends ICommonData<SysMenu, Long> {
|
|||
* @param userId 用户ID
|
||||
* @return 菜单列表
|
||||
*/
|
||||
List<SysMenu> findByUserId(Long userId);
|
||||
|
||||
List<SysMenu> selectMenuList(SysMenu menu, Long userId, boolean isSuperAdmin);
|
||||
|
||||
List<String> selectMenuPermsByUserId(Long userId);
|
||||
|
||||
List<String> selectMenuPermsByRoleId(Long roleId);
|
||||
|
||||
/**
|
||||
* 根据用户ID查询菜单
|
||||
*
|
||||
* @return 菜单列表
|
||||
*/
|
||||
List<SysMenu> selectMenuTreeAll();
|
||||
|
||||
/**
|
||||
* 根据用户ID查询菜单
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @return 菜单列表
|
||||
*/
|
||||
List<SysMenu> selectMenuTreeByUserId(Long userId);
|
||||
|
||||
boolean hasChildByMenuId(Long menuId);
|
||||
|
||||
boolean checkMenuNameUnique(SysMenu menu);
|
||||
|
||||
}
|
||||
|
|
|
@ -3,10 +3,20 @@ package cc.iotkit.data.system;
|
|||
import cc.iotkit.data.ICommonData;
|
||||
import cc.iotkit.model.system.SysRole;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 操作日志数据接口
|
||||
*
|
||||
* @author sjg
|
||||
*/
|
||||
public interface ISysRoleData extends ICommonData<SysRole, Long> {
|
||||
|
||||
/**
|
||||
* 根据角色ID查询菜单树信息
|
||||
*
|
||||
* @param roleId 角色ID
|
||||
* @return 选中菜单列表
|
||||
*/
|
||||
List<Long> selectMenuListByRoleId(Long roleId, boolean menuCheckStrictly);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
package cc.iotkit.data.service;
|
||||
|
||||
import cc.iotkit.common.constant.UserConstants;
|
||||
import cc.iotkit.common.enums.ErrCode;
|
||||
import cc.iotkit.common.exception.BizException;
|
||||
import cc.iotkit.common.utils.MapstructUtils;
|
||||
import cc.iotkit.data.dao.SysRoleRepository;
|
||||
import cc.iotkit.data.model.TbSysMenu;
|
||||
import cc.iotkit.data.model.TbSysRole;
|
||||
import cc.iotkit.data.system.ISysRoleData;
|
||||
import cc.iotkit.data.util.PredicateBuilder;
|
||||
import cc.iotkit.model.system.SysMenu;
|
||||
import cc.iotkit.model.system.SysRole;
|
||||
import com.querydsl.core.types.Projections;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static cc.iotkit.data.model.QTbSysMenu.tbSysMenu;
|
||||
import static cc.iotkit.data.model.QTbSysRoleMenu.tbSysRoleMenu;
|
||||
|
||||
/**
|
||||
* author: 石恒
|
||||
* date: 2023-05-29 16:23
|
||||
* description:
|
||||
**/
|
||||
@Primary
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ISysRoleDataImpl implements ISysRoleData {
|
||||
|
||||
private final SysRoleRepository sysRoleRepository;
|
||||
|
||||
private final JPAQueryFactory jpaQueryFactory;
|
||||
|
||||
@Override
|
||||
public SysRole findById(Long id) {
|
||||
return MapstructUtils.convert(sysRoleRepository.findById(id), SysRole.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> selectMenuListByRoleId(Long roleId, boolean menuCheckStrictly) {
|
||||
|
||||
List<Long> roleIds = jpaQueryFactory.select(Projections.bean(Long.class, tbSysMenu.menuId))
|
||||
.from(tbSysMenu)
|
||||
.innerJoin(tbSysRoleMenu).on(tbSysMenu.menuId.eq(tbSysRoleMenu.menuId))
|
||||
.where(PredicateBuilder.instance()
|
||||
.and(tbSysRoleMenu.roleId.eq(roleId))
|
||||
.build())
|
||||
.orderBy(tbSysMenu.parentId.asc(), tbSysMenu.orderNum.asc()).fetch();
|
||||
|
||||
PredicateBuilder predicateBuilder = PredicateBuilder.instance()
|
||||
.and(tbSysRoleMenu.roleId.eq(roleId));
|
||||
|
||||
if (menuCheckStrictly) {
|
||||
predicateBuilder.and(tbSysMenu.menuId.notIn(roleIds));
|
||||
}
|
||||
|
||||
return jpaQueryFactory.select(Projections.bean(Long.class, tbSysMenu.menuId))
|
||||
.from(tbSysMenu)
|
||||
.leftJoin(tbSysRoleMenu).on(tbSysMenu.menuId.eq(tbSysRoleMenu.menuId))
|
||||
.where(predicateBuilder.build())
|
||||
.orderBy(tbSysMenu.parentId.asc(), tbSysMenu.orderNum.asc()).fetch();
|
||||
}
|
||||
}
|
|
@ -2,15 +2,18 @@ package cc.iotkit.data.service;
|
|||
|
||||
import cc.iotkit.common.api.PageRequest;
|
||||
import cc.iotkit.common.api.Paging;
|
||||
import cc.iotkit.common.constant.UserConstants;
|
||||
import cc.iotkit.common.enums.ErrCode;
|
||||
import cc.iotkit.common.exception.BizException;
|
||||
import cc.iotkit.common.utils.MapstructUtils;
|
||||
import cc.iotkit.common.utils.StringUtils;
|
||||
import cc.iotkit.data.dao.SysMenuRepository;
|
||||
import cc.iotkit.data.model.QTbSysMenu;
|
||||
import cc.iotkit.data.model.TbSysMenu;
|
||||
import cc.iotkit.data.system.ISysMenuData;
|
||||
import cc.iotkit.data.util.PredicateBuilder;
|
||||
import cc.iotkit.model.system.SysMenu;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.querydsl.core.types.Projections;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
@ -19,10 +22,12 @@ import org.springframework.stereotype.Service;
|
|||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cc.iotkit.data.model.QTbSysMenu.tbSysMenu;
|
||||
import static cc.iotkit.data.model.QTbSysRole.tbSysRole;
|
||||
import static cc.iotkit.data.model.QTbSysUser.tbSysUser;
|
||||
import static cc.iotkit.data.model.QTbSysRoleMenu.tbSysRoleMenu;
|
||||
import static cc.iotkit.data.model.QTbSysUserRole.tbSysUserRole;
|
||||
|
||||
|
@ -101,11 +106,6 @@ public class SysMenuDataImpl implements ISysMenuData {
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> findByUserId(Long userId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> selectMenuList(SysMenu menu, Long userId, boolean isSuperAdmin) {
|
||||
|
||||
|
@ -138,4 +138,80 @@ public class SysMenuDataImpl implements ISysMenuData {
|
|||
return MapstructUtils.convert(tbSysMenuList, SysMenu.class);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> selectMenuPermsByUserId(Long userId) {
|
||||
return jpaQueryFactory.select(Projections.bean(String.class, tbSysMenu.perms.countDistinct()))
|
||||
.from(tbSysMenu)
|
||||
.leftJoin(tbSysRoleMenu).on(tbSysMenu.menuId.eq(tbSysRoleMenu.menuId))
|
||||
.leftJoin(tbSysUserRole).on(tbSysRoleMenu.roleId.eq(tbSysUserRole.roleId))
|
||||
.leftJoin(tbSysRole).on(tbSysUserRole.roleId.eq(tbSysRole.roleId))
|
||||
.where(PredicateBuilder.instance()
|
||||
.and(tbSysMenu.status.eq("0"))
|
||||
.and(tbSysRole.status.eq("0"))
|
||||
.and(tbSysUserRole.userId.eq(userId))
|
||||
.build()).fetch();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> selectMenuPermsByRoleId(Long roleId) {
|
||||
return jpaQueryFactory.select(Projections.bean(String.class, tbSysMenu.perms.countDistinct()))
|
||||
.from(tbSysMenu)
|
||||
.leftJoin(tbSysRoleMenu).on(tbSysMenu.menuId.eq(tbSysRoleMenu.menuId))
|
||||
.where(PredicateBuilder.instance()
|
||||
.and(tbSysMenu.status.eq("0"))
|
||||
.and(tbSysRoleMenu.roleId.eq(roleId))
|
||||
.build()).fetch();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> selectMenuTreeAll() {
|
||||
return jpaQueryFactory.select(Projections.bean(SysMenu.class, tbSysMenu.perms.countDistinct()))
|
||||
.from(tbSysMenu)
|
||||
.where(PredicateBuilder.instance()
|
||||
.and(tbSysMenu.menuType.in(UserConstants.TYPE_DIR, UserConstants.TYPE_MENU))
|
||||
.and(tbSysMenu.status.eq(UserConstants.MENU_NORMAL))
|
||||
.build())
|
||||
.orderBy(tbSysMenu.parentId.asc(), tbSysMenu.orderNum.asc()).fetch();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> selectMenuTreeByUserId(Long userId) {
|
||||
return jpaQueryFactory.select(Projections.bean(SysMenu.class, tbSysMenu.menuId.countDistinct().as(tbSysMenu.menuId),
|
||||
tbSysMenu.parentId, tbSysMenu.menuName, tbSysMenu.path, tbSysMenu.component, tbSysMenu.queryParam,
|
||||
tbSysMenu.visible, tbSysMenu.status, tbSysMenu.perms, tbSysMenu.isFrame, tbSysMenu.isCache, tbSysMenu.menuType,
|
||||
tbSysMenu.icon, tbSysMenu.orderNum, tbSysMenu.createTime))
|
||||
.from(tbSysMenu)
|
||||
.leftJoin(tbSysRoleMenu).on(tbSysMenu.menuId.eq(tbSysRoleMenu.menuId))
|
||||
.leftJoin(tbSysUserRole).on(tbSysRoleMenu.roleId.eq(tbSysUserRole.roleId))
|
||||
.leftJoin(tbSysRole).on(tbSysUserRole.roleId.eq(tbSysRole.roleId))
|
||||
.leftJoin(tbSysUser).on(tbSysUserRole.userId.eq(tbSysUser.userId))
|
||||
.where(PredicateBuilder.instance()
|
||||
.and(tbSysUser.userId.eq(userId))
|
||||
.and(tbSysMenu.menuType.in("M", "C"))
|
||||
.and(tbSysMenu.status.eq("0"))
|
||||
.and(tbSysRole.status.eq("0"))
|
||||
.build())
|
||||
.orderBy(tbSysMenu.parentId.asc(), tbSysMenu.orderNum.asc()).fetch();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasChildByMenuId(Long menuId) {
|
||||
TbSysMenu tbSysMenu = jpaQueryFactory.select(QTbSysMenu.tbSysMenu).from(QTbSysMenu.tbSysMenu).where(PredicateBuilder.instance()
|
||||
.and(QTbSysMenu.tbSysMenu.parentId.eq(menuId))
|
||||
.build()).fetchOne();
|
||||
return Objects.nonNull(tbSysMenu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkMenuNameUnique(SysMenu menu) {
|
||||
TbSysMenu tbSysMenu = jpaQueryFactory.select(QTbSysMenu.tbSysMenu).from(QTbSysMenu.tbSysMenu)
|
||||
.where(
|
||||
PredicateBuilder.instance()
|
||||
.and(QTbSysMenu.tbSysMenu.menuName.eq(menu.getMenuName()))
|
||||
.and(QTbSysMenu.tbSysMenu.parentId.eq(menu.getParentId()))
|
||||
.and(ObjectUtil.isNotNull(menu.getId()), () -> QTbSysMenu.tbSysMenu.menuId.ne(menu.getId()))
|
||||
.build()).fetchOne();
|
||||
return Objects.isNull(tbSysMenu);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
package cc.iotkit.system.service.impl;
|
||||
|
||||
import cc.iotkit.common.constant.Constants;
|
||||
import cc.iotkit.common.constant.UserConstants;
|
||||
import cc.iotkit.common.satoken.utils.LoginHelper;
|
||||
import cc.iotkit.common.utils.MapstructUtils;
|
||||
import cc.iotkit.common.utils.StreamUtils;
|
||||
import cc.iotkit.common.utils.StringUtils;
|
||||
import cc.iotkit.common.utils.TreeBuildUtils;
|
||||
import cc.iotkit.data.system.ISysMenuData;
|
||||
import cc.iotkit.data.system.ISysRoleData;
|
||||
import cc.iotkit.model.system.SysMenu;
|
||||
import cc.iotkit.model.system.SysRole;
|
||||
import cc.iotkit.system.dto.bo.SysMenuBo;
|
||||
import cc.iotkit.system.dto.vo.MetaVo;
|
||||
import cc.iotkit.system.dto.vo.RouterVo;
|
||||
import cc.iotkit.system.dto.vo.SysMenuVo;
|
||||
import cc.iotkit.system.service.ISysMenuService;
|
||||
|
@ -15,10 +21,7 @@ import cn.hutool.core.lang.tree.Tree;
|
|||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 菜单 业务层处理
|
||||
|
@ -30,6 +33,7 @@ import java.util.Set;
|
|||
public class SysMenuServiceImpl implements ISysMenuService {
|
||||
|
||||
private final ISysMenuData sysMenuData;
|
||||
private final ISysRoleData sysRoleData;
|
||||
|
||||
/**
|
||||
* 根据用户查询系统菜单列表
|
||||
|
@ -65,7 +69,14 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
|||
*/
|
||||
@Override
|
||||
public Set<String> selectMenuPermsByUserId(Long userId) {
|
||||
return new HashSet<>();
|
||||
List<String> perms = sysMenuData.selectMenuPermsByUserId(userId);
|
||||
Set<String> permsSet = new HashSet<>();
|
||||
for (String perm : perms) {
|
||||
if (StringUtils.isNotEmpty(perm)) {
|
||||
permsSet.addAll(StringUtils.splitList(perm.trim()));
|
||||
}
|
||||
}
|
||||
return permsSet;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -76,7 +87,14 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
|||
*/
|
||||
@Override
|
||||
public Set<String> selectMenuPermsByRoleId(Long roleId) {
|
||||
return new HashSet<>();
|
||||
List<String> perms = sysMenuData.selectMenuPermsByRoleId(roleId);
|
||||
Set<String> permsSet = new HashSet<>();
|
||||
for (String perm : perms) {
|
||||
if (StringUtils.isNotEmpty(perm)) {
|
||||
permsSet.addAll(StringUtils.splitList(perm.trim()));
|
||||
}
|
||||
}
|
||||
return permsSet;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -87,7 +105,13 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
|||
*/
|
||||
@Override
|
||||
public List<SysMenu> selectMenuTreeByUserId(Long userId) {
|
||||
return new ArrayList<>();
|
||||
List<SysMenu> menus = null;
|
||||
if (LoginHelper.isSuperAdmin(userId)) {
|
||||
menus = sysMenuData.selectMenuTreeAll();
|
||||
} else {
|
||||
menus = sysMenuData.selectMenuTreeByUserId(userId);
|
||||
}
|
||||
return getChildPerms(menus, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -98,7 +122,8 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
|||
*/
|
||||
@Override
|
||||
public List<Long> selectMenuListByRoleId(Long roleId) {
|
||||
return new ArrayList<>();
|
||||
SysRole role = sysRoleData.findById(roleId);
|
||||
return sysRoleData.selectMenuListByRoleId(roleId, role.getMenuCheckStrictly());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -120,7 +145,115 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
|||
*/
|
||||
@Override
|
||||
public List<RouterVo> buildMenus(List<SysMenu> menus) {
|
||||
return new ArrayList<>();
|
||||
List<RouterVo> routers = new LinkedList<>();
|
||||
for (SysMenu menu : menus) {
|
||||
RouterVo router = new RouterVo();
|
||||
router.setHidden("1".equals(menu.getVisible()));
|
||||
router.setName(getRouteName(menu));
|
||||
router.setPath(getRouterPath(menu));
|
||||
router.setComponent(getComponent(menu));
|
||||
router.setQuery(menu.getQueryParam());
|
||||
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
|
||||
List<SysMenu> cMenus = menu.getChildren();
|
||||
if (CollUtil.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) {
|
||||
router.setAlwaysShow(true);
|
||||
router.setRedirect("noRedirect");
|
||||
router.setChildren(buildMenus(cMenus));
|
||||
} else if (isMenuFrame(menu)) {
|
||||
router.setMeta(null);
|
||||
List<RouterVo> childrenList = new ArrayList<>();
|
||||
RouterVo children = new RouterVo();
|
||||
children.setPath(menu.getPath());
|
||||
children.setComponent(menu.getComponent());
|
||||
children.setName(StringUtils.capitalize(menu.getPath()));
|
||||
children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
|
||||
children.setQuery(menu.getQueryParam());
|
||||
childrenList.add(children);
|
||||
router.setChildren(childrenList);
|
||||
} else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) {
|
||||
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon()));
|
||||
router.setPath("/");
|
||||
List<RouterVo> childrenList = new ArrayList<>();
|
||||
RouterVo children = new RouterVo();
|
||||
String routerPath = innerLinkReplaceEach(menu.getPath());
|
||||
children.setPath(routerPath);
|
||||
children.setComponent(UserConstants.INNER_LINK);
|
||||
children.setName(StringUtils.capitalize(routerPath));
|
||||
children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath()));
|
||||
childrenList.add(children);
|
||||
router.setChildren(childrenList);
|
||||
}
|
||||
routers.add(router);
|
||||
}
|
||||
return routers;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取路由名称
|
||||
*
|
||||
* @param menu 菜单信息
|
||||
* @return 路由名称
|
||||
*/
|
||||
public String getRouteName(SysMenu menu) {
|
||||
String routerName = StringUtils.capitalize(menu.getPath());
|
||||
// 非外链并且是一级目录(类型为目录)
|
||||
if (isMenuFrame(menu)) {
|
||||
routerName = StringUtils.EMPTY;
|
||||
}
|
||||
return routerName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否为菜单内部跳转
|
||||
*
|
||||
* @param menu 菜单信息
|
||||
* @return 结果
|
||||
*/
|
||||
public boolean isMenuFrame(SysMenu menu) {
|
||||
return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType())
|
||||
&& menu.getIsFrame().equals(UserConstants.NO_FRAME);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取路由地址
|
||||
*
|
||||
* @param menu 菜单信息
|
||||
* @return 路由地址
|
||||
*/
|
||||
public String getRouterPath(SysMenu menu) {
|
||||
String routerPath = menu.getPath();
|
||||
// 内链打开外网方式
|
||||
if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
|
||||
routerPath = innerLinkReplaceEach(routerPath);
|
||||
}
|
||||
// 非外链并且是一级目录(类型为目录)
|
||||
if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType())
|
||||
&& UserConstants.NO_FRAME.equals(menu.getIsFrame())) {
|
||||
routerPath = "/" + menu.getPath();
|
||||
}
|
||||
// 非外链并且是一级目录(类型为菜单)
|
||||
else if (isMenuFrame(menu)) {
|
||||
routerPath = "/";
|
||||
}
|
||||
return routerPath;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取组件信息
|
||||
*
|
||||
* @param menu 菜单信息
|
||||
* @return 组件信息
|
||||
*/
|
||||
public String getComponent(SysMenu menu) {
|
||||
String component = UserConstants.LAYOUT;
|
||||
if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) {
|
||||
component = menu.getComponent();
|
||||
} else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
|
||||
component = UserConstants.INNER_LINK;
|
||||
} else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) {
|
||||
component = UserConstants.PARENT_VIEW;
|
||||
}
|
||||
return component;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -160,7 +293,27 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
|||
*/
|
||||
@Override
|
||||
public boolean hasChildByMenuId(Long menuId) {
|
||||
return false;
|
||||
return sysMenuData.hasChildByMenuId(menuId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否为内链组件
|
||||
*
|
||||
* @param menu 菜单信息
|
||||
* @return 结果
|
||||
*/
|
||||
public boolean isInnerLink(SysMenu menu) {
|
||||
return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath());
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否为parent_view组件
|
||||
*
|
||||
* @param menu 菜单信息
|
||||
* @return 结果
|
||||
*/
|
||||
public boolean isParentView(SysMenu menu) {
|
||||
return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -214,8 +367,8 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public boolean checkMenuNameUnique(SysMenuBo menu) {
|
||||
return false;
|
||||
public boolean checkMenuNameUnique(SysMenuBo bo) {
|
||||
return sysMenuData.checkMenuNameUnique(bo.to(SysMenu.class));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -252,4 +405,12 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 内链域名特殊字符替换
|
||||
*/
|
||||
public String innerLinkReplaceEach(String path) {
|
||||
return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, "."},
|
||||
new String[]{"", "", "", "/"});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue