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