From c8638df756d5c56f2d0c3ed35522fc5a340122c8 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 04 七月 2025 15:12:22 +0800
Subject: [PATCH] 修改bug

---
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/MenuController.java |   70 ++++++++++++++++++++++++++++------
 1 files changed, 57 insertions(+), 13 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 9857aae..47e8c11 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
@@ -3,9 +3,8 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.base.tips.Tip;
+import com.stylefeng.guns.core.beetl.ShiroExtUtil;
 import com.stylefeng.guns.core.common.annotion.BussinessLog;
-import com.stylefeng.guns.core.common.annotion.Permission;
-import com.stylefeng.guns.core.common.constant.Const;
 import com.stylefeng.guns.core.common.constant.dictmap.MenuDict;
 import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
 import com.stylefeng.guns.core.common.constant.state.MenuStatus;
@@ -13,10 +12,15 @@
 import com.stylefeng.guns.core.exception.GunsException;
 import com.stylefeng.guns.core.log.LogObjectHolder;
 import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.core.shiro.ShiroUser;
 import com.stylefeng.guns.core.support.BeanKit;
 import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.dao.TCompanyMapper;
 import com.stylefeng.guns.modular.system.model.Menu;
+import com.stylefeng.guns.modular.system.model.Relation;
+import com.stylefeng.guns.modular.system.model.TCompany;
 import com.stylefeng.guns.modular.system.service.IMenuService;
+import com.stylefeng.guns.modular.system.service.IRelationService;
 import com.stylefeng.guns.modular.system.warpper.MenuWarpper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -27,9 +31,12 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 菜单控制器
@@ -45,8 +52,17 @@
 
     @Autowired
     private IMenuService menuService;
-
-
+    @Resource
+    private ShiroExtUtil shiroExtUtil;
+    
+    @Resource
+    private TCompanyMapper companyMapper;
+    
+    @Resource
+    private IRelationService rerelationService;
+    
+    
+    
     /**
      * 跳转到菜单列表列表页面
      */
@@ -66,7 +82,6 @@
     /**
      * 跳转到菜单详情列表页面
      */
-    @Permission(Const.ADMIN_NAME)
     @RequestMapping(value = "/menu_edit/{menuId}")
     public String menuEdit(@PathVariable Long menuId, Model model) {
         if (ToolUtil.isEmpty(menuId)) {
@@ -97,7 +112,6 @@
     /**
      * 修该菜单
      */
-    @Permission(Const.ADMIN_NAME)
     @RequestMapping(value = "/edit")
     @BussinessLog(value = "修改菜单", key = "name", dict = MenuDict.class)
     @ResponseBody
@@ -117,7 +131,6 @@
     /**
      * 获取菜单列表
      */
-    @Permission(Const.ADMIN_NAME)
     @RequestMapping(value = "/list")
     @ResponseBody
     public Object list(@RequestParam(required = false) String menuName, @RequestParam(required = false) String level) {
@@ -128,7 +141,6 @@
     /**
      * 新增菜单
      */
-    @Permission(Const.ADMIN_NAME)
     @RequestMapping(value = "/add")
     @BussinessLog(value = "菜单新增", key = "name", dict = MenuDict.class)
     @ResponseBody
@@ -156,7 +168,6 @@
     /**
      * 删除菜单
      */
-    @Permission(Const.ADMIN_NAME)
     @RequestMapping(value = "/remove")
     @BussinessLog(value = "删除菜单", key = "menuId", dict = MenuDict.class)
     @ResponseBody
@@ -193,7 +204,18 @@
     @RequestMapping(value = "/menuTreeList")
     @ResponseBody
     public List<ZTreeNode> menuTreeList() {
-        List<ZTreeNode> roleTreeList = this.menuService.menuTreeList();
+        ShiroUser user1 = shiroExtUtil.getUser();
+        TCompany tCompany = companyMapper.selectById(user1.getObjectId());
+        List<Long> ids = new ArrayList<>();
+        if(1 != tCompany.getType()){
+            List<Relation> relations = rerelationService.selectList(new EntityWrapper<Relation>().eq("roleid", tCompany.getType()));
+            if(relations.size() == 0){
+                ids.add(0L);
+            }else{
+                ids = relations.stream().map(Relation::getMenuid).collect(Collectors.toList());
+            }
+        }
+        List<ZTreeNode> roleTreeList = this.menuService.menuTreeList(ids);
         return roleTreeList;
     }
 
@@ -203,7 +225,18 @@
     @RequestMapping(value = "/selectMenuTreeList")
     @ResponseBody
     public List<ZTreeNode> selectMenuTreeList() {
-        List<ZTreeNode> roleTreeList = this.menuService.menuTreeList();
+        ShiroUser user1 = shiroExtUtil.getUser();
+        TCompany tCompany = companyMapper.selectById(user1.getObjectId());
+        List<Long> ids = new ArrayList<>();
+        if(1 != tCompany.getType()){
+            List<Relation> relations = rerelationService.selectList(new EntityWrapper<Relation>().eq("roleid", tCompany.getType()));
+            if(relations.size() == 0){
+                ids.add(0L);
+            }else{
+                ids = relations.stream().map(Relation::getMenuid).collect(Collectors.toList());
+            }
+        }
+        List<ZTreeNode> roleTreeList = this.menuService.menuTreeList(ids);
         roleTreeList.add(ZTreeNode.createParent());
         return roleTreeList;
     }
@@ -215,11 +248,22 @@
     @ResponseBody
     public List<ZTreeNode> menuTreeListByRoleId(@PathVariable Integer roleId) {
         List<Long> menuIds = this.menuService.getMenuIdsByRoleId(roleId);
+        ShiroUser user1 = shiroExtUtil.getUser();
+        TCompany tCompany = companyMapper.selectById(user1.getObjectId());
+        List<Long> ids = new ArrayList<>();
+        if(1 != tCompany.getType()){
+            List<Relation> relations = rerelationService.selectList(new EntityWrapper<Relation>().eq("roleid", tCompany.getType()));
+            if(relations.size() == 0){
+                ids.add(0L);
+            }else{
+                ids = relations.stream().map(Relation::getMenuid).collect(Collectors.toList());
+            }
+        }
         if (ToolUtil.isEmpty(menuIds)) {
-            List<ZTreeNode> roleTreeList = this.menuService.menuTreeList();
+            List<ZTreeNode> roleTreeList = this.menuService.menuTreeList(ids);
             return roleTreeList;
         } else {
-            List<ZTreeNode> roleTreeListByUserId = this.menuService.menuTreeListByMenuIds(menuIds);
+            List<ZTreeNode> roleTreeListByUserId = this.menuService.menuTreeListByMenuIds(menuIds, ids);
             return roleTreeListByUserId;
         }
     }

--
Gitblit v1.7.1