From 2c35ada755cd899d07d06d98556d7de0f4705bf8 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 17 十一月 2025 18:07:03 +0800
Subject: [PATCH] 菜单处理
---
ruoyi-system/src/main/java/com/ruoyi/system/utils/util/SpringUtils.java | 46 ++
ruoyi-admin/src/test/java/com/ruoyi/web/test/BaseTest.java | 1086 +++++++++++++++++++++++++++++++++++++++++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/utils/util/GDMapGeocodingUtil.java | 2
ruoyi-admin/pom.xml | 12
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java | 7
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java | 8
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 42 +
7 files changed, 1,194 insertions(+), 9 deletions(-)
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index a53beab..60a401e 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -32,7 +32,6 @@
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 表示依赖不会传递 -->
</dependency>
-
<!-- swagger3-->
<dependency>
<groupId>io.springfox</groupId>
@@ -161,6 +160,17 @@
<version>4.9.3</version>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
<build>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
index ad9b0f4..4efdacc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
@@ -31,6 +31,14 @@
@Autowired
private ISysMenuService menuService;
+ @ApiOperation(value = "获取所有资源(菜单及功能)", notes = "获取所有资源(菜单及功能)")
+ @GetMapping(value = "/dist")
+ public AjaxResult listAll() {
+ List<SysMenu> menus = menuService.selectResources();
+ return AjaxResult.success(menus);
+ }
+
+
@ApiOperation("菜单权限(有层级)")
@GetMapping("/levelList")
public AjaxResult levelList()
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/web/test/BaseTest.java b/ruoyi-admin/src/test/java/com/ruoyi/web/test/BaseTest.java
new file mode 100644
index 0000000..643a5c8
--- /dev/null
+++ b/ruoyi-admin/src/test/java/com/ruoyi/web/test/BaseTest.java
@@ -0,0 +1,1086 @@
+package com.ruoyi.web.test;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.RuoYiApplication;
+import com.ruoyi.common.core.domain.entity.SysMenu;
+import com.ruoyi.system.domain.SysRoleMenu;
+import com.ruoyi.system.mapper.SysRoleMenuMapper;
+import com.ruoyi.system.service.ISysMenuService;
+import com.ruoyi.system.service.ISysRoleService;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = RuoYiApplication.class)
+public class BaseTest{
+
+ @Resource
+ private ISysMenuService sysMenuService;
+
+ public String menuStr = "[\n" +
+ " {\n" +
+ " \"name\": \"社区治理架构\",\n" +
+ " \"path\": \"/community\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"社区组织架构\",\n" +
+ " \"path\": \"/community/organization\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"组织部门管理\",\n" +
+ " \"path\": \"/community/organization/department\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"组织人员管理\",\n" +
+ " \"path\": \"/community/organization/person\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"五社联动管理\",\n" +
+ " \"path\": \"/community/linkageManagement\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"社区社会组织\",\n" +
+ " \"path\": \"/community/linkageManagement/communityOrganization\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"导入\",\n" +
+ " \"path\": \"import\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"社会工作者\",\n" +
+ " \"path\": \"/community/linkageManagement/socialWorker\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"导入\",\n" +
+ " \"path\": \"import\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"社会志愿者\",\n" +
+ " \"path\": \"/community/linkageManagement/socialVolunteers\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"导入\",\n" +
+ " \"path\": \"import\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"资源分类\",\n" +
+ " \"path\": \"/community/linkageManagement/resourceCategory\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"资源列表\",\n" +
+ " \"path\": \"/community/linkageManagement/resourceList\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"导入\",\n" +
+ " \"path\": \"import\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"社区地图管理\",\n" +
+ " \"path\": \"/community/communityMap\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"重点人员分类\",\n" +
+ " \"path\": \"/community/pointPersonClass\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"重点人员数据管理\",\n" +
+ " \"path\": \"/community/pointPersonData\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"导入\",\n" +
+ " \"path\": \"import\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"社区网格人员管理\",\n" +
+ " \"path\": \"/community/gridPersonnel\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"导入\",\n" +
+ " \"path\": \"import\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"社区概况\",\n" +
+ " \"path\": \"/community/communityProfile\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"系统管理\",\n" +
+ " \"path\": \"/system\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"党建引领\",\n" +
+ " \"path\": \"/system/partyBuilding\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"党建风采\",\n" +
+ " \"path\": \"/system/partyBuilding/partyBuildingAchievements\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"养老服务\",\n" +
+ " \"path\": \"/system/pensionService\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"老人户籍信息\",\n" +
+ " \"path\": \"/system/pensionService/domicile\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"导入\",\n" +
+ " \"path\": \"import\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"阈值设置\",\n" +
+ " \"path\": \"thresholdSetting\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"高龄预警列表\",\n" +
+ " \"path\": \"/system/pensionService/oldAgeWarning\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"导出\",\n" +
+ " \"path\": \"export\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"康年年图文介绍\",\n" +
+ " \"path\": \"/system/pensionService/kangNiannian\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"助餐点位管理\",\n" +
+ " \"path\": \"/system/pensionService/mealManagement\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"助需管理\",\n" +
+ " \"path\": \"/system/pensionService/assistanceManagement\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"导出\",\n" +
+ " \"path\": \"export\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"托育服务\",\n" +
+ " \"path\": \"/system/childcareManagement\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"托育服务介绍管理\",\n" +
+ " \"path\": \"/system/childcareManagement/serviceIntroduction\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"阅芽计划介绍管理\",\n" +
+ " \"path\": \"/system/childcareManagement/planIntroduction\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"托育服务需求管理\",\n" +
+ " \"path\": \"/system/childcareManagement/childcareServices\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"导出\",\n" +
+ " \"path\": \"export\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"普惠便民\",\n" +
+ " \"path\": \"/system/inclusiveConvenience\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"社区公告\",\n" +
+ " \"path\": \"/system/inclusiveConvenience/communityAnnouncement\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"办事指南\",\n" +
+ " \"path\": \"/system/inclusiveConvenience/serviceGuide\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"配置图文指引\",\n" +
+ " \"path\": \"configureGuide\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"便民信息\",\n" +
+ " \"path\": \"/system/inclusiveConvenience/convenienceInfo\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"问卷调查\",\n" +
+ " \"path\": \"/system/inclusiveConvenience/questionnaireSurvey\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"发布/结束\",\n" +
+ " \"path\": \"publishEnd\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"微心愿\",\n" +
+ " \"path\": \"/system/inclusiveConvenience/microWish\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"审核\",\n" +
+ " \"path\": \"audit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"处理\",\n" +
+ " \"path\": \"handle\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"导出\",\n" +
+ " \"path\": \"export\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"社区活动\",\n" +
+ " \"path\": \"/system/inclusiveConvenience/communityActivity\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"发布/结束\",\n" +
+ " \"path\": \"publishEnd\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ "\n" +
+ " {\n" +
+ " \"name\": \"议事投票\",\n" +
+ " \"path\": \"/system/inclusiveConvenience/deliberationVote\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"发布/结束\",\n" +
+ " \"path\": \"publishEnd\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"群众诉求服务\",\n" +
+ " \"path\": \"/system/inclusiveConvenience/publicAppealService\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"导出\",\n" +
+ " \"path\": \"export\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"处理\",\n" +
+ " \"path\": \"handle\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"随手拍\",\n" +
+ " \"path\": \"/system/inclusiveConvenience/snapShot\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"导出\",\n" +
+ " \"path\": \"export\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"处理\",\n" +
+ " \"path\": \"handle\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"就业创业\",\n" +
+ " \"path\": \"/system/employmentEntrepreneurship\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"创业就业服务\",\n" +
+ " \"path\": \"/system/employmentEntrepreneurship/entrepreneurshipEmploymentService\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"文化教育\",\n" +
+ " \"path\": \"/system/culturalEducation\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"课程管理\",\n" +
+ " \"path\": \"/system/culturalEducation/courseManagement\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"查看报名情况\",\n" +
+ " \"path\": \"viewRegistration\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"课程已完成\",\n" +
+ " \"path\": \"viewCompletion\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"课程报名记录\",\n" +
+ " \"path\": \"/system/culturalEducation/courseRegistrationRecord\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"导出\",\n" +
+ " \"path\": \"export\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"退款申请\",\n" +
+ " \"path\": \"/system/culturalEducation/refundApplication\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"导出\",\n" +
+ " \"path\": \"export\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"审核\",\n" +
+ " \"path\": \"handle\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"惠民商务\",\n" +
+ " \"path\": \"/system/benefitBusiness\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"商户分类\",\n" +
+ " \"path\": \"/system/benefitBusiness/merchantCategory\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"商户列表\",\n" +
+ " \"path\": \"/system/benefitBusiness/merchantList\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"导入\",\n" +
+ " \"path\": \"import\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"广告管理\",\n" +
+ " \"path\": \"/system/benefitBusiness/advertisementManagement\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"新就业群体\",\n" +
+ " \"path\": \"/system/newEmploymentGroup\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"就业信息管理\",\n" +
+ " \"path\": \"/system/newEmploymentGroup/employmentInfoManagement\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"暖新服务\",\n" +
+ " \"path\": \"/system/newEmploymentGroup/warmNewService\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"基础信息管理\",\n" +
+ " \"path\": \"/system/basicInfoManagement\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"首页轮播图\",\n" +
+ " \"path\": \"/system/basicInfoManagement/homeCarousel\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"协议管理\",\n" +
+ " \"path\": \"/system/basicInfoManagement/agreementManagement\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"用户管理\",\n" +
+ " \"path\": \"/system/userManagement/userList\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"用户列表\",\n" +
+ " \"path\": \"/system/userManagement/userList\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"冻结/解冻\",\n" +
+ " \"path\": \"freezeOrThaw\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"系统管理\",\n" +
+ " \"path\": \"/system/systemSetting\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"人员管理\",\n" +
+ " \"path\": \"/system/systemSetting/person\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"重置密码\",\n" +
+ " \"path\": \"resetPassword\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"启用/禁用\",\n" +
+ " \"path\": \"enableOrDisable\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"角色权限\",\n" +
+ " \"path\": \"/system/systemSetting/role\",\n" +
+ " \"children\": [\n" +
+ " {\n" +
+ " \"name\": \"新增\",\n" +
+ " \"path\": \"add\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"编辑\",\n" +
+ " \"path\": \"edit\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"详情\",\n" +
+ " \"path\": \"detail\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"删除\",\n" +
+ " \"path\": \"delete\"\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"操作日志\",\n" +
+ " \"path\": \"/system/systemSetting/operationLog\",\n" +
+ " \"component\": \"./system/systemSetting/operationLog\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ "]\n";
+
+ @Test
+ public void insertMenu(){
+ JSONArray jsonArray = JSON.parseArray(menuStr);
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject jsonObject = JSONObject.parseObject(jsonArray.get(i).toString());
+ String path = jsonObject.getString("path");
+ String name = jsonObject.getString("name");
+ SysMenu sysMenu = new SysMenu();
+ sysMenu.setParentId(0L);
+ sysMenu.setMenuName(name);
+ sysMenu.setPath(path);
+ sysMenu.setMenuType("M");
+ sysMenuService.insertMenu(sysMenu);
+ JSONArray children1 = jsonObject.getJSONArray("children");
+ if(!CollectionUtils.isEmpty(children1)){
+ for (int j = 0; j < children1.size(); j++) {
+ JSONObject jsonObject1 = JSONObject.parseObject(children1.get(j).toString());
+ String path1 = jsonObject1.getString("path");
+ String name1 = jsonObject1.getString("name");
+ SysMenu sysMenu1 = new SysMenu();
+ sysMenu1.setParentId(sysMenu.getMenuId());
+ sysMenu1.setMenuName(name1);
+ sysMenu1.setPath(path1);
+ sysMenu1.setMenuType("M");
+ sysMenuService.insertMenu(sysMenu1);
+ JSONArray children2 = jsonObject1.getJSONArray("children");
+ if(!CollectionUtils.isEmpty(children2)){
+ for (int k = 0; k < children2.size(); k++) {
+ JSONObject jsonObject2 = JSONObject.parseObject(children2.get(k).toString());
+ String path2 = jsonObject2.getString("path");
+ String name2 = jsonObject2.getString("name");
+ SysMenu sysMenu2 = new SysMenu();
+ sysMenu2.setParentId(sysMenu1.getMenuId());
+ sysMenu2.setMenuName(name2);
+ sysMenu2.setPath(path2);
+ sysMenu2.setMenuType("C");
+ sysMenuService.insertMenu(sysMenu2);
+ JSONArray children3 = jsonObject2.getJSONArray("children");
+ if(!CollectionUtils.isEmpty(children3)){
+ for (int l = 0; l < children3.size(); l++) {
+ JSONObject jsonObject3 = JSONObject.parseObject(children3.get(l).toString());
+ String path3 = jsonObject3.getString("path");
+ String name3 = jsonObject3.getString("name");
+ SysMenu sysMenu3 = new SysMenu();
+ sysMenu3.setParentId(sysMenu2.getMenuId());
+ sysMenu3.setMenuName(name3);
+ sysMenu3.setPath(path3);
+ sysMenu3.setMenuType("F");
+ sysMenuService.insertMenu(sysMenu3);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ @Autowired
+ private ISysRoleService sysRoleService;
+ @Autowired
+ private SysRoleMenuMapper roleMenuMapper;
+ @Test
+ public void insertRoleMenu(){
+
+ List<SysMenu> list = sysMenuService.selectList();
+// List<SysMenu> platform = list.stream().filter(e -> e.getRoleType().equals(1)).collect(Collectors.toList());
+// List<SysMenu> supplier = list.stream().filter(e -> e.getRoleType().equals(4)).collect(Collectors.toList());
+// List<SysMenu> clinic = list.stream().filter(e -> e.getRoleType().equals(5)).collect(Collectors.toList());
+
+ List<SysRoleMenu> sysRoleMenus = new ArrayList<>();
+ for (SysMenu sysMenu : list) {
+ SysRoleMenu sysRoleMenu = new SysRoleMenu();
+ sysRoleMenu.setRoleId(1L);
+ sysRoleMenu.setMenuId(sysMenu.getMenuId());
+ sysRoleMenus.add(sysRoleMenu);
+ }
+ roleMenuMapper.batchRoleMenu(sysRoleMenus);
+// List<SysRoleMenu> sysRoleMenus1 = new ArrayList<>();
+// for (SysMenu sysMenu : supplier) {
+// SysRoleMenu sysRoleMenu = new SysRoleMenu();
+// sysRoleMenu.setRoleId(4L);
+// sysRoleMenu.setMenuId(sysMenu.getMenuId());
+// sysRoleMenus1.add(sysRoleMenu);
+// }
+// roleMenuMapper.batchRoleMenu(sysRoleMenus1);
+// List<SysRoleMenu> sysRoleMenus2 = new ArrayList<>();
+// for (SysMenu sysMenu : clinic) {
+// SysRoleMenu sysRoleMenu = new SysRoleMenu();
+// sysRoleMenu.setRoleId(5L);
+// sysRoleMenu.setMenuId(sysMenu.getMenuId());
+// sysRoleMenus2.add(sysRoleMenu);
+// }
+// roleMenuMapper.batchRoleMenu(sysRoleMenus2);
+ }
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
index af96e14..b8b2e60 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
@@ -163,4 +163,11 @@
List<SysMenu> selectList();
+ /**
+ * 查询所有资源
+ * @return
+ */
+ List<SysMenu> selectResources();
+
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
index 7d46e40..120f48e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
@@ -1,17 +1,13 @@
package com.ruoyi.system.service.impl;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.system.mapper.SysMenuMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysRoleMenuMapper;
+import com.ruoyi.system.utils.util.SpringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.constant.Constants;
@@ -25,6 +21,8 @@
import com.ruoyi.system.domain.vo.MetaVo;
import com.ruoyi.system.domain.vo.RouterVo;
import com.ruoyi.system.service.ISysMenuService;
+
+import static java.util.Comparator.comparing;
/**
* 菜单 业务层处理
@@ -362,6 +360,36 @@
return menuMapper.selectList();
}
+ @Override
+ public List<SysMenu> selectResources() {
+ List<SysMenu> allResources = menuMapper.selectList();
+ SysMenu item;
+ //获取根节点的集合
+ List<SysMenu> root = new ArrayList<>();
+ Map<Long, SysMenu> tempMap = new HashMap<>(3);
+ //子节点集合
+ SysMenu parent;
+ for (SysMenu resources : allResources) {
+ item = SpringUtils.beanCopy(resources, SysMenu.class);
+ //每次循环都将集合重新循环添加到父集合中
+ tempMap.put(resources.getMenuId(), item);
+ parent = tempMap.get(resources.getParentId());
+ if (Objects.nonNull(parent)) {
+ //父集合不为空时,获取下级集合
+ //子节点集合
+ parent.getChildren().add(item);
+ // 对子集排序,升序
+// parent.getChildren().sort(comparing(SysMenu::getSort));
+ } else {
+ //根集合
+ root.add(item);
+ // 对根集合排序,升序
+// root.sort(comparing(SysMenu::getSort));
+ }
+ }
+ return root;
+ }
+
/**
* 获取路由名称
*
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/utils/GDMapGeocodingUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/utils/util/GDMapGeocodingUtil.java
similarity index 96%
rename from ruoyi-system/src/main/java/com/ruoyi/system/utils/GDMapGeocodingUtil.java
rename to ruoyi-system/src/main/java/com/ruoyi/system/utils/util/GDMapGeocodingUtil.java
index ef538b8..ff4410a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/utils/GDMapGeocodingUtil.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/utils/util/GDMapGeocodingUtil.java
@@ -1,4 +1,4 @@
-package com.ruoyi.system.utils;
+package com.ruoyi.system.utils.util;
/**
* 高德地图的地理编码工具类
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/utils/util/SpringUtils.java b/ruoyi-system/src/main/java/com/ruoyi/system/utils/util/SpringUtils.java
new file mode 100644
index 0000000..b466a00
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/utils/util/SpringUtils.java
@@ -0,0 +1,46 @@
+package com.ruoyi.system.utils.util;
+
+import org.springframework.beans.BeanUtils;
+
+/**
+ * @author liheng
+ * @ClassName SpringUtils
+ * @Description
+ * @date 2021-06-17 15:37
+ */
+public class SpringUtils {
+
+ /**
+ * 对象属性复制
+ *
+ * @param a
+ * @param clazz
+ * @param <A>
+ * @param <B>
+ * @return
+ */
+ public static <A, B> B beanCopy(A a, Class<B> clazz) {
+ try {
+ B b = clazz.newInstance();
+ BeanUtils.copyProperties(a, b);
+ return b;
+ } catch (InstantiationException | IllegalAccessException e) {
+ throw new RuntimeException("获取对象实例失败");
+ }
+ }
+
+ /**
+ * 对象属性复制
+ *
+ * @param a
+ * @param a
+ * @param <A>
+ * @param <B>
+ * @return
+ */
+ public static <A, B> B beanCopy(A a, B b) {
+ BeanUtils.copyProperties(a, b);
+ return b;
+ }
+
+}
--
Gitblit v1.7.1