From b6b116dfb83bf5097e001e8a564f639a98f911e2 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期三, 07 一月 2026 18:26:19 +0800
Subject: [PATCH] feat:分公司新增权限配置
---
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/MenuController.java | 73 ++++++++++++++++++++++++++++++++++++
1 files changed, 73 insertions(+), 0 deletions(-)
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/MenuController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/MenuController.java
index d52d184..2d614e4 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/MenuController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/MenuController.java
@@ -34,6 +34,7 @@
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -49,6 +50,27 @@
public class MenuController extends BaseController {
private static String PREFIX = "/system/menu/";
+
+ // 快车相关菜单(isSpe=2时过滤)
+ private static final List<String> SPE_MENUS = Arrays.asList(
+ "快车订单", "快车改派管理", "快车车型设置"
+ );
+
+ // 出租车相关菜单(isTaxi=2时过滤)
+ private static final List<String> TAXI_MENUS = Arrays.asList(
+ "出租车订单", "出租车改派管理"
+ );
+
+ // 跨城相关菜单(isCross=2时过滤)
+ private static final List<String> CROSS_MENUS = Arrays.asList(
+ "跨城出行订单", "跨城改派管理", "跨城线路管理", "开通城市管理"
+ );
+
+ // 顺风车相关菜单(isHitchRide=2时过滤)
+ private static final List<String> HITCH_RIDE_MENUS = Arrays.asList(
+ "顺风车订单", "顺风车设置", "顺风车司机审核列表",
+ "顺风车司机", "顺风车投诉", "顺风车评价"
+ );
@Autowired
private IMenuService menuService;
@@ -216,6 +238,10 @@
}
}
List<ZTreeNode> roleTreeList = this.menuService.menuTreeList(ids);
+ // 分公司(type=2)和供应商(type=3)需要根据经营范围过滤菜单
+ if (tCompany.getType() == 2 || tCompany.getType() == 3) {
+ roleTreeList = filterMenusByBusinessScope(roleTreeList, tCompany);
+ }
return roleTreeList;
}
@@ -237,6 +263,10 @@
}
}
List<ZTreeNode> roleTreeList = this.menuService.menuTreeList(ids);
+ // 分公司(type=2)和供应商(type=3)需要根据经营范围过滤菜单
+ if (tCompany.getType() == 2 || tCompany.getType() == 3) {
+ roleTreeList = filterMenusByBusinessScope(roleTreeList, tCompany);
+ }
roleTreeList.add(ZTreeNode.createParent());
return roleTreeList;
}
@@ -261,9 +291,17 @@
}
if (ToolUtil.isEmpty(menuIds)) {
List<ZTreeNode> roleTreeList = this.menuService.menuTreeList(ids);
+ // 分公司(type=2)和供应商(type=3)需要根据经营范围过滤菜单
+ if (tCompany.getType() == 2 || tCompany.getType() == 3) {
+ roleTreeList = filterMenusByBusinessScope(roleTreeList, tCompany);
+ }
return roleTreeList;
} else {
List<ZTreeNode> roleTreeListByUserId = this.menuService.menuTreeListByMenuIds(menuIds, ids);
+ // 分公司(type=2)和供应商(type=3)需要根据经营范围过滤菜单
+ if (tCompany.getType() == 2 || tCompany.getType() == 3) {
+ roleTreeListByUserId = filterMenusByBusinessScope(roleTreeListByUserId, tCompany);
+ }
return roleTreeListByUserId;
}
}
@@ -292,4 +330,39 @@
}
}
+ /**
+ * 根据企业经营范围过滤菜单
+ * @param menuList 原始菜单列表
+ * @param company 企业信息
+ * @return 过滤后的菜单列表
+ */
+ private List<ZTreeNode> filterMenusByBusinessScope(List<ZTreeNode> menuList, TCompany company) {
+ List<String> excludeMenuNames = new ArrayList<>();
+
+ // isSpe=2 不经营快车
+ if (company.getIsSpe() != null && company.getIsSpe() == 2) {
+ excludeMenuNames.addAll(SPE_MENUS);
+ }
+ // isTaxi=2 不经营出租车
+ if (company.getIsTaxi() != null && company.getIsTaxi() == 2) {
+ excludeMenuNames.addAll(TAXI_MENUS);
+ }
+ // isCross=2 不经营跨城
+ if (company.getIsCross() != null && company.getIsCross() == 2) {
+ excludeMenuNames.addAll(CROSS_MENUS);
+ }
+ // isHitchRide=2 不经营顺风车
+ if (company.getIsHitchRide() != null && company.getIsHitchRide() == 2) {
+ excludeMenuNames.addAll(HITCH_RIDE_MENUS);
+ }
+
+ if (excludeMenuNames.isEmpty()) {
+ return menuList;
+ }
+
+ return menuList.stream()
+ .filter(node -> !excludeMenuNames.contains(node.getName()))
+ .collect(Collectors.toList());
+ }
+
}
--
Gitblit v1.7.1