From 3da47c42740b40558067d5d0eff241a36e3e14c3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com>
Date: Tue, 30 Sep 2025 22:34:50 +0800
Subject: [PATCH] =?UTF-8?q?feat(menu):=E9=87=8D=E6=9E=84=E8=8F=9C=E5=8D=95?=
=?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96?=
=?UTF-8?q?=E6=9D=83=E9=99=90=E9=85=8D=E7=BD=AE-=20=E9=87=8D=E6=96=B0?=
=?UTF-8?q?=E8=AE=BE=E8=AE=A1=E8=8F=9C=E5=8D=95=E5=AF=BC=E5=85=A5=E9=80=BB?=
=?UTF-8?q?=E8=BE=91=EF=BC=8C=E6=94=AF=E6=8C=81=E7=88=B6=E5=AD=90=E8=8F=9C?=
=?UTF-8?q?=E5=8D=95=E5=B1=82=E7=BA=A7=E7=BB=93=E6=9E=84=20-=20=E6=B7=BB?=
=?UTF-8?q?=E5=8A=A0=E5=AF=BC=E5=85=A5=E8=BF=87=E7=A8=8B=E7=9A=84=E6=97=A5?=
=?UTF-8?q?=E5=BF=97=E8=B7=9F=E8=B8=AA=E5=92=8C=E8=B0=83=E8=AF=95=E4=BF=A1?=
=?UTF-8?q?=E6=81=AF-=20=E5=AE=9E=E7=8E=B0=E8=8F=9C=E5=8D=95=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E6=B8=85=E7=90=86=E5=92=8C=E9=87=8D=E5=BB=BA=E6=9C=BA?=
=?UTF-8?q?=E5=88=B6-=E4=B8=BA=E8=B6=85=E7=BA=A7=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E5=91=98=E8=87=AA=E5=8A=A8=E5=88=86=E9=85=8D=E5=AF=BC=E5=85=A5?=
=?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9D=83=E9=99=90=20-=20=E6=9B=B4=E6=96=B0?=
=?UTF-8?q?=E8=8F=9C=E5=8D=95=E5=AF=BC=E5=85=A5=E5=8F=82=E6=95=B0=E7=B1=BB?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=B3=A8=E8=A7=A3=E5=92=8C=E5=91=BD=E5=90=8D?=
=?UTF-8?q?=20-=20=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96=E5=85=8B=E9=9A=86?=
=?UTF-8?q?=E8=8F=9C=E5=8D=95=E5=88=97=E8=A1=A8=E7=9A=84=E6=9C=8D=E5=8A=A1?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=92=8C=E5=AE=9E=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../system/controller/MenuController.java | 284 ++++++++++++++++--
.../common/system/param/MenuImportParam.java | 15 +-
.../common/system/service/MenuService.java | 11 +-
.../system/service/impl/MenuServiceImpl.java | 5 +
4 files changed, 279 insertions(+), 36 deletions(-)
diff --git a/src/main/java/com/gxwebsoft/common/system/controller/MenuController.java b/src/main/java/com/gxwebsoft/common/system/controller/MenuController.java
index 2d6e09c..9411cab 100644
--- a/src/main/java/com/gxwebsoft/common/system/controller/MenuController.java
+++ b/src/main/java/com/gxwebsoft/common/system/controller/MenuController.java
@@ -2,33 +2,40 @@ package com.gxwebsoft.common.system.controller;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
-import cn.hutool.core.util.ObjectUtil;
-import com.gxwebsoft.common.core.utils.JSONUtil;
-import com.gxwebsoft.common.system.param.MenuImportParam;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.multipart.MultipartFile;
-
import cn.hutool.core.stream.CollectorUtil;
+import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gxwebsoft.common.core.annotation.OperationLog;
+import com.gxwebsoft.common.core.utils.JSONUtil;
import com.gxwebsoft.common.core.web.*;
import com.gxwebsoft.common.system.entity.*;
+import com.gxwebsoft.common.system.param.MenuImportParam;
import com.gxwebsoft.common.system.param.MenuParam;
import com.gxwebsoft.common.system.param.VersionParam;
import com.gxwebsoft.common.system.service.CompanyService;
import com.gxwebsoft.common.system.service.MenuService;
+import com.gxwebsoft.common.system.service.RoleMenuService;
+import com.gxwebsoft.common.system.service.RoleService;
import com.gxwebsoft.common.system.service.UserService;
import com.gxwebsoft.common.system.service.VersionService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
+import java.util.Queue;
import java.util.Set;
import java.util.stream.Collectors;
@@ -50,6 +57,10 @@ public class MenuController extends BaseController {
private VersionService versionService;
@Resource
private UserService userService;
+ @Resource
+ private RoleService roleService;
+ @Resource
+ private RoleMenuService roleMenuService;
@PreAuthorize("hasAuthority('sys:menu:list')")
@Operation(summary = "分页查询菜单")
@@ -238,45 +249,260 @@ public class MenuController extends BaseController {
/**
* excel批量导入菜单
*/
- @PreAuthorize("hasAuthority('sys:menu:remove')")
+ @PreAuthorize("hasAuthority('sys:menu:save')")
@Operation(summary = "批量导入菜单")
@Transactional(rollbackFor = {Exception.class})
@PostMapping("/import")
public ApiResult> importBatch(MultipartFile file) {
ImportParams importParams = new ImportParams();
try {
+ System.out.println("=== 开始菜单导入流程 ===");
+
+ // 检查导入前的菜单数据
+ long beforeCount = menuService.count();
+ System.out.println("导入前菜单总数: " + beforeCount);
+
+ // 检查当前未删除的菜单
+ List