新增 加载全部菜单接口
This commit is contained in:
parent
12887cc169
commit
0e7f9a7d2c
198
harmonylife_20240923_登录和获取用户信息完成.sql
Normal file
198
harmonylife_20240923_登录和获取用户信息完成.sql
Normal file
@ -0,0 +1,198 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 本地连接
|
||||
Source Server Type : MySQL
|
||||
Source Server Version : 50743 (5.7.43-log)
|
||||
Source Host : localhost:3306
|
||||
Source Schema : harmonylife
|
||||
|
||||
Target Server Type : MySQL
|
||||
Target Server Version : 50743 (5.7.43-log)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 23/09/2024 17:23:08
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for system_action
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `system_action`;
|
||||
CREATE TABLE `system_action` (
|
||||
`id` bigint(11) NOT NULL COMMENT '动作id',
|
||||
`tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '动作标签 例如 add',
|
||||
`describe` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '动作标题 例如 增加',
|
||||
`default_check` tinyint(4) NULL DEFAULT NULL COMMENT '0 false 1 true',
|
||||
`status` tinyint(4) NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '动作表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of system_action
|
||||
-- ----------------------------
|
||||
INSERT INTO `system_action` VALUES (1, 'add', '新增', 0, 1);
|
||||
INSERT INTO `system_action` VALUES (2, 'import', '导入', 0, 1);
|
||||
INSERT INTO `system_action` VALUES (3, 'get', '详情', 0, 1);
|
||||
INSERT INTO `system_action` VALUES (4, 'update', '更新', 0, 1);
|
||||
INSERT INTO `system_action` VALUES (5, 'delete', '删除', 0, 1);
|
||||
INSERT INTO `system_action` VALUES (6, 'export', '导出', 0, 1);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for system_menu
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `system_menu`;
|
||||
CREATE TABLE `system_menu` (
|
||||
`id` bigint(11) NOT NULL COMMENT 'id',
|
||||
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '显示的中文名称',
|
||||
`key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'key',
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由名称',
|
||||
`component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件名称',
|
||||
`redirect` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '重定向',
|
||||
`icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图标名称',
|
||||
`status` tinyint(4) NULL DEFAULT NULL COMMENT '状态 0 未启用 -1 删除 1正常使用',
|
||||
`parent` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父级',
|
||||
`order` int(11) NULL DEFAULT NULL COMMENT '排序,数字越小,越靠前',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of system_menu
|
||||
-- ----------------------------
|
||||
INSERT INTO `system_menu` VALUES (1, '首页', NULL, 'index', 'BasicLayout', '/dashboard/workplace', '', 1, NULL, 1);
|
||||
INSERT INTO `system_menu` VALUES (2, '仪表盘', 'dashboard', 'dashboard', 'RouteView', NULL, 'dashboard', 1, 'index', 1);
|
||||
INSERT INTO `system_menu` VALUES (3, '分析页', 'analysis', NULL, NULL, NULL, NULL, NULL, NULL, 1);
|
||||
INSERT INTO `system_menu` VALUES (4, '系统管理', 'system', 'system', 'PageView', NULL, 'setting', NULL, 'index', 1);
|
||||
INSERT INTO `system_menu` VALUES (5, '用户管理', 'userList', 'userList', NULL, NULL, NULL, NULL, 'system', 1);
|
||||
INSERT INTO `system_menu` VALUES (6, '菜单管理', 'menuList', 'menuList', NULL, NULL, NULL, NULL, 'system', 1);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for system_permission
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `system_permission`;
|
||||
CREATE TABLE `system_permission` (
|
||||
`id` bigint(11) NOT NULL COMMENT '权限id',
|
||||
`permission_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限id(文本型)',
|
||||
`permission_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限名称(菜单名称)',
|
||||
`status` tinyint(4) NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '权限表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of system_permission
|
||||
-- ----------------------------
|
||||
INSERT INTO `system_permission` VALUES (1, 'dashboard', '数据中心', 1);
|
||||
INSERT INTO `system_permission` VALUES (2, 'exception', '异常管理', 1);
|
||||
INSERT INTO `system_permission` VALUES (3, 'result', '结果管理', 1);
|
||||
INSERT INTO `system_permission` VALUES (4, 'profile', '个人信息管理', 1);
|
||||
INSERT INTO `system_permission` VALUES (5, 'table', '表格管理', 1);
|
||||
INSERT INTO `system_permission` VALUES (6, 'form', '表单管理', 1);
|
||||
INSERT INTO `system_permission` VALUES (7, 'order', '订单管理', 1);
|
||||
INSERT INTO `system_permission` VALUES (8, 'permission', '权限管理', 1);
|
||||
INSERT INTO `system_permission` VALUES (9, 'role', '角色管理', 1);
|
||||
INSERT INTO `system_permission` VALUES (10, 'user', '用户管理', 1);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for system_permission_action
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `system_permission_action`;
|
||||
CREATE TABLE `system_permission_action` (
|
||||
`id` bigint(11) NOT NULL COMMENT 'id',
|
||||
`action_tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '动作id 文本型',
|
||||
`permission_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限id 文本型',
|
||||
`status` tinyint(4) NULL DEFAULT NULL COMMENT '状态',
|
||||
`uid` bigint(20) NULL DEFAULT NULL COMMENT '用户id Long',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of system_permission_action
|
||||
-- ----------------------------
|
||||
INSERT INTO `system_permission_action` VALUES (1, 'add', 'role', 1, 1);
|
||||
INSERT INTO `system_permission_action` VALUES (2, 'import', 'role', 1, 1);
|
||||
INSERT INTO `system_permission_action` VALUES (3, 'get', 'role', 1, 1);
|
||||
INSERT INTO `system_permission_action` VALUES (4, 'update', 'role', 1, 1);
|
||||
INSERT INTO `system_permission_action` VALUES (5, 'delete', 'role', 1, 1);
|
||||
INSERT INTO `system_permission_action` VALUES (6, 'export', 'role', 1, 1);
|
||||
INSERT INTO `system_permission_action` VALUES (7, 'add', 'permission', 1, 1);
|
||||
INSERT INTO `system_permission_action` VALUES (8, 'import', 'permission', 1, 1);
|
||||
INSERT INTO `system_permission_action` VALUES (9, 'get', 'permission', 1, 1);
|
||||
INSERT INTO `system_permission_action` VALUES (10, 'update', 'permission', 1, 1);
|
||||
INSERT INTO `system_permission_action` VALUES (11, 'delete', 'permission', 1, 1);
|
||||
INSERT INTO `system_permission_action` VALUES (12, 'export', 'permission', 1, 1);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for system_role
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `system_role`;
|
||||
CREATE TABLE `system_role` (
|
||||
`id` bigint(11) NOT NULL COMMENT '角色id role_id',
|
||||
`role_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名称',
|
||||
`role_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色id(文本型)',
|
||||
`status` tinyint(4) NULL DEFAULT NULL,
|
||||
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of system_role
|
||||
-- ----------------------------
|
||||
INSERT INTO `system_role` VALUES (1, '超级管理员', 'root', 1, '最高权限');
|
||||
INSERT INTO `system_role` VALUES (2, '管理员', 'admin', 1, '管理权限');
|
||||
INSERT INTO `system_role` VALUES (3, '机构', 'agent', 1, '使用权限');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for system_role_permission
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `system_role_permission`;
|
||||
CREATE TABLE `system_role_permission` (
|
||||
`id` bigint(11) NOT NULL,
|
||||
`role_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '注意是文本型',
|
||||
`permission_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '注意是文本型',
|
||||
`status` tinyint(4) NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of system_role_permission
|
||||
-- ----------------------------
|
||||
INSERT INTO `system_role_permission` VALUES (1, 'root', 'dashboard', 1);
|
||||
INSERT INTO `system_role_permission` VALUES (2, 'root', 'exception', 1);
|
||||
INSERT INTO `system_role_permission` VALUES (3, 'root', 'result', 1);
|
||||
INSERT INTO `system_role_permission` VALUES (4, 'root', 'profile', 1);
|
||||
INSERT INTO `system_role_permission` VALUES (5, 'root', 'table', 1);
|
||||
INSERT INTO `system_role_permission` VALUES (6, 'root', 'form', 1);
|
||||
INSERT INTO `system_role_permission` VALUES (7, 'root', 'order', 1);
|
||||
INSERT INTO `system_role_permission` VALUES (8, 'root', 'permission', 1);
|
||||
INSERT INTO `system_role_permission` VALUES (9, 'root', 'role', 1);
|
||||
INSERT INTO `system_role_permission` VALUES (10, 'root', 'user', 1);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for user_info
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `user_info`;
|
||||
CREATE TABLE `user_info` (
|
||||
`id` bigint(11) NOT NULL COMMENT '用户uid',
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵称(用于显示,可以随意更改)',
|
||||
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名(登录使用的账号)',
|
||||
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
|
||||
`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像图片地址',
|
||||
`status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态',
|
||||
`telephone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
|
||||
`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱',
|
||||
`create_time` datetime NULL DEFAULT NULL COMMENT '注册时间',
|
||||
`merchant_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户编号',
|
||||
`deleted` tinyint(4) NULL DEFAULT NULL COMMENT '1 已删除 0未删除',
|
||||
`role_id` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限id 文本类型',
|
||||
`creator_id` int(11) NULL DEFAULT NULL COMMENT '创建者id 0 或者空为自己注册',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of user_info
|
||||
-- ----------------------------
|
||||
INSERT INTO `user_info` VALUES (1, '萌狼蓝天', 'xrilang', 'VomAhgnr1XAkMKzicqYxdCFBx0ooiXBN66Xq9XCWGJTsJgH3uLJVAVGkoZi2n1Ml', 'https://q1.qlogo.cn/g?b=qq&nk=3447902411&s=640', '1', NULL, NULL, '2024-09-21 22:31:02', NULL, 0, 'root', NULL);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
6
pom.xml
6
pom.xml
@ -122,6 +122,12 @@
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<version>1.5.8</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.fusesource.jansi</groupId>
|
||||
<artifactId>jansi</artifactId>
|
||||
<version>2.4.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
@ -0,0 +1,35 @@
|
||||
package com.guaiguailang.harmony.controller;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.guaiguailang.harmony.service.SystemService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@Tag(name="系统相关接口")
|
||||
@RequestMapping("/system")
|
||||
public class SystemController {
|
||||
@Autowired
|
||||
private final SystemService systemService;
|
||||
|
||||
public SystemController(SystemService systemService) {
|
||||
this.systemService = systemService;
|
||||
}
|
||||
|
||||
@Operation(
|
||||
summary = "菜单 加载",
|
||||
description = "加载用户拥有的菜单",
|
||||
tags = {"系统相关接口"}
|
||||
)
|
||||
@GetMapping("/menu")
|
||||
public ResponseEntity getMenu() {
|
||||
return ResponseEntity.ok(systemService.getMenu());
|
||||
}
|
||||
|
||||
}
|
@ -1,77 +1,18 @@
|
||||
package com.guaiguailang.harmony.domain.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SystemMenu {
|
||||
|
||||
private long id;
|
||||
private Long id;
|
||||
private String title;
|
||||
private String key;
|
||||
private String name;
|
||||
private String component;
|
||||
private String redirect;
|
||||
private String icon;
|
||||
private long status;
|
||||
|
||||
|
||||
public long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
|
||||
public String getComponent() {
|
||||
return component;
|
||||
}
|
||||
|
||||
public void setComponent(String component) {
|
||||
this.component = component;
|
||||
}
|
||||
|
||||
|
||||
public String getRedirect() {
|
||||
return redirect;
|
||||
}
|
||||
|
||||
public void setRedirect(String redirect) {
|
||||
this.redirect = redirect;
|
||||
}
|
||||
|
||||
|
||||
public String getIcon() {
|
||||
return icon;
|
||||
}
|
||||
|
||||
public void setIcon(String icon) {
|
||||
this.icon = icon;
|
||||
}
|
||||
|
||||
|
||||
public long getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(long status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
private int status;
|
||||
private String parent;
|
||||
private int order;
|
||||
}
|
||||
|
@ -1,47 +1,12 @@
|
||||
package com.guaiguailang.harmony.domain.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SystemPermission {
|
||||
|
||||
private long id;
|
||||
private Long id;
|
||||
private String permissionId;
|
||||
private String permissionName;
|
||||
private long status;
|
||||
|
||||
|
||||
public long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
||||
public String getPermissionId() {
|
||||
return permissionId;
|
||||
}
|
||||
|
||||
public void setPermissionId(String permissionId) {
|
||||
this.permissionId = permissionId;
|
||||
}
|
||||
|
||||
|
||||
public String getPermissionName() {
|
||||
return permissionName;
|
||||
}
|
||||
|
||||
public void setPermissionName(String permissionName) {
|
||||
this.permissionName = permissionName;
|
||||
}
|
||||
|
||||
|
||||
public long getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(long status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
private int status;
|
||||
}
|
||||
|
@ -6,42 +6,6 @@ public class SystemRolePermission {
|
||||
private long id;
|
||||
private String roleId;
|
||||
private String permissionId;
|
||||
private long status;
|
||||
|
||||
|
||||
public long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
||||
public String getRoleId() {
|
||||
return roleId;
|
||||
}
|
||||
|
||||
public void setRoleId(String roleId) {
|
||||
this.roleId = roleId;
|
||||
}
|
||||
|
||||
|
||||
public String getPermissionId() {
|
||||
return permissionId;
|
||||
}
|
||||
|
||||
public void setPermissionId(String permissionId) {
|
||||
this.permissionId = permissionId;
|
||||
}
|
||||
|
||||
|
||||
public long getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(long status) {
|
||||
this.status = status;
|
||||
}
|
||||
private Long status;
|
||||
|
||||
}
|
||||
|
21
src/main/java/com/guaiguailang/harmony/domain/vo/MenuVO.java
Normal file
21
src/main/java/com/guaiguailang/harmony/domain/vo/MenuVO.java
Normal file
@ -0,0 +1,21 @@
|
||||
package com.guaiguailang.harmony.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class MenuVO {
|
||||
private Long id;
|
||||
private String title;
|
||||
private String key;
|
||||
private String name;
|
||||
private String component;
|
||||
private String redirect;
|
||||
private String icon;
|
||||
private int status;
|
||||
private String parent;
|
||||
private int order;
|
||||
|
||||
private List<MenuVO> children;
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.guaiguailang.harmony.mapper;
|
||||
|
||||
import com.guaiguailang.harmony.domain.entity.SystemMenu;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface SystemMapper {
|
||||
List<SystemMenu> getAllMenus();
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.guaiguailang.harmony.service;
|
||||
|
||||
import com.guaiguailang.harmony.domain.vo.ResponseResult;
|
||||
|
||||
public interface SystemService {
|
||||
ResponseResult getMenu();
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package com.guaiguailang.harmony.service.impl;
|
||||
|
||||
import com.guaiguailang.harmony.domain.entity.SystemMenu;
|
||||
import com.guaiguailang.harmony.domain.vo.MenuVO;
|
||||
import com.guaiguailang.harmony.domain.vo.ResponseResult;
|
||||
import com.guaiguailang.harmony.mapper.SystemMapper;
|
||||
import com.guaiguailang.harmony.service.SystemService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SystemServiceImpl implements SystemService {
|
||||
|
||||
private final SystemMapper systemMapper;
|
||||
|
||||
public SystemServiceImpl(SystemMapper systemMapper) {
|
||||
this.systemMapper = systemMapper;
|
||||
}
|
||||
|
||||
public ResponseResult getMenu() {
|
||||
// 获取所有激活的状态菜单
|
||||
List<SystemMenu> menus = systemMapper.getAllMenus();
|
||||
Map<String, MenuVO> menuMap = new HashMap<>();
|
||||
List<MenuVO> rootMenus = new ArrayList<>();
|
||||
// 第一步:将SystemMenu转换为MenuVO并存储在map中
|
||||
for (SystemMenu menu : menus) {
|
||||
MenuVO menuVO = new MenuVO();
|
||||
menuVO.setId(menu.getId());
|
||||
menuVO.setTitle(menu.getTitle());
|
||||
menuVO.setKey(menu.getKey());
|
||||
menuVO.setName(menu.getName());
|
||||
menuVO.setComponent(menu.getComponent());
|
||||
menuVO.setRedirect(menu.getRedirect());
|
||||
menuVO.setIcon(menu.getIcon());
|
||||
menuVO.setStatus(menu.getStatus());
|
||||
menuVO.setOrder(menu.getOrder());
|
||||
menuVO.setParent(menu.getParent());
|
||||
menuMap.put(menu.getName(), menuVO);
|
||||
}
|
||||
// 第二步:构建树形结构
|
||||
for (MenuVO menuVO : menuMap.values()) {
|
||||
String parentId = menuVO.getParent();
|
||||
if (parentId == null) {
|
||||
// 没有父菜单,即为根菜单
|
||||
rootMenus.add(menuVO);
|
||||
} else {
|
||||
// 查找父菜单并添加到其子菜单列表中
|
||||
MenuVO parentMenuVO = menuMap.get(parentId);
|
||||
if (parentMenuVO != null) {
|
||||
if (parentMenuVO.getChildren() == null) {
|
||||
parentMenuVO.setChildren(new ArrayList<>());
|
||||
}
|
||||
parentMenuVO.getChildren().add(menuVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ResponseResult.success(rootMenus);
|
||||
}
|
||||
|
||||
}
|
22
src/main/resources/mapper/SystemMapper.xml
Normal file
22
src/main/resources/mapper/SystemMapper.xml
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.guaiguailang.harmony.mapper.SystemMapper">
|
||||
|
||||
<!-- 查询所有菜单 -->
|
||||
<select id="getAllMenus" resultType="com.guaiguailang.harmony.domain.entity.SystemMenu">
|
||||
SELECT id,
|
||||
title,
|
||||
`key`,
|
||||
name,
|
||||
component,
|
||||
redirect,
|
||||
icon,
|
||||
status,
|
||||
parent,
|
||||
`order`
|
||||
FROM system_menu
|
||||
ORDER BY `order`
|
||||
</select>
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user