zhuo
2025-02-26 3dbbf41e66f433784cda81b56b8b97917f284ff5
菜单只看我功能添加
已修改11个文件
259 ■■■■ 文件已修改
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -591,6 +591,11 @@
        return insSampleUserMapper.insert(insSampleUser);
    }
    /**
     * 查询模板内容
     * @param order
     * @param insProducts
     */
    private void getTemplateThing(InsOrder order, List<InsProduct> insProducts) {
        Set<Integer> set = new HashSet<>();
        // 检验项分类+检验项+检验子项的拼接
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
@@ -1,6 +1,8 @@
package com.ruoyi.web.controller.system;
import java.util.List;
import com.ruoyi.common.core.domain.TreeSelect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -72,6 +74,8 @@
    public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId)
    {
        List<SysMenu> menus = menuService.selectMenuList(getUserId());
        // 添加只看我
        menuService.addIsRersonal(menus, roleId);
        AjaxResult ajax = AjaxResult.success();
        ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId));
        ajax.put("menus", menuService.buildMenuTreeSelect(menus));
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
@@ -27,6 +27,9 @@
    /** 是否可以选择仅看我, 0:否, 1:是 */
    private Integer isRersonalButton;
    /** 是否确认只看我, 0:否, 1:是 */
    private Integer isRersonal;
    /** 节点禁用 */
    private boolean disabled = false;
@@ -52,6 +55,7 @@
        this.id = menu.getMenuId();
        this.label = menu.getMenuName();
        this.isRersonalButton = menu.getIsRersonalButton();
        this.isRersonal = menu.getIsRersonal();
        this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
    }
@@ -95,7 +99,7 @@
        this.children = children;
    }
    public Integer geIsRersonalButton()
    public Integer getIsRersonalButton()
    {
        return isRersonalButton;
    }
@@ -104,4 +108,14 @@
    {
        this.isRersonalButton = isRersonalButton;
    }
    public Integer getIsRersonal()
    {
        return isRersonal;
    }
    public void setIsRersonal(Integer isRersonalButton)
    {
        this.isRersonal = isRersonal;
    }
}
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
@@ -69,6 +69,10 @@
    /** 是否可以选择仅看我, 0:否, 1:是 */
    private Integer isRersonalButton;
    /** 仅看我, 0:否, 1:是 */
    private Integer isRersonal;
    /** 子菜单 */
    private List<SysMenu> children = new ArrayList<SysMenu>();
@@ -249,6 +253,16 @@
        this.isRersonalButton = isRersonalButton;
    }
    public Integer getIsRersonal()
    {
        return isRersonal;
    }
    public void setIsRersonal(Integer isRersonal)
    {
        this.isRersonal = isRersonal;
    }
    public List<SysMenu> getChildren()
    {
        return children;
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
@@ -12,7 +12,7 @@
/**
 * 角色表 sys_role
 *
 *
 * @author ruoyi
 */
public class SysRole extends BaseEntity
@@ -57,6 +57,9 @@
    /** 菜单组 */
    private Long[] menuIds;
    /** 只看我菜单组 */
    private Long[] isRersonalMenuIds;
    /** 部门组(数据权限) */
    private Long[] deptIds;
@@ -199,6 +202,17 @@
        this.menuIds = menuIds;
    }
    public Long[] getIsRersonalMenuIds()
    {
        return isRersonalMenuIds;
    }
    public void setIsRersonalMenuIds(Long[] isRersonalMenuIds)
    {
        this.isRersonalMenuIds = isRersonalMenuIds;
    }
    public Long[] getDeptIds()
    {
        return deptIds;
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java
@@ -5,16 +5,19 @@
/**
 * 角色和菜单关联 sys_role_menu
 *
 *
 * @author ruoyi
 */
public class SysRoleMenu
{
    /** 角色ID */
    private Long roleId;
    /** 菜单ID */
    private Long menuId;
    /** 是否只看我0否, 1是 */
    private Integer isRersonal;
    public Long getRoleId()
    {
@@ -36,6 +39,16 @@
        this.menuId = menuId;
    }
    public Integer getIsRersonal()
    {
        return isRersonal;
    }
    public void setIsRersonal(Integer isRersonal)
    {
        this.isRersonal = isRersonal;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java
@@ -51,4 +51,11 @@
     * @return
     */
    SysRoleVo selectRoleMenu(@Param("permsName") String permsName, @Param("userId") Long userId);
    /**
     * 查询只看我菜单id
     * @param roleId
     * @return
     */
    List<Long> selectIsRersonalMenu(@Param("roleId") Long roleId);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
@@ -8,14 +8,14 @@
/**
 * 菜单 业务层
 *
 *
 * @author ruoyi
 */
public interface ISysMenuService
{
    /**
     * 根据用户查询系统菜单列表
     *
     *
     * @param userId 用户ID
     * @return 菜单列表
     */
@@ -23,7 +23,7 @@
    /**
     * 根据用户查询系统菜单列表
     *
     *
     * @param menu 菜单信息
     * @param userId 用户ID
     * @return 菜单列表
@@ -32,7 +32,7 @@
    /**
     * 根据用户ID查询权限
     *
     *
     * @param userId 用户ID
     * @return 权限列表
     */
@@ -40,7 +40,7 @@
    /**
     * 根据角色ID查询权限
     *
     *
     * @param roleId 角色ID
     * @return 权限列表
     */
@@ -48,7 +48,7 @@
    /**
     * 根据用户ID查询菜单树信息
     *
     *
     * @param userId 用户ID
     * @return 菜单列表
     */
@@ -56,7 +56,7 @@
    /**
     * 根据角色ID查询菜单树信息
     *
     *
     * @param roleId 角色ID
     * @return 选中菜单列表
     */
@@ -64,7 +64,7 @@
    /**
     * 构建前端路由所需要的菜单
     *
     *
     * @param menus 菜单列表
     * @return 路由列表
     */
@@ -72,7 +72,7 @@
    /**
     * 构建前端所需要树结构
     *
     *
     * @param menus 菜单列表
     * @return 树结构列表
     */
@@ -80,7 +80,7 @@
    /**
     * 构建前端所需要下拉树结构
     *
     *
     * @param menus 菜单列表
     * @return 下拉树结构列表
     */
@@ -88,7 +88,7 @@
    /**
     * 根据菜单ID查询信息
     *
     *
     * @param menuId 菜单ID
     * @return 菜单信息
     */
@@ -96,7 +96,7 @@
    /**
     * 是否存在菜单子节点
     *
     *
     * @param menuId 菜单ID
     * @return 结果 true 存在 false 不存在
     */
@@ -104,7 +104,7 @@
    /**
     * 查询菜单是否存在角色
     *
     *
     * @param menuId 菜单ID
     * @return 结果 true 存在 false 不存在
     */
@@ -112,7 +112,7 @@
    /**
     * 新增保存菜单信息
     *
     *
     * @param menu 菜单信息
     * @return 结果
     */
@@ -120,7 +120,7 @@
    /**
     * 修改保存菜单信息
     *
     *
     * @param menu 菜单信息
     * @return 结果
     */
@@ -128,7 +128,7 @@
    /**
     * 删除菜单管理信息
     *
     *
     * @param menuId 菜单ID
     * @return 结果
     */
@@ -136,9 +136,16 @@
    /**
     * 校验菜单名称是否唯一
     *
     *
     * @param menu 菜单信息
     * @return 结果
     */
    public boolean checkMenuNameUnique(SysMenu menu);
    /**
     * 添加只看我
     * @param menus
     * @param roleId
     */
    void addIsRersonal(List<SysMenu> menus, Long roleId);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
@@ -27,7 +27,7 @@
/**
 * 菜单 业务层处理
 *
 *
 * @author ruoyi
 */
@Service
@@ -46,7 +46,7 @@
    /**
     * 根据用户查询系统菜单列表
     *
     *
     * @param userId 用户ID
     * @return 菜单列表
     */
@@ -58,7 +58,7 @@
    /**
     * 查询系统菜单列表
     *
     *
     * @param menu 菜单信息
     * @return 菜单列表
     */
@@ -81,7 +81,7 @@
    /**
     * 根据用户ID查询权限
     *
     *
     * @param userId 用户ID
     * @return 权限列表
     */
@@ -102,7 +102,7 @@
    /**
     * 根据角色ID查询权限
     *
     *
     * @param roleId 角色ID
     * @return 权限列表
     */
@@ -123,7 +123,7 @@
    /**
     * 根据用户ID查询菜单
     *
     *
     * @param userId 用户名称
     * @return 菜单列表
     */
@@ -144,7 +144,7 @@
    /**
     * 根据角色ID查询菜单树信息
     *
     *
     * @param roleId 角色ID
     * @return 选中菜单列表
     */
@@ -157,7 +157,7 @@
    /**
     * 构建前端路由所需要的菜单
     *
     *
     * @param menus 菜单列表
     * @return 路由列表
     */
@@ -215,7 +215,7 @@
    /**
     * 构建前端所需要树结构
     *
     *
     * @param menus 菜单列表
     * @return 树结构列表
     */
@@ -243,7 +243,7 @@
    /**
     * 构建前端所需要下拉树结构
     *
     *
     * @param menus 菜单列表
     * @return 下拉树结构列表
     */
@@ -256,7 +256,7 @@
    /**
     * 根据菜单ID查询信息
     *
     *
     * @param menuId 菜单ID
     * @return 菜单信息
     */
@@ -268,7 +268,7 @@
    /**
     * 是否存在菜单子节点
     *
     *
     * @param menuId 菜单ID
     * @return 结果
     */
@@ -281,7 +281,7 @@
    /**
     * 查询菜单使用数量
     *
     *
     * @param menuId 菜单ID
     * @return 结果
     */
@@ -294,7 +294,7 @@
    /**
     * 新增保存菜单信息
     *
     *
     * @param menu 菜单信息
     * @return 结果
     */
@@ -306,7 +306,7 @@
    /**
     * 修改保存菜单信息
     *
     *
     * @param menu 菜单信息
     * @return 结果
     */
@@ -318,7 +318,7 @@
    /**
     * 删除菜单管理信息
     *
     *
     * @param menuId 菜单ID
     * @return 结果
     */
@@ -330,7 +330,7 @@
    /**
     * 校验菜单名称是否唯一
     *
     *
     * @param menu 菜单信息
     * @return 结果
     */
@@ -347,8 +347,25 @@
    }
    /**
     * 添加只看我
     * @param menus
     * @param roleId
     */
    @Override
    public void addIsRersonal(List<SysMenu> menus, Long roleId) {
        // 查询只看我菜单id
        List<Long> menuIds = roleMenuMapper.selectIsRersonalMenu(roleId);
        for (SysMenu menu : menus) {
            if (menuIds.contains(menu.getMenuId())) {
                menu.setIsRersonal(1);
            }
        }
    }
    /**
     * 获取路由名称
     *
     *
     * @param menu 菜单信息
     * @return 路由名称
     */
@@ -364,7 +381,7 @@
    /**
     * 获取路由名称,如没有配置路由名称则取路由地址
     *
     *
     * @param routerName 路由名称
     * @param path 路由地址
     * @return 路由名称(驼峰格式)
@@ -377,7 +394,7 @@
    /**
     * 获取路由地址
     *
     *
     * @param menu 菜单信息
     * @return 路由地址
     */
@@ -405,7 +422,7 @@
    /**
     * 获取组件信息
     *
     *
     * @param menu 菜单信息
     * @return 组件信息
     */
@@ -429,7 +446,7 @@
    /**
     * 是否为菜单内部跳转
     *
     *
     * @param menu 菜单信息
     * @return 结果
     */
@@ -441,7 +458,7 @@
    /**
     * 是否为内链组件
     *
     *
     * @param menu 菜单信息
     * @return 结果
     */
@@ -452,7 +469,7 @@
    /**
     * 是否为parent_view组件
     *
     *
     * @param menu 菜单信息
     * @return 结果
     */
@@ -463,7 +480,7 @@
    /**
     * 根据父节点的ID获取所有子节点
     *
     *
     * @param list 分类表
     * @param parentId 传入的父节点ID
     * @return String
@@ -486,7 +503,7 @@
    /**
     * 递归列表
     *
     *
     * @param list 分类表
     * @param t 子节点
     */
@@ -532,7 +549,7 @@
    /**
     * 内链域名特殊字符替换
     *
     *
     * @return 替换后的内链域名
     */
    public String innerLinkReplaceEach(String path)
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -5,6 +5,9 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -27,7 +30,7 @@
/**
 * 角色 业务层处理
 *
 *
 * @author ruoyi
 */
@Service
@@ -47,7 +50,7 @@
    /**
     * 根据条件分页查询角色数据
     *
     *
     * @param role 角色信息
     * @return 角色数据集合信息
     */
@@ -60,7 +63,7 @@
    /**
     * 根据用户ID查询角色
     *
     *
     * @param userId 用户ID
     * @return 角色列表
     */
@@ -85,7 +88,7 @@
    /**
     * 根据用户ID查询权限
     *
     *
     * @param userId 用户ID
     * @return 权限列表
     */
@@ -106,7 +109,7 @@
    /**
     * 查询所有角色
     *
     *
     * @return 角色列表
     */
    @Override
@@ -117,7 +120,7 @@
    /**
     * 根据用户ID获取角色选择框列表
     *
     *
     * @param userId 用户ID
     * @return 选中角色ID列表
     */
@@ -129,7 +132,7 @@
    /**
     * 通过角色ID查询角色
     *
     *
     * @param roleId 角色ID
     * @return 角色对象信息
     */
@@ -141,7 +144,7 @@
    /**
     * 校验角色名称是否唯一
     *
     *
     * @param role 角色信息
     * @return 结果
     */
@@ -159,7 +162,7 @@
    /**
     * 校验角色权限是否唯一
     *
     *
     * @param role 角色信息
     * @return 结果
     */
@@ -177,7 +180,7 @@
    /**
     * 校验角色是否允许操作
     *
     *
     * @param role 角色信息
     */
    @Override
@@ -191,7 +194,7 @@
    /**
     * 校验角色是否有数据权限
     *
     *
     * @param roleIds 角色id
     */
    @Override
@@ -214,7 +217,7 @@
    /**
     * 通过角色ID查询角色使用数量
     *
     *
     * @param roleId 角色ID
     * @return 结果
     */
@@ -226,7 +229,7 @@
    /**
     * 新增保存角色信息
     *
     *
     * @param role 角色信息
     * @return 结果
     */
@@ -241,7 +244,7 @@
    /**
     * 修改保存角色信息
     *
     *
     * @param role 角色信息
     * @return 结果
     */
@@ -258,7 +261,7 @@
    /**
     * 修改角色状态
     *
     *
     * @param role 角色信息
     * @return 结果
     */
@@ -270,7 +273,7 @@
    /**
     * 修改数据权限信息
     *
     *
     * @param role 角色信息
     * @return 结果
     */
@@ -288,7 +291,7 @@
    /**
     * 新增角色菜单信息
     *
     *
     * @param role 角色对象
     */
    public int insertRoleMenu(SysRole role)
@@ -301,7 +304,16 @@
            SysRoleMenu rm = new SysRoleMenu();
            rm.setRoleId(role.getRoleId());
            rm.setMenuId(menuId);
            // 判断是否有只看我权限
            if (ArrayUtils.isNotEmpty(role.getIsRersonalMenuIds())) {
                for (Long isRersonalMenuId : role.getIsRersonalMenuIds()) {
                    if (isRersonalMenuId.equals(menuId)) {
                        rm.setIsRersonal(1);
                    }
                }
            }
            list.add(rm);
        }
        if (list.size() > 0)
        {
@@ -336,7 +348,7 @@
    /**
     * 通过角色ID删除角色
     *
     *
     * @param roleId 角色ID
     * @return 结果
     */
@@ -353,7 +365,7 @@
    /**
     * 批量删除角色信息
     *
     *
     * @param roleIds 需要删除的角色ID
     * @return 结果
     */
@@ -380,7 +392,7 @@
    /**
     * 取消授权用户角色
     *
     *
     * @param userRole 用户和角色关联信息
     * @return 结果
     */
@@ -392,7 +404,7 @@
    /**
     * 批量取消授权用户角色
     *
     *
     * @param roleId 角色ID
     * @param userIds 需要取消授权的用户数据ID
     * @return 结果
@@ -405,7 +417,7 @@
    /**
     * 批量选择授权用户角色
     *
     *
     * @param roleId 角色ID
     * @param userIds 需要授权的用户数据ID
     * @return 结果
ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml
@@ -26,6 +26,14 @@
        group by sm.menu_id
    </select>
    <!-- 查询只看我菜单id -->
    <select id="selectIsRersonalMenu" resultType="java.lang.Long">
        select menu_id
        from sys_role_menu
        where role_id = #{roleId}
        and is_rersonal = 1
    </select>
    <delete id="deleteRoleMenuByRoleId" parameterType="Long">
        delete from sys_role_menu where role_id=#{roleId}
    </delete>
@@ -38,9 +46,9 @@
     </delete>
    <insert id="batchRoleMenu">
        insert into sys_role_menu(role_id, menu_id) values
        insert into sys_role_menu(role_id, menu_id, is_rersonal) values
        <foreach item="item" index="index" collection="list" separator=",">
            (#{item.roleId},#{item.menuId})
            (#{item.roleId},#{item.menuId},#{item.isRersonal})
        </foreach>
    </insert>