update 优化 SysMenu 相关代码

This commit is contained in:
疯狂的狮子li
2023-02-02 18:34:23 +08:00
parent e8225fbdee
commit e8483729b1
9 changed files with 129 additions and 155 deletions

View File

@@ -2,15 +2,13 @@ package com.ruoyi.system.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.domain.TreeEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
/**
* 菜单权限表 sys_menu
*
@@ -93,4 +91,80 @@ public class SysMenu extends TreeEntity<SysMenu> {
*/
private String remark;
/**
* 获取路由名称
*/
public String getRouteName() {
String routerName = StringUtils.capitalize(path);
// 非外链并且是一级目录(类型为目录)
if (isMenuFrame()) {
routerName = StringUtils.EMPTY;
}
return routerName;
}
/**
* 获取路由地址
*/
public String getRouterPath() {
String routerPath = this.path;
// 内链打开外网方式
if (getParentId() != 0L && isInnerLink()) {
routerPath = innerLinkReplaceEach(routerPath);
}
// 非外链并且是一级目录(类型为目录)
if (0L == getParentId() && UserConstants.TYPE_DIR.equals(getMenuType())
&& UserConstants.NO_FRAME.equals(getIsFrame())) {
routerPath = "/" + this.path;
}
// 非外链并且是一级目录(类型为菜单)
else if (isMenuFrame()) {
routerPath = "/";
}
return routerPath;
}
/**
* 获取组件信息
*/
public String getComponent() {
String component = UserConstants.LAYOUT;
if (StringUtils.isNotEmpty(this.component) && !isMenuFrame()) {
component = this.component;
} else if (StringUtils.isEmpty(this.component) && getParentId() != 0L && isInnerLink()) {
component = UserConstants.INNER_LINK;
} else if (StringUtils.isEmpty(this.component) && isParentView()) {
component = UserConstants.PARENT_VIEW;
}
return component;
}
/**
* 是否为菜单内部跳转
*/
public boolean isMenuFrame() {
return getParentId() == 0L && UserConstants.TYPE_MENU.equals(menuType) && isFrame.equals(UserConstants.NO_FRAME);
}
/**
* 是否为内链组件
*/
public boolean isInnerLink() {
return isFrame.equals(UserConstants.NO_FRAME) && StringUtils.ishttp(path);
}
/**
* 是否为parent_view组件
*/
public boolean isParentView() {
return getParentId() != 0L && UserConstants.TYPE_DIR.equals(menuType);
}
/**
* 内链域名特殊字符替换
*/
public static String innerLinkReplaceEach(String path) {
return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, "."},
new String[]{"", "", "", "/"});
}
}

View File

@@ -4,8 +4,9 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -105,4 +106,9 @@ public class SysMenuVo implements Serializable {
*/
private Date createTime;
/**
* 子菜单
*/
private List<SysMenuVo> children = new ArrayList<>();
}