mirror of https://gitee.com/stylefeng/roses
【menu】整理菜单
parent
1912687ff3
commit
43055858aa
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.exception.enums;
|
||||
package cn.stylefeng.roses.kernel.system.exception.enums.menu;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.exception.enums;
|
||||
package cn.stylefeng.roses.kernel.system.exception.enums.menu;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
||||
|
@ -20,7 +20,7 @@ public enum SysMenuExceptionEnum implements AbstractExceptionEnum {
|
|||
/**
|
||||
* 菜单不存在
|
||||
*/
|
||||
MENU_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "63", "菜单不存在");
|
||||
MENU_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "63", "菜单不存在,菜单id:{}");
|
||||
|
||||
private final String errorCode;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.pojo;
|
||||
package cn.stylefeng.roses.kernel.system.pojo.menu;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.validator.validators.unique.TableUniqueValue;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.pojo;
|
||||
package cn.stylefeng.roses.kernel.system.pojo.menu;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.validator.validators.flag.FlagValue;
|
|
@ -1,62 +0,0 @@
|
|||
package cn.stylefeng.roses.kernel.system.pojo.menu.antd;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* antd通用前端树节点
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/6/9 12:42
|
||||
*/
|
||||
@Data
|
||||
public class AntdBaseTreeNode implements AbstractTreeNode {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 父id
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 值
|
||||
*/
|
||||
private String value;
|
||||
|
||||
/**
|
||||
* 排序,越小优先级越高
|
||||
*/
|
||||
private Integer weight;
|
||||
|
||||
/**
|
||||
* 子节点
|
||||
*/
|
||||
private List children;
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return this.id.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeParentId() {
|
||||
return this.parentId.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setChildrenNodes(List childrenNodes) {
|
||||
this.children = children;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,85 +0,0 @@
|
|||
package cn.stylefeng.roses.kernel.system.pojo.menu.antd;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 登录菜单
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/4/17 17:35
|
||||
*/
|
||||
@Data
|
||||
public class AntdIndexMenuTreeNode implements AbstractTreeNode {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 父id
|
||||
*/
|
||||
private Long pid;
|
||||
|
||||
/**
|
||||
* 菜单标题
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 菜单路由
|
||||
*/
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 菜单路由
|
||||
*/
|
||||
private String router;
|
||||
|
||||
/**
|
||||
* 路由元信息(路由附带扩展信息)
|
||||
*/
|
||||
private Meta meta;
|
||||
|
||||
/**
|
||||
* 子级节点
|
||||
*/
|
||||
private List<AntdIndexMenuTreeNode> children;
|
||||
|
||||
/**
|
||||
* 路由元信息内部类
|
||||
*/
|
||||
@Data
|
||||
public static class Meta {
|
||||
|
||||
/**
|
||||
* 菜单图标
|
||||
*/
|
||||
public String icon;
|
||||
|
||||
/**
|
||||
* 是否隐藏此菜单项, 默认 false,不隐藏
|
||||
*/
|
||||
public Boolean invisible = false;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return this.id.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeParentId() {
|
||||
return this.pid.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setChildrenNodes(List childrenNodes) {
|
||||
this.children = childrenNodes;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.pojo.menu.other;
|
||||
package cn.stylefeng.roses.kernel.system.pojo.menu.antd;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import lombok.Data;
|
||||
|
@ -13,7 +13,7 @@ import java.util.List;
|
|||
* @date 2020/4/5 12:03
|
||||
*/
|
||||
@Data
|
||||
public class MenuSelectTreeNode implements AbstractTreeNode {
|
||||
public class AntdMenuSelectTreeNode implements AbstractTreeNode {
|
||||
|
||||
/**
|
||||
* 主键
|
|
@ -6,13 +6,13 @@ import lombok.Data;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 系统菜单
|
||||
* 封装antd vue需要的菜单信息,service对外输出的对象
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2021/1/7 15:18
|
||||
*/
|
||||
@Data
|
||||
public class AntdSysMenuResponse {
|
||||
public class AntdSysMenuDTO {
|
||||
|
||||
/**
|
||||
* 主键
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.menu.modular.pojo;
|
||||
package cn.stylefeng.roses.kernel.system.pojo.menu.antd;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
@ -11,7 +11,7 @@ import java.util.List;
|
|||
* @date 2021/1/7 18:16
|
||||
*/
|
||||
@Data
|
||||
public class AuthorityItem {
|
||||
public class AntdvMenuAuthorityItem {
|
||||
|
||||
/**
|
||||
* 权限编码
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.menu.modular.pojo;
|
||||
package cn.stylefeng.roses.kernel.system.pojo.menu.antd;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import lombok.Data;
|
||||
|
@ -47,7 +47,7 @@ public class AntdvMenuItem implements AbstractTreeNode {
|
|||
/**
|
||||
* 路由信息
|
||||
*/
|
||||
private AuthorityItem authority;
|
||||
private AntdvMenuAuthorityItem authority;
|
||||
|
||||
/**
|
||||
* 子菜单集合
|
|
@ -5,13 +5,13 @@ import lombok.Data;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Layui用于首页渲染菜单的实体
|
||||
* Layui用于beetl渲染首页菜单的实体
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 18:39
|
||||
*/
|
||||
@Data
|
||||
public class LayuiAppIndexMenus {
|
||||
public class LayuiAppIndexMenusVO {
|
||||
|
||||
/**
|
||||
* 应用的编码
|
|
@ -6,7 +6,7 @@ import lombok.Data;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Layui首页菜单的节点
|
||||
* Layui首页菜单的节点详情
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 18:36
|
||||
|
|
|
@ -8,7 +8,7 @@ import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource;
|
|||
import cn.stylefeng.roses.kernel.resource.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.SysMenuButtonRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonRequest;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
@ -53,32 +53,6 @@ public class SysMenuButtonController {
|
|||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单按钮详情
|
||||
*
|
||||
* @param sysMenuButtonRequest 菜单按钮id
|
||||
* @author luojie
|
||||
* @date 2021/1/9 11:53
|
||||
*/
|
||||
@GetResource(name = "获取菜单按钮详情", path = "/sysMenuButton/detail")
|
||||
public ResponseData detail(@Validated(SysMenuButtonRequest.detail.class) SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
SysMenuButton detail = sysMenuButtonService.detail(sysMenuButtonRequest);
|
||||
return new SuccessResponseData(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑系统菜单按钮
|
||||
*
|
||||
* @param sysMenuButtonRequest 菜单按钮请求参数
|
||||
* @author luojie
|
||||
* @date 2021/1/9 12:00
|
||||
*/
|
||||
@PostResource(name = "编辑系统菜单按钮", path = "/sysMenuButton/edit")
|
||||
public ResponseData edit(@RequestBody @Validated(SysMenuButtonRequest.edit.class) SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
sysMenuButtonService.edit(sysMenuButtonRequest);
|
||||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单个系统菜单按钮
|
||||
*
|
||||
|
@ -105,6 +79,32 @@ public class SysMenuButtonController {
|
|||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑系统菜单按钮
|
||||
*
|
||||
* @param sysMenuButtonRequest 菜单按钮请求参数
|
||||
* @author luojie
|
||||
* @date 2021/1/9 12:00
|
||||
*/
|
||||
@PostResource(name = "编辑系统菜单按钮", path = "/sysMenuButton/edit")
|
||||
public ResponseData edit(@RequestBody @Validated(SysMenuButtonRequest.edit.class) SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
sysMenuButtonService.edit(sysMenuButtonRequest);
|
||||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单按钮详情
|
||||
*
|
||||
* @param sysMenuButtonRequest 菜单按钮id
|
||||
* @author luojie
|
||||
* @date 2021/1/9 11:53
|
||||
*/
|
||||
@GetResource(name = "获取菜单按钮详情", path = "/sysMenuButton/detail")
|
||||
public ResponseData detail(@Validated(SysMenuButtonRequest.detail.class) SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
SysMenuButton detail = sysMenuButtonService.detail(sysMenuButtonRequest);
|
||||
return new SuccessResponseData(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单按钮列表
|
||||
*
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package cn.stylefeng.roses.kernel.menu.modular.controller;
|
||||
|
||||
import cn.stylefeng.roses.kernel.menu.modular.factory.AntdMenusFactory;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.pojo.AntdvMenuItem;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuService;
|
||||
import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource;
|
||||
|
@ -9,8 +8,9 @@ import cn.stylefeng.roses.kernel.resource.api.annotation.PostResource;
|
|||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.tree.ztree.ZTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.SysMenuRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdvMenuItem;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiMenuAndButtonTreeResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
@ -81,29 +81,29 @@ public class SysMenuController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 系统菜单列表,树形结构,用于菜单管理界面的列表展示
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/3/20 21:23
|
||||
*/
|
||||
@GetResource(name = "系统菜单列表(树)", path = "/sysMenu/list")
|
||||
public ResponseData list(SysMenuRequest sysMenuRequest) {
|
||||
return new SuccessResponseData(sysMenuService.findList(sysMenuRequest));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单列表(layui版本)
|
||||
* 菜单列表,不带树形结构(layui的菜单管理界面的列表用)
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 17:09
|
||||
*/
|
||||
@GetResource(name = "获取菜单列表(layui版本)", path = "/sysMenu/layuiList")
|
||||
public ResponseData layuiList(SysMenuRequest sysMenuRequest) {
|
||||
return new SuccessResponseData(sysMenuService.layuiList(sysMenuRequest));
|
||||
return new SuccessResponseData(sysMenuService.findList(sysMenuRequest));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单的树形列表(用于选择上级菜单)(layui版本)
|
||||
* 菜单列表,带树形结构(antd vue的菜单管理界面的列表用)
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/3/20 21:23
|
||||
*/
|
||||
@GetResource(name = "系统菜单列表(树)", path = "/sysMenu/list")
|
||||
public ResponseData list(SysMenuRequest sysMenuRequest) {
|
||||
return new SuccessResponseData(sysMenuService.findListWithTreeStructure(sysMenuRequest));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取系统菜单树,用于新增,编辑时选择上级节点(layui版本,用在新增和编辑菜单选择上级菜单)
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 17:09
|
||||
|
@ -114,18 +114,7 @@ public class SysMenuController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获取主页左侧菜单列表(适配Antd Vue的版本)
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/4/19 15:50
|
||||
*/
|
||||
@GetResource(name = "获取主页左侧菜单列表(Antd Vue)", path = "/sysMenu/getIndexMenuAntdVue", requiredPermission = false)
|
||||
public ResponseData getAppMenus(@Validated(SysMenuRequest.getAppMenusAntdVue.class) SysMenuRequest sysMenuRequest) {
|
||||
return new SuccessResponseData(sysMenuService.getAntDVueIndexMenus(sysMenuRequest.getAppCode()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取系统菜单树,用于新增,编辑时选择上级节点
|
||||
* 获取系统菜单树,用于新增,编辑时选择上级节点(antd vue版本,用在新增和编辑菜单选择上级菜单)
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/3/27 15:55
|
||||
|
@ -135,17 +124,6 @@ public class SysMenuController {
|
|||
return new SuccessResponseData(sysMenuService.tree(sysMenuRequest));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取系统菜单树,用于给角色授权时选择
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/4/5 15:00
|
||||
*/
|
||||
@GetResource(name = "获取系统菜单树,用于给角色授权时选择", path = "/sysMenu/treeForGrant")
|
||||
public ResponseData treeForGrant(SysMenuRequest sysMenuRequest) {
|
||||
return new SuccessResponseData(sysMenuService.treeForGrant(sysMenuRequest));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)
|
||||
*
|
||||
|
@ -154,29 +132,29 @@ public class SysMenuController {
|
|||
*/
|
||||
@GetResource(name = "获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)", path = "/sysMenu/getSystemAllMenusAntdv", requiredPermission = false)
|
||||
public ResponseData getSystemAllMenusAntdv() {
|
||||
List<AntdSysMenuResponse> sysMenuResponses = sysMenuService.getSystemAllMenusAntdv();
|
||||
List<AntdSysMenuDTO> sysMenuResponses = sysMenuService.getSystemAllMenusAntdv();
|
||||
List<AntdvMenuItem> totalMenus = AntdMenusFactory.createTotalMenus(sysMenuResponses);
|
||||
return new SuccessResponseData(totalMenus);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取系统菜单平级树(包含按钮),用于给角色授权时选择(layui版本使用)
|
||||
* 获取系统菜单和按钮的树,用于角色分配菜单按钮(layui版本使用)
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2021/1/9 17:10
|
||||
*/
|
||||
@GetResource(name = "获取系统菜单树(包含按钮),用于给角色授权时选择", path = "/sysMenu/menuAndButtonTree")
|
||||
@GetResource(name = "获取系统菜单和按钮的树,用于角色分配菜单按钮(layui版本使用)", path = "/sysMenu/menuAndButtonTree")
|
||||
public List<LayuiMenuAndButtonTreeResponse> menuAndButtonTree(SysRoleRequest sysRoleRequest) {
|
||||
return sysMenuService.getMenuAndButtonTree(sysRoleRequest, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取系统菜单树(包含按钮),用于给角色授权时选择(antd vue版本使用)
|
||||
* 获取系统菜单和按钮的树,用于角色分配菜单按钮(antd vue版本使用)
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2021/1/9 17:10
|
||||
*/
|
||||
@GetResource(name = "获取系统菜单树(包含按钮),用于给角色授权时选择", path = "/sysMenu/menuAndButtonTreeChildren")
|
||||
@GetResource(name = "获取系统菜单和按钮的树,用于角色分配菜单按钮(antd vue版本使用)", path = "/sysMenu/menuAndButtonTreeChildren")
|
||||
public ResponseData menuAndButtonTreeChildren(SysRoleRequest sysRoleRequest) {
|
||||
List<LayuiMenuAndButtonTreeResponse> treeResponseList = sysMenuService.getMenuAndButtonTree(sysRoleRequest, false);
|
||||
return new SuccessResponseData(treeResponseList);
|
||||
|
|
|
@ -2,13 +2,13 @@ package cn.stylefeng.roses.kernel.menu.modular.factory;
|
|||
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenu;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.pojo.AntdvMenuItem;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.pojo.AuthorityItem;
|
||||
import cn.stylefeng.roses.kernel.rule.constants.TreeConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdIndexMenuTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdMenuSelectTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdvMenuAuthorityItem;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdvMenuItem;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -27,37 +27,37 @@ public class AntdMenusFactory {
|
|||
* @author fengshuonan
|
||||
* @date 2021/1/7 18:17
|
||||
*/
|
||||
public static List<AntdvMenuItem> createTotalMenus(List<AntdSysMenuResponse> antdSysMenuResponses) {
|
||||
public static List<AntdvMenuItem> createTotalMenus(List<AntdSysMenuDTO> sysMenuRespons) {
|
||||
|
||||
ArrayList<AntdvMenuItem> antdvMenuItems = new ArrayList<>(antdSysMenuResponses.size());
|
||||
ArrayList<AntdvMenuItem> antdvMenuItems = new ArrayList<>(sysMenuRespons.size());
|
||||
|
||||
// 实体转化
|
||||
for (AntdSysMenuResponse antdSysMenuResponse : antdSysMenuResponses) {
|
||||
for (AntdSysMenuDTO antdSysMenuDTO : sysMenuRespons) {
|
||||
AntdvMenuItem antdvMenuItem = new AntdvMenuItem();
|
||||
|
||||
// 填充id pid name用于构建树
|
||||
antdvMenuItem.setMenuId(antdSysMenuResponse.getMenuId());
|
||||
antdvMenuItem.setMenuParentId(antdSysMenuResponse.getMenuParentId());
|
||||
antdvMenuItem.setName(antdSysMenuResponse.getMenuName());
|
||||
antdvMenuItem.setMenuId(antdSysMenuDTO.getMenuId());
|
||||
antdvMenuItem.setMenuParentId(antdSysMenuDTO.getMenuParentId());
|
||||
antdvMenuItem.setName(antdSysMenuDTO.getMenuName());
|
||||
|
||||
// 填充路由等信息
|
||||
antdvMenuItem.setRouter(antdSysMenuResponse.getAntdvRouter());
|
||||
antdvMenuItem.setIcon(antdSysMenuResponse.getAntdvIcon());
|
||||
antdvMenuItem.setRouter(antdSysMenuDTO.getAntdvRouter());
|
||||
antdvMenuItem.setIcon(antdSysMenuDTO.getAntdvIcon());
|
||||
|
||||
// 填充是否隐藏
|
||||
antdvMenuItem.setInvisible(YesOrNotEnum.N.getCode().equals(antdSysMenuResponse.getVisible()));
|
||||
antdvMenuItem.setInvisible(YesOrNotEnum.N.getCode().equals(antdSysMenuDTO.getVisible()));
|
||||
|
||||
// 填充哪个角色绑定了这个菜单
|
||||
List<SimpleRoleInfo> roles = antdSysMenuResponse.getRoles();
|
||||
AuthorityItem authorityItem = new AuthorityItem();
|
||||
List<SimpleRoleInfo> roles = antdSysMenuDTO.getRoles();
|
||||
AntdvMenuAuthorityItem antdvAuthorityItem = new AntdvMenuAuthorityItem();
|
||||
if (roles != null && roles.size() > 0) {
|
||||
ArrayList<String> auths = new ArrayList<>();
|
||||
for (SimpleRoleInfo role : roles) {
|
||||
auths.add(role.getRoleCode());
|
||||
}
|
||||
authorityItem.setPermission(auths);
|
||||
authorityItem.setRole(auths);
|
||||
antdvMenuItem.setAuthority(authorityItem);
|
||||
antdvAuthorityItem.setPermission(auths);
|
||||
antdvAuthorityItem.setRole(auths);
|
||||
antdvMenuItem.setAuthority(antdvAuthorityItem);
|
||||
}
|
||||
|
||||
antdvMenuItems.add(antdvMenuItem);
|
||||
|
@ -82,69 +82,27 @@ public class AntdMenusFactory {
|
|||
antdvMenuItem.setName("根节点");
|
||||
antdvMenuItem.setMenuId(TreeConstants.DEFAULT_PARENT_ID);
|
||||
antdvMenuItem.setMenuParentId(TreeConstants.VIRTUAL_ROOT_PARENT_ID);
|
||||
antdvMenuItem.setInvisible(false);
|
||||
|
||||
antdvMenuItem.setAuthority(null);
|
||||
|
||||
return antdvMenuItem;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 将数据库表的菜单,转化为vue antd admin识别的菜单路由格式
|
||||
* menu实体转化为菜单树节点
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/30 20:28
|
||||
* @date 2020/11/23 21:54
|
||||
*/
|
||||
public static List<AntdIndexMenuTreeNode> convertSysMenuToLoginMenu(List<SysMenu> sysMenuList) {
|
||||
List<AntdIndexMenuTreeNode> antDesignMenuTreeNodeList = new ArrayList<>(sysMenuList.size());
|
||||
|
||||
// 添加根节点
|
||||
antDesignMenuTreeNodeList.add(createRootMenuNode());
|
||||
|
||||
for (SysMenu sysMenu : sysMenuList) {
|
||||
AntdIndexMenuTreeNode antdIndexMenuTreeNode = new AntdIndexMenuTreeNode();
|
||||
|
||||
// 设置菜单id
|
||||
antdIndexMenuTreeNode.setId(sysMenu.getMenuId());
|
||||
|
||||
// 设置父级id
|
||||
antdIndexMenuTreeNode.setPid(sysMenu.getMenuParentId());
|
||||
|
||||
// 菜单名称
|
||||
antdIndexMenuTreeNode.setName(sysMenu.getMenuName());
|
||||
|
||||
// 菜单路由地址
|
||||
antdIndexMenuTreeNode.setPath(sysMenu.getAntdvRouter());
|
||||
antdIndexMenuTreeNode.setRouter(sysMenu.getAntdvRouter());
|
||||
|
||||
AntdIndexMenuTreeNode.Meta mateItem = new AntdIndexMenuTreeNode.Meta();
|
||||
|
||||
// 菜单图标
|
||||
mateItem.setIcon(sysMenu.getAntdvIcon());
|
||||
|
||||
// 设置是否隐藏,true就是隐藏
|
||||
mateItem.setInvisible(YesOrNotEnum.N.getCode().equals(sysMenu.getVisible()));
|
||||
antdIndexMenuTreeNode.setMeta(mateItem);
|
||||
|
||||
antDesignMenuTreeNodeList.add(antdIndexMenuTreeNode);
|
||||
}
|
||||
|
||||
return antDesignMenuTreeNodeList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建虚拟的根节点信息
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/30 20:38
|
||||
*/
|
||||
private static AntdIndexMenuTreeNode createRootMenuNode() {
|
||||
AntdIndexMenuTreeNode antdIndexMenuTreeNode = new AntdIndexMenuTreeNode();
|
||||
antdIndexMenuTreeNode.setId(TreeConstants.DEFAULT_PARENT_ID);
|
||||
antdIndexMenuTreeNode.setPid(TreeConstants.VIRTUAL_ROOT_PARENT_ID);
|
||||
antdIndexMenuTreeNode.setName("根虚拟节点");
|
||||
antdIndexMenuTreeNode.setPath("/");
|
||||
return antdIndexMenuTreeNode;
|
||||
public static AntdMenuSelectTreeNode parseMenuBaseTreeNode(SysMenu sysMenu) {
|
||||
AntdMenuSelectTreeNode menuTreeNode = new AntdMenuSelectTreeNode();
|
||||
menuTreeNode.setId(sysMenu.getMenuId());
|
||||
menuTreeNode.setParentId(sysMenu.getMenuParentId());
|
||||
menuTreeNode.setValue(String.valueOf(sysMenu.getMenuId()));
|
||||
menuTreeNode.setTitle(sysMenu.getMenuName());
|
||||
menuTreeNode.setWeight(sysMenu.getMenuSort());
|
||||
return menuTreeNode;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
|||
import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory;
|
||||
import cn.stylefeng.roses.kernel.rule.util.HttpServletUtil;
|
||||
import cn.stylefeng.roses.kernel.system.AppServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiAppIndexMenus;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiAppIndexMenusVO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiIndexMenuTreeNode;
|
||||
|
||||
import java.util.*;
|
||||
|
@ -31,11 +31,11 @@ public class LayuiMenusFactory {
|
|||
* @author fengshuonan
|
||||
* @date 2020/12/27 19:07
|
||||
*/
|
||||
public static List<LayuiAppIndexMenus> createLayuiAppIndexMenus(List<SysMenu> sysMenuList) {
|
||||
public static List<LayuiAppIndexMenusVO> createLayuiAppIndexMenus(List<SysMenu> sysMenuList) {
|
||||
|
||||
String contextPath = HttpServletUtil.getRequest().getContextPath();
|
||||
|
||||
ArrayList<LayuiAppIndexMenus> resultList = new ArrayList<>();
|
||||
ArrayList<LayuiAppIndexMenusVO> resultList = new ArrayList<>();
|
||||
|
||||
// 找出用户有多少个应用的菜单
|
||||
Set<String> appCodes = new HashSet<>();
|
||||
|
@ -78,11 +78,11 @@ public class LayuiMenusFactory {
|
|||
List<LayuiIndexMenuTreeNode> layuiIndexMenuTreeNodeList = new DefaultTreeBuildFactory<LayuiIndexMenuTreeNode>().doTreeBuild(layuiIndexMenuTreeNodes);
|
||||
|
||||
// 将appCode和对应的树包装为实体
|
||||
LayuiAppIndexMenus layuiAppIndexMenus = new LayuiAppIndexMenus();
|
||||
layuiAppIndexMenus.setAppCode(appCode);
|
||||
layuiAppIndexMenus.setAppName(getAppNameByAppCode(appCode));
|
||||
layuiAppIndexMenus.setLayuiIndexMenuTreeNodes(layuiIndexMenuTreeNodeList);
|
||||
resultList.add(layuiAppIndexMenus);
|
||||
LayuiAppIndexMenusVO layuiAppIndexMenusVO = new LayuiAppIndexMenusVO();
|
||||
layuiAppIndexMenusVO.setAppCode(appCode);
|
||||
layuiAppIndexMenusVO.setAppName(getAppNameByAppCode(appCode));
|
||||
layuiAppIndexMenusVO.setLayuiIndexMenuTreeNodes(layuiIndexMenuTreeNodeList);
|
||||
resultList.add(layuiAppIndexMenusVO);
|
||||
}
|
||||
|
||||
return resultList;
|
||||
|
|
|
@ -62,4 +62,5 @@ public class MenuButtonFactory {
|
|||
|
||||
return sysMenuButtonList;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
package cn.stylefeng.roses.kernel.menu.modular.factory.common;
|
||||
|
||||
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenu;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.other.MenuSelectTreeNode;
|
||||
|
||||
/**
|
||||
* 针对于antd前端的菜单的组装
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/11/23 21:58
|
||||
*/
|
||||
public class CommonMenusFactory {
|
||||
|
||||
/**
|
||||
* menu实体转化为菜单树节点
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/11/23 21:54
|
||||
*/
|
||||
public static MenuSelectTreeNode parseMenuBaseTreeNode(SysMenu sysMenu) {
|
||||
MenuSelectTreeNode menuTreeNode = new MenuSelectTreeNode();
|
||||
menuTreeNode.setId(sysMenu.getMenuId());
|
||||
menuTreeNode.setParentId(sysMenu.getMenuParentId());
|
||||
menuTreeNode.setValue(String.valueOf(sysMenu.getMenuId()));
|
||||
menuTreeNode.setTitle(sysMenu.getMenuName());
|
||||
menuTreeNode.setWeight(sysMenu.getMenuSort());
|
||||
return menuTreeNode;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
package cn.stylefeng.roses.kernel.menu.modular.mapper;
|
||||
|
||||
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenu;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuDTO;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -16,11 +16,13 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
|
|||
|
||||
/**
|
||||
* 获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)
|
||||
* <p>
|
||||
* 返回信息携带:菜单可以被那些角色访问
|
||||
*
|
||||
* @return 系统所有菜单问题
|
||||
* @return 系统所有菜单
|
||||
* @author majianguo
|
||||
* @date 2021/1/7 15:27
|
||||
*/
|
||||
List<AntdSysMenuResponse> getSystemAllMenus();
|
||||
List<AntdSysMenuDTO> getSystemAllMenus();
|
||||
|
||||
}
|
||||
|
|
|
@ -2,19 +2,4 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.stylefeng.roses.kernel.menu.modular.mapper.SysMenuButtonMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap type="cn.stylefeng.roses.kernel.menu.modular.entity.SysMenuButton" id="SysMenuButton">
|
||||
<result property="buttonId" column="button_id" jdbcType="INTEGER"/>
|
||||
<result property="menuId" column="menu_id" jdbcType="INTEGER"/>
|
||||
<result property="buttonName" column="button_name" jdbcType="VARCHAR"/>
|
||||
<result property="buttonCode" column="button_code" jdbcType="VARCHAR"/>
|
||||
<result property="delFlag" column="del_flag" jdbcType="VARCHAR"/>
|
||||
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="createUser" column="create_user" jdbcType="INTEGER"/>
|
||||
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="updateUser" column="update_user" jdbcType="INTEGER"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.stylefeng.roses.kernel.menu.modular.mapper.SysMenuMapper">
|
||||
|
||||
<resultMap id="systemMenuAndRole" type="cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuResponse">
|
||||
<resultMap id="systemMenuAndRole" type="cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuDTO">
|
||||
<id column="menu_id" property="menuId"/>
|
||||
<result column="menu_parent_id" property="menuParentId"/>
|
||||
<result column="menu_name" property="menuName"/>
|
||||
|
|
|
@ -2,7 +2,7 @@ package cn.stylefeng.roses.kernel.menu.modular.service;
|
|||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenuButton;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.SysMenuButtonRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonRequest;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
|
@ -22,6 +22,15 @@ public interface SysMenuButtonService extends IService<SysMenuButton> {
|
|||
*/
|
||||
void add(SysMenuButtonRequest sysMenuButtonRequest);
|
||||
|
||||
/**
|
||||
* 添加系统菜单按钮
|
||||
*
|
||||
* @param sysMenuButtonRequest 菜单按钮请求参数
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/9 11:28
|
||||
*/
|
||||
void addDefaultButtons(SysMenuButtonRequest sysMenuButtonRequest);
|
||||
|
||||
/**
|
||||
* 删除单个系统菜单按钮
|
||||
*
|
||||
|
@ -69,7 +78,6 @@ public interface SysMenuButtonService extends IService<SysMenuButton> {
|
|||
*/
|
||||
PageResult<SysMenuButton> findPage(SysMenuButtonRequest sysMenuButtonRequest);
|
||||
|
||||
|
||||
/**
|
||||
* 根据菜单id删除该菜单下的所有按钮
|
||||
*
|
||||
|
@ -79,13 +87,4 @@ public interface SysMenuButtonService extends IService<SysMenuButton> {
|
|||
*/
|
||||
void deleteMenuButtonByMenuId(Long menuId);
|
||||
|
||||
/**
|
||||
* 添加系统菜单按钮
|
||||
*
|
||||
* @param sysMenuButtonRequest 菜单按钮请求参数
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/9 11:28
|
||||
*/
|
||||
void addDefaultButtons(SysMenuButtonRequest sysMenuButtonRequest);
|
||||
|
||||
}
|
||||
|
|
|
@ -2,12 +2,11 @@ package cn.stylefeng.roses.kernel.menu.modular.service;
|
|||
|
||||
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenu;
|
||||
import cn.stylefeng.roses.kernel.rule.tree.ztree.ZTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.SysMenuRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdIndexMenuTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiAppIndexMenus;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdMenuSelectTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiAppIndexMenusVO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiMenuAndButtonTreeResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.other.MenuSelectTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
|
@ -74,7 +73,7 @@ public interface SysMenuService extends IService<SysMenu> {
|
|||
* @author fengshuonan
|
||||
* @date 2021/1/6 17:10
|
||||
*/
|
||||
List<SysMenu> layuiList(SysMenuRequest sysMenuRequest);
|
||||
List<SysMenu> findListWithTreeStructure(SysMenuRequest sysMenuRequest);
|
||||
|
||||
/**
|
||||
* 获取菜单的树形列表(用于选择上级菜单)(layui版本)
|
||||
|
@ -85,6 +84,43 @@ public interface SysMenuService extends IService<SysMenu> {
|
|||
*/
|
||||
List<ZTreeNode> layuiSelectParentMenuTreeList();
|
||||
|
||||
/**
|
||||
* 获取系统菜单树,用于新增,编辑时选择上级节点(antd vue版本,用在新增和编辑菜单选择上级菜单)
|
||||
*
|
||||
* @param sysMenuRequest 查询参数
|
||||
* @return 菜单树列表
|
||||
* @author fengshuonan
|
||||
* @date 2020/3/27 15:56
|
||||
*/
|
||||
List<AntdMenuSelectTreeNode> tree(SysMenuRequest sysMenuRequest);
|
||||
|
||||
/**
|
||||
* 获取当前用户首页所有菜单(对应Layui前端的)
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 18:48
|
||||
*/
|
||||
List<LayuiAppIndexMenusVO> getLayuiIndexMenus();
|
||||
|
||||
/**
|
||||
* 获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)
|
||||
*
|
||||
* @return 系统所有菜单信息
|
||||
* @author majianguo
|
||||
* @date 2021/1/7 15:24
|
||||
*/
|
||||
List<AntdSysMenuDTO> getSystemAllMenusAntdv();
|
||||
|
||||
/**
|
||||
* 获取包含按钮的系统菜单
|
||||
*
|
||||
* @param sysRoleRequest 请求参数
|
||||
* @param lateralFlag true-不带树形结构,false-返回带树形结构的
|
||||
* @author majianguo
|
||||
* @date 2021/1/9 17:11
|
||||
*/
|
||||
List<LayuiMenuAndButtonTreeResponse> getMenuAndButtonTree(SysRoleRequest sysRoleRequest, Boolean lateralFlag);
|
||||
|
||||
/**
|
||||
* 获取当前用户的所有菜单
|
||||
*
|
||||
|
@ -102,61 +138,4 @@ public interface SysMenuService extends IService<SysMenu> {
|
|||
*/
|
||||
List<SysMenu> getCurrentUserMenus(String appCode);
|
||||
|
||||
/**
|
||||
* 获取当前用户首页所有菜单(对应Layui前端的)
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 18:48
|
||||
*/
|
||||
List<LayuiAppIndexMenus> getLayuiIndexMenus();
|
||||
|
||||
/**
|
||||
* 获取某个应用的菜单,用于系统顶部切换菜单(AntDesign前端框架)
|
||||
*
|
||||
* @param appCode 应用编码
|
||||
* @return AntDesign菜单信息结果集
|
||||
* @author fengshuonan
|
||||
* @date 2020/4/17 17:48
|
||||
*/
|
||||
List<AntdIndexMenuTreeNode> getAntDVueIndexMenus(String appCode);
|
||||
|
||||
/**
|
||||
* 获取系统菜单树,用于新增,编辑时选择上级节点
|
||||
*
|
||||
* @param sysMenuRequest 查询参数
|
||||
* @return 菜单树列表
|
||||
* @author fengshuonan
|
||||
* @date 2020/3/27 15:56
|
||||
*/
|
||||
List<MenuSelectTreeNode> tree(SysMenuRequest sysMenuRequest);
|
||||
|
||||
/**
|
||||
* 获取系统菜单树,用于给角色授权时选择
|
||||
*
|
||||
* @param sysMenuRequest 查询参数
|
||||
* @return 菜单树列表
|
||||
* @author fengshuonan
|
||||
* @date 2020/4/5 15:01
|
||||
*/
|
||||
List<MenuSelectTreeNode> treeForGrant(SysMenuRequest sysMenuRequest);
|
||||
|
||||
/**
|
||||
* 获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)
|
||||
*
|
||||
* @return 系统所有菜单信息
|
||||
* @author majianguo
|
||||
* @date 2021/1/7 15:24
|
||||
*/
|
||||
List<AntdSysMenuResponse> getSystemAllMenusAntdv();
|
||||
|
||||
/**
|
||||
* 获取包含按钮的系统菜单
|
||||
*
|
||||
* @param sysRoleRequest 请求参数
|
||||
* @param lateralFlag true-不带树形结构,false-返回带树形结构的
|
||||
* @author majianguo
|
||||
* @date 2021/1/9 17:11
|
||||
*/
|
||||
List<LayuiMenuAndButtonTreeResponse> getMenuAndButtonTree(SysRoleRequest sysRoleRequest, Boolean lateralFlag);
|
||||
|
||||
}
|
||||
|
|
|
@ -12,8 +12,8 @@ import cn.stylefeng.roses.kernel.menu.modular.mapper.SysMenuButtonMapper;
|
|||
import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuButtonService;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.system.exception.SystemModularException;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.SysMenuButtonExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.SysMenuButtonRequest;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.menu.SysMenuButtonExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonRequest;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
@ -31,7 +31,6 @@ import java.util.Set;
|
|||
@Service
|
||||
public class SysMenuButtonServiceImpl extends ServiceImpl<SysMenuButtonMapper, SysMenuButton> implements SysMenuButtonService {
|
||||
|
||||
|
||||
@Override
|
||||
public void add(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
SysMenuButton sysMenuButton = new SysMenuButton();
|
||||
|
@ -39,6 +38,14 @@ public class SysMenuButtonServiceImpl extends ServiceImpl<SysMenuButtonMapper, S
|
|||
this.save(sysMenuButton);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addDefaultButtons(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
Long menuId = sysMenuButtonRequest.getMenuId();
|
||||
// 构建菜单的系统默认按钮
|
||||
List<SysMenuButton> sysMenuButtonList = MenuButtonFactory.createSystemDefaultButton(menuId);
|
||||
this.saveBatch(sysMenuButtonList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void del(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
SysMenuButton button = this.queryButtonById(sysMenuButtonRequest);
|
||||
|
@ -64,7 +71,7 @@ public class SysMenuButtonServiceImpl extends ServiceImpl<SysMenuButtonMapper, S
|
|||
this.update(entity, queryWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void edit(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
SysMenuButton button = this.queryButtonById(sysMenuButtonRequest);
|
||||
|
@ -112,14 +119,6 @@ public class SysMenuButtonServiceImpl extends ServiceImpl<SysMenuButtonMapper, S
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addDefaultButtons(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
Long menuId = sysMenuButtonRequest.getMenuId();
|
||||
// 构建菜单的系统默认按钮
|
||||
List<SysMenuButton> sysMenuButtonList = MenuButtonFactory.createSystemDefaultButton(menuId);
|
||||
this.saveBatch(sysMenuButtonList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据主键id获取对象
|
||||
*
|
||||
|
@ -142,6 +141,14 @@ public class SysMenuButtonServiceImpl extends ServiceImpl<SysMenuButtonMapper, S
|
|||
*/
|
||||
private LambdaQueryWrapper<SysMenuButton> createWrapper(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
LambdaQueryWrapper<SysMenuButton> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
// 逻辑删除
|
||||
queryWrapper.eq(SysMenuButton::getDelFlag, YesOrNotEnum.N.getCode());
|
||||
|
||||
if (ObjectUtil.isEmpty(sysMenuButtonRequest)) {
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
Long buttonId = sysMenuButtonRequest.getButtonId();
|
||||
Long menuId = sysMenuButtonRequest.getMenuId();
|
||||
String buttonName = sysMenuButtonRequest.getButtonName();
|
||||
|
@ -153,11 +160,7 @@ public class SysMenuButtonServiceImpl extends ServiceImpl<SysMenuButtonMapper, S
|
|||
queryWrapper.like(ObjectUtil.isNotNull(buttonName), SysMenuButton::getButtonName, buttonName);
|
||||
queryWrapper.like(ObjectUtil.isNotNull(buttonCode), SysMenuButton::getButtonCode, buttonCode);
|
||||
|
||||
// 逻辑删除
|
||||
queryWrapper.eq(SysMenuButton::getDelFlag, YesOrNotEnum.N.getCode());
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenu;
|
|||
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenuButton;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.factory.AntdMenusFactory;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.factory.LayuiMenusFactory;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.factory.common.CommonMenusFactory;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.mapper.SysMenuMapper;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuButtonService;
|
||||
import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuService;
|
||||
|
@ -27,14 +26,13 @@ import cn.stylefeng.roses.kernel.system.AppServiceApi;
|
|||
import cn.stylefeng.roses.kernel.system.MenuServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.RoleServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.exception.SystemModularException;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.SysMenuExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.SysUserExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.SysMenuRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdIndexMenuTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiAppIndexMenus;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.menu.SysMenuExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdMenuSelectTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiAppIndexMenusVO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiMenuAndButtonTreeResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.other.MenuSelectTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleMenuButtonResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleMenuResponse;
|
||||
|
@ -72,6 +70,20 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
@Override
|
||||
public void add(SysMenuRequest sysMenuRequest) {
|
||||
|
||||
// 如果父节点为空,则填充为默认的父节点id
|
||||
if (sysMenuRequest.getMenuParentId() == null) {
|
||||
sysMenuRequest.setMenuParentId(TreeConstants.DEFAULT_PARENT_ID);
|
||||
}
|
||||
|
||||
// 如果父节点不为空,并且不是-1,则判断父节点存不存在,防止脏数据
|
||||
else {
|
||||
if (!TreeConstants.DEFAULT_PARENT_ID.equals(sysMenuRequest.getMenuParentId())) {
|
||||
SysMenuRequest tempParam = new SysMenuRequest();
|
||||
tempParam.setMenuId(sysMenuRequest.getMenuParentId());
|
||||
this.querySysMenu(tempParam);
|
||||
}
|
||||
}
|
||||
|
||||
SysMenu sysMenu = new SysMenu();
|
||||
BeanUtil.copyProperties(sysMenuRequest, sysMenu);
|
||||
|
||||
|
@ -81,6 +93,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
|
||||
// 设置启用状态
|
||||
sysMenu.setStatusFlag(StatusEnum.ENABLE.getCode());
|
||||
sysMenu.setDelFlag(YesOrNotEnum.N.getCode());
|
||||
|
||||
this.save(sysMenu);
|
||||
}
|
||||
|
@ -111,6 +124,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
// 获取库中的菜单信息
|
||||
SysMenu oldMenu = this.querySysMenu(sysMenuRequest);
|
||||
|
||||
// 更新子节点以及子节点的子节点的appCode和层级关系(pids)
|
||||
String newPids = updateChildrenAppAndLevel(sysMenuRequest, oldMenu);
|
||||
|
||||
// 拷贝参数到实体中
|
||||
|
@ -153,17 +167,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
|
||||
LambdaQueryWrapper<SysMenu> wrapper = createWrapper(sysMenuRequest);
|
||||
|
||||
List<SysMenu> sysMenuList = this.list(wrapper);
|
||||
|
||||
// 将结果集处理成树
|
||||
return new DefaultTreeBuildFactory<SysMenu>().doTreeBuild(sysMenuList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> layuiList(SysMenuRequest sysMenuRequest) {
|
||||
|
||||
LambdaQueryWrapper<SysMenu> wrapper = createWrapper(sysMenuRequest);
|
||||
|
||||
List<SysMenu> list = this.list(wrapper);
|
||||
|
||||
// 应用编码转化为应用名称
|
||||
|
@ -182,6 +185,15 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> findListWithTreeStructure(SysMenuRequest sysMenuRequest) {
|
||||
|
||||
List<SysMenu> sysMenuList = this.findList(sysMenuRequest);
|
||||
|
||||
// 将结果集处理成树
|
||||
return new DefaultTreeBuildFactory<SysMenu>().doTreeBuild(sysMenuList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ZTreeNode> layuiSelectParentMenuTreeList() {
|
||||
|
||||
|
@ -204,104 +216,40 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> getCurrentUserMenus() {
|
||||
return getCurrentUserMenus(null);
|
||||
public List<AntdMenuSelectTreeNode> tree(SysMenuRequest sysMenuRequest) {
|
||||
List<AntdMenuSelectTreeNode> menuTreeNodeList = CollectionUtil.newArrayList();
|
||||
|
||||
LambdaQueryWrapper<SysMenu> wrapper = createWrapper(sysMenuRequest);
|
||||
this.list(wrapper).forEach(sysMenu -> {
|
||||
AntdMenuSelectTreeNode menuTreeNode = AntdMenusFactory.parseMenuBaseTreeNode(sysMenu);
|
||||
menuTreeNodeList.add(menuTreeNode);
|
||||
});
|
||||
|
||||
return new DefaultTreeBuildFactory<AntdMenuSelectTreeNode>().doTreeBuild(menuTreeNodeList);
|
||||
}
|
||||
|
||||
@Override
|
||||
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<>();
|
||||
queryWrapper.in(SysMenu::getMenuId, menuIdList).eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode()).eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode()).orderByAsc(SysMenu::getMenuSort);
|
||||
|
||||
// 如果应用编码不为空,则拼接应用编码
|
||||
if (StrUtil.isNotBlank(appCode)) {
|
||||
queryWrapper.eq(SysMenu::getAppCode, appCode);
|
||||
}
|
||||
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LayuiAppIndexMenus> getLayuiIndexMenus() {
|
||||
public List<LayuiAppIndexMenusVO> getLayuiIndexMenus() {
|
||||
|
||||
// 获取当前用户所有菜单
|
||||
List<SysMenu> currentUserMenus = this.getCurrentUserMenus();
|
||||
|
||||
// 组装每个应用的菜单树
|
||||
List<LayuiAppIndexMenus> layuiAppIndexMenus = LayuiMenusFactory.createLayuiAppIndexMenus(currentUserMenus);
|
||||
List<LayuiAppIndexMenusVO> layuiAppIndexMenuVOS = LayuiMenusFactory.createLayuiAppIndexMenus(currentUserMenus);
|
||||
|
||||
// 给应用排序,激活的应用放在前边
|
||||
String activeAppCode = appServiceApi.getActiveAppCode();
|
||||
if (activeAppCode != null) {
|
||||
List<LayuiAppIndexMenus> layuiAppIndexMenusArrayList = layuiAppIndexMenus.stream().filter(i -> activeAppCode.equals(i.getAppCode())).collect(Collectors.toList());
|
||||
layuiAppIndexMenusArrayList.addAll(layuiAppIndexMenus.stream().filter(i -> !activeAppCode.equals(i.getAppCode())).collect(Collectors.toList()));
|
||||
return layuiAppIndexMenusArrayList;
|
||||
List<LayuiAppIndexMenusVO> layuiAppIndexMenusVOArrayList = layuiAppIndexMenuVOS.stream().filter(i -> activeAppCode.equals(i.getAppCode())).collect(Collectors.toList());
|
||||
layuiAppIndexMenusVOArrayList.addAll(layuiAppIndexMenuVOS.stream().filter(i -> !activeAppCode.equals(i.getAppCode())).collect(Collectors.toList()));
|
||||
return layuiAppIndexMenusVOArrayList;
|
||||
}
|
||||
|
||||
return layuiAppIndexMenus;
|
||||
return layuiAppIndexMenuVOS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AntdIndexMenuTreeNode> getAntDVueIndexMenus(String appCode) {
|
||||
|
||||
// 获取当前用户的所有菜单
|
||||
List<SysMenu> currentUserMenus = this.getCurrentUserMenus(appCode);
|
||||
|
||||
// 转换成登录菜单格式
|
||||
List<AntdIndexMenuTreeNode> antdIndexMenuTreeNodes = AntdMenusFactory.convertSysMenuToLoginMenu(currentUserMenus);
|
||||
|
||||
// 转化成树结构
|
||||
return new DefaultTreeBuildFactory<AntdIndexMenuTreeNode>(TreeConstants.VIRTUAL_ROOT_PARENT_ID.toString()).doTreeBuild(antdIndexMenuTreeNodes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MenuSelectTreeNode> tree(SysMenuRequest sysMenuRequest) {
|
||||
List<MenuSelectTreeNode> menuTreeNodeList = CollectionUtil.newArrayList();
|
||||
|
||||
LambdaQueryWrapper<SysMenu> wrapper = createWrapper(sysMenuRequest);
|
||||
this.list(wrapper).forEach(sysMenu -> {
|
||||
MenuSelectTreeNode menuTreeNode = CommonMenusFactory.parseMenuBaseTreeNode(sysMenu);
|
||||
menuTreeNodeList.add(menuTreeNode);
|
||||
});
|
||||
|
||||
return new DefaultTreeBuildFactory<MenuSelectTreeNode>().doTreeBuild(menuTreeNodeList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MenuSelectTreeNode> treeForGrant(SysMenuRequest sysMenuRequest) {
|
||||
List<MenuSelectTreeNode> menuTreeNodeList = CollectionUtil.newArrayList();
|
||||
|
||||
LambdaQueryWrapper<SysMenu> wrapper = createWrapper(sysMenuRequest);
|
||||
wrapper.eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode());
|
||||
|
||||
// 非超级管理员则获取自己拥有的菜单,分配给人员,防止越级授权
|
||||
if (!LoginContext.me().getSuperAdminFlag()) {
|
||||
List<Long> menuIdList = getCurrentUserMenuIds();
|
||||
if (!menuIdList.isEmpty()) {
|
||||
wrapper.in(SysMenu::getMenuId, menuIdList);
|
||||
}
|
||||
}
|
||||
|
||||
this.list(wrapper).forEach(sysMenu -> {
|
||||
MenuSelectTreeNode menuTreeNode = CommonMenusFactory.parseMenuBaseTreeNode(sysMenu);
|
||||
menuTreeNodeList.add(menuTreeNode);
|
||||
});
|
||||
|
||||
return new DefaultTreeBuildFactory<MenuSelectTreeNode>().doTreeBuild(menuTreeNodeList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AntdSysMenuResponse> getSystemAllMenusAntdv() {
|
||||
public List<AntdSysMenuDTO> getSystemAllMenusAntdv() {
|
||||
return this.baseMapper.getSystemAllMenus();
|
||||
}
|
||||
|
||||
|
@ -410,6 +358,34 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> getCurrentUserMenus() {
|
||||
return getCurrentUserMenus(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
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<>();
|
||||
queryWrapper.in(SysMenu::getMenuId, menuIdList).eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode()).eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode()).orderByAsc(SysMenu::getMenuSort);
|
||||
|
||||
// 如果应用编码不为空,则拼接应用编码
|
||||
if (StrUtil.isNotBlank(appCode)) {
|
||||
queryWrapper.eq(SysMenu::getAppCode, appCode);
|
||||
}
|
||||
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasMenu(String appCode) {
|
||||
SysMenuRequest sysMenuRequest = new SysMenuRequest();
|
||||
|
@ -429,7 +405,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
private SysMenu querySysMenu(SysMenuRequest sysMenuRequest) {
|
||||
SysMenu sysMenu = this.getById(sysMenuRequest.getMenuId());
|
||||
if (ObjectUtil.isNull(sysMenu) || YesOrNotEnum.Y.getCode().equals(sysMenu.getDelFlag())) {
|
||||
throw new ServiceException(SysMenuExceptionEnum.MENU_NOT_EXIST);
|
||||
throw new SystemModularException(SysMenuExceptionEnum.MENU_NOT_EXIST, sysMenuRequest.getMenuId());
|
||||
}
|
||||
return sysMenu;
|
||||
}
|
||||
|
@ -437,7 +413,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
/**
|
||||
* 创建pids的值
|
||||
* <p>
|
||||
* 如果pid是0顶级节点,pids就是 [0],
|
||||
* 如果pid是0顶级节点,pids就是 [-1],
|
||||
* <p>
|
||||
* 如果pid不是顶级节点,pids就是父菜单的pids + [pid] + ,
|
||||
*
|
||||
|
@ -449,7 +425,11 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
return SymbolConstant.LEFT_SQUARE_BRACKETS + TreeConstants.DEFAULT_PARENT_ID + SymbolConstant.RIGHT_SQUARE_BRACKETS + SymbolConstant.COMMA;
|
||||
} else {
|
||||
//获取父菜单
|
||||
SysMenu parentMenu = this.getById(pid);
|
||||
SysMenuRequest sysMenuRequest = new SysMenuRequest();
|
||||
sysMenuRequest.setMenuId(pid);
|
||||
SysMenu parentMenu = this.querySysMenu(sysMenuRequest);
|
||||
|
||||
// 组装pids
|
||||
return parentMenu.getMenuPids() + SymbolConstant.LEFT_SQUARE_BRACKETS + pid + SymbolConstant.RIGHT_SQUARE_BRACKETS + SymbolConstant.COMMA;
|
||||
}
|
||||
}
|
||||
|
@ -462,23 +442,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
*/
|
||||
private LambdaQueryWrapper<SysMenu> createWrapper(SysMenuRequest sysMenuRequest) {
|
||||
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (ObjectUtil.isNotNull(sysMenuRequest)) {
|
||||
|
||||
// 根据所属应用查询
|
||||
if (ObjectUtil.isNotEmpty(sysMenuRequest.getAppCode())) {
|
||||
queryWrapper.eq(SysMenu::getAppCode, sysMenuRequest.getAppCode());
|
||||
}
|
||||
|
||||
// 根据菜单名称模糊查询
|
||||
if (ObjectUtil.isNotEmpty(sysMenuRequest.getMenuName())) {
|
||||
queryWrapper.like(SysMenu::getMenuName, sysMenuRequest.getMenuName());
|
||||
}
|
||||
|
||||
// 根据菜单编码模糊查询
|
||||
if (ObjectUtil.isNotEmpty(sysMenuRequest.getMenuCode())) {
|
||||
queryWrapper.like(SysMenu::getMenuCode, sysMenuRequest.getMenuCode());
|
||||
}
|
||||
}
|
||||
|
||||
// 查询未删除状态的
|
||||
queryWrapper.eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode());
|
||||
|
@ -487,6 +450,19 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
queryWrapper.orderByAsc(SysMenu::getAppCode);
|
||||
queryWrapper.orderByAsc(SysMenu::getMenuSort);
|
||||
|
||||
if (ObjectUtil.isEmpty(sysMenuRequest)) {
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
// 根据所属应用查询
|
||||
queryWrapper.eq(ObjectUtil.isNotEmpty(sysMenuRequest.getAppCode()), SysMenu::getAppCode, sysMenuRequest.getAppCode());
|
||||
|
||||
// 根据菜单名称模糊查询
|
||||
queryWrapper.like(ObjectUtil.isNotEmpty(sysMenuRequest.getMenuName()), SysMenu::getMenuName, sysMenuRequest.getMenuName());
|
||||
|
||||
// 根据菜单编码模糊查询
|
||||
queryWrapper.like(ObjectUtil.isNotEmpty(sysMenuRequest.getMenuCode()), SysMenu::getMenuCode, sysMenuRequest.getMenuCode());
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue