xuhy
2025-11-17 2c35ada755cd899d07d06d98556d7de0f4705bf8
菜单处理
1 文件已重命名
2个文件已添加
4个文件已修改
1203 ■■■■■ 已修改文件
ruoyi-admin/pom.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/ruoyi/web/test/BaseTest.java 1086 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/utils/util/GDMapGeocodingUtil.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/utils/util/SpringUtils.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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()
ruoyi-admin/src/test/java/com/ruoyi/web/test/BaseTest.java
New file
@@ -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);
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
@@ -163,4 +163,11 @@
    List<SysMenu> selectList();
    /**
     * 查询所有资源
     * @return
     */
    List<SysMenu> selectResources();
}
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;
    }
    /**
     * 获取路由名称
     * 
ruoyi-system/src/main/java/com/ruoyi/system/utils/util/GDMapGeocodingUtil.java
File was renamed from ruoyi-system/src/main/java/com/ruoyi/system/utils/GDMapGeocodingUtil.java
@@ -1,4 +1,4 @@
package com.ruoyi.system.utils;
package com.ruoyi.system.utils.util;
/**
 * 高德地图的地理编码工具类
ruoyi-system/src/main/java/com/ruoyi/system/utils/util/SpringUtils.java
New file
@@ -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;
    }
}