Pu Zhibing
2025-07-03 0c82398dad95f536e22b5e1966f79aa29b2cf1c9
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/MenuController.java
@@ -3,6 +3,7 @@
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.constant.dictmap.MenuDict;
import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
@@ -11,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;
@@ -25,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;
/**
 * 菜单控制器
@@ -43,8 +52,17 @@
    @Autowired
    private IMenuService menuService;
    @Resource
    private ShiroExtUtil shiroExtUtil;
    @Resource
    private TCompanyMapper companyMapper;
    @Resource
    private IRelationService rerelationService;
    /**
     * 跳转到菜单列表列表页面
     */
@@ -186,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;
    }
@@ -196,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;
    }
@@ -208,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;
        }
    }