菜单&数据权限新增(展开/折叠 全选/全不选 父子联动)
This commit is contained in:
parent
16915d7c6b
commit
c11e1a5a2b
@ -177,41 +177,45 @@ create sequence seq_sys_role
|
||||
cache 20;
|
||||
|
||||
create table sys_role (
|
||||
role_id number(20) not null,
|
||||
role_name varchar2(30) not null,
|
||||
role_key varchar2(100) not null,
|
||||
role_sort number(4) not null,
|
||||
data_scope char(1) default '1',
|
||||
status char(1) not null,
|
||||
del_flag char(1) default '0',
|
||||
create_by varchar2(64) default '',
|
||||
create_time date,
|
||||
update_by varchar2(64) default '',
|
||||
update_time date,
|
||||
remark varchar2(500) default null
|
||||
role_id number(20) not null,
|
||||
role_name varchar2(30) not null,
|
||||
role_key varchar2(100) not null,
|
||||
role_sort number(4) not null,
|
||||
data_scope char(1) default '1',
|
||||
menu_check_strictly number(1) default 1,
|
||||
dept_check_strictly number(1) default 1,
|
||||
status char(1) not null,
|
||||
del_flag char(1) default '0',
|
||||
create_by varchar2(64) default '',
|
||||
create_time date,
|
||||
update_by varchar2(64) default '',
|
||||
update_time date,
|
||||
remark varchar2(500) default null
|
||||
);
|
||||
|
||||
alter table sys_role add constraint pk_sys_role primary key (role_id);
|
||||
|
||||
comment on table sys_role is '角色信息表';
|
||||
comment on column sys_role.role_id is '角色主键seq_sys_post.nextval';
|
||||
comment on column sys_role.role_name is '角色名称';
|
||||
comment on column sys_role.role_key is '角色权限字符串';
|
||||
comment on column sys_role.role_sort is '显示顺序';
|
||||
comment on column sys_role.data_scope is '数据范围(1:全部数据权限 2:自定数据权限)';
|
||||
comment on column sys_role.status is '角色状态(0正常 1停用)';
|
||||
comment on column sys_role.del_flag is '删除标志(0代表存在 2代表删除)';
|
||||
comment on column sys_role.create_by is '创建者';
|
||||
comment on column sys_role.create_time is '创建时间';
|
||||
comment on column sys_role.update_by is '更新者';
|
||||
comment on column sys_role.update_time is '更新时间';
|
||||
comment on column sys_role.remark is '备注';
|
||||
comment on table sys_role is '角色信息表';
|
||||
comment on column sys_role.role_id is '角色主键seq_sys_post.nextval';
|
||||
comment on column sys_role.role_name is '角色名称';
|
||||
comment on column sys_role.role_key is '角色权限字符串';
|
||||
comment on column sys_role.role_sort is '显示顺序';
|
||||
comment on column sys_role.data_scope is '数据范围(1:全部数据权限 2:自定数据权限)';
|
||||
comment on column sys_role.menu_check_strictly is '菜单树选择项是否关联显示';
|
||||
comment on column sys_role.dept_check_strictly is '部门树选择项是否关联显示';
|
||||
comment on column sys_role.status is '角色状态(0正常 1停用)';
|
||||
comment on column sys_role.del_flag is '删除标志(0代表存在 2代表删除)';
|
||||
comment on column sys_role.create_by is '创建者';
|
||||
comment on column sys_role.create_time is '创建时间';
|
||||
comment on column sys_role.update_by is '更新者';
|
||||
comment on column sys_role.update_time is '更新时间';
|
||||
comment on column sys_role.remark is '备注';
|
||||
|
||||
-- ----------------------------
|
||||
-- 初始化-角色信息表数据
|
||||
-- ----------------------------
|
||||
insert into sys_role values('1', '超级管理员', 'admin', 1, 1, '0', '0', 'admin', TO_DATE('2018-03-16 11-33-00', 'YYYY-MM-DD HH24:MI:SS'), 'ry', TO_DATE('2018-03-16 11-33-00', 'YYYY-MM-DD HH24:MI:SS'), '超级管理员');
|
||||
insert into sys_role values('2', '普通角色', 'common', 2, 2, '0', '0', 'admin', TO_DATE('2018-03-16 11-33-00', 'YYYY-MM-DD HH24:MI:SS'), 'ry', TO_DATE('2018-03-16 11-33-00', 'YYYY-MM-DD HH24:MI:SS'), '普通角色');
|
||||
insert into sys_role values('1', '超级管理员', 'admin', 1, 1, 1, 1, '0', '0', 'admin', TO_DATE('2018-03-16 11-33-00', 'YYYY-MM-DD HH24:MI:SS'), 'ry', TO_DATE('2018-03-16 11-33-00', 'YYYY-MM-DD HH24:MI:SS'), '超级管理员');
|
||||
insert into sys_role values('2', '普通角色', 'common', 2, 2, 1, 1, '0', '0', 'admin', TO_DATE('2018-03-16 11-33-00', 'YYYY-MM-DD HH24:MI:SS'), 'ry', TO_DATE('2018-03-16 11-33-00', 'YYYY-MM-DD HH24:MI:SS'), '普通角色');
|
||||
|
||||
|
||||
-- ----------------------------
|
||||
@ -883,7 +887,7 @@ create table sys_notice (
|
||||
notice_id number(20) not null,
|
||||
notice_title varchar2(50) not null,
|
||||
notice_type char(1) not null,
|
||||
notice_content blob default null,
|
||||
notice_content clob default null,
|
||||
status char(1) default '0',
|
||||
create_by varchar2(64) default '',
|
||||
create_time date,
|
@ -37,6 +37,12 @@ public class SysRole extends BaseEntity
|
||||
@Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限")
|
||||
private String dataScope;
|
||||
|
||||
/** 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */
|
||||
private boolean menuCheckStrictly;
|
||||
|
||||
/** 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */
|
||||
private boolean deptCheckStrictly;
|
||||
|
||||
/** 角色状态(0正常 1停用) */
|
||||
@Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
|
||||
private String status;
|
||||
@ -128,6 +134,26 @@ public class SysRole extends BaseEntity
|
||||
this.dataScope = dataScope;
|
||||
}
|
||||
|
||||
public boolean isMenuCheckStrictly()
|
||||
{
|
||||
return menuCheckStrictly;
|
||||
}
|
||||
|
||||
public void setMenuCheckStrictly(boolean menuCheckStrictly)
|
||||
{
|
||||
this.menuCheckStrictly = menuCheckStrictly;
|
||||
}
|
||||
|
||||
public boolean isDeptCheckStrictly()
|
||||
{
|
||||
return deptCheckStrictly;
|
||||
}
|
||||
|
||||
public void setDeptCheckStrictly(boolean deptCheckStrictly)
|
||||
{
|
||||
this.deptCheckStrictly = deptCheckStrictly;
|
||||
}
|
||||
|
||||
public String getStatus()
|
||||
{
|
||||
return status;
|
||||
@ -186,6 +212,8 @@ public class SysRole extends BaseEntity
|
||||
.append("roleKey", getRoleKey())
|
||||
.append("roleSort", getRoleSort())
|
||||
.append("dataScope", getDataScope())
|
||||
.append("menuCheckStrictly", isMenuCheckStrictly())
|
||||
.append("deptCheckStrictly", isDeptCheckStrictly())
|
||||
.append("status", getStatus())
|
||||
.append("delFlag", getDelFlag())
|
||||
.append("createBy", getCreateBy())
|
||||
|
@ -23,9 +23,10 @@ public interface SysDeptMapper
|
||||
* 根据角色ID查询部门树信息
|
||||
*
|
||||
* @param roleId 角色ID
|
||||
* @param deptCheckStrictly 部门树选择项是否关联显示
|
||||
* @return 选中部门列表
|
||||
*/
|
||||
public List<Integer> selectDeptListByRoleId(Long roleId);
|
||||
public List<Integer> selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly);
|
||||
|
||||
/**
|
||||
* 根据部门ID查询信息
|
||||
|
@ -61,9 +61,10 @@ public interface SysMenuMapper
|
||||
* 根据角色ID查询菜单树信息
|
||||
*
|
||||
* @param roleId 角色ID
|
||||
* @param menuCheckStrictly 菜单树选择项是否关联显示
|
||||
* @return 选中菜单列表
|
||||
*/
|
||||
public List<Integer> selectMenuListByRoleId(Long roleId);
|
||||
public List<Integer> selectMenuListByRoleId(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly);
|
||||
|
||||
/**
|
||||
* 根据菜单ID查询信息
|
||||
|
@ -12,7 +12,9 @@ import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
|
||||
import com.ruoyi.framework.web.domain.TreeSelect;
|
||||
import com.ruoyi.project.system.domain.SysDept;
|
||||
import com.ruoyi.project.system.domain.SysRole;
|
||||
import com.ruoyi.project.system.mapper.SysDeptMapper;
|
||||
import com.ruoyi.project.system.mapper.SysRoleMapper;
|
||||
import com.ruoyi.project.system.service.ISysDeptService;
|
||||
|
||||
/**
|
||||
@ -25,6 +27,9 @@ public class SysDeptServiceImpl implements ISysDeptService
|
||||
{
|
||||
@Autowired
|
||||
private SysDeptMapper deptMapper;
|
||||
|
||||
@Autowired
|
||||
private SysRoleMapper roleMapper;
|
||||
|
||||
/**
|
||||
* 查询部门管理数据
|
||||
@ -93,7 +98,8 @@ public class SysDeptServiceImpl implements ISysDeptService
|
||||
@Override
|
||||
public List<Integer> selectDeptListByRoleId(Long roleId)
|
||||
{
|
||||
return deptMapper.selectDeptListByRoleId(roleId);
|
||||
SysRole role = roleMapper.selectRoleById(roleId);
|
||||
return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -15,10 +15,12 @@ import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.framework.web.domain.TreeSelect;
|
||||
import com.ruoyi.project.system.domain.SysMenu;
|
||||
import com.ruoyi.project.system.domain.SysRole;
|
||||
import com.ruoyi.project.system.domain.SysUser;
|
||||
import com.ruoyi.project.system.domain.vo.MetaVo;
|
||||
import com.ruoyi.project.system.domain.vo.RouterVo;
|
||||
import com.ruoyi.project.system.mapper.SysMenuMapper;
|
||||
import com.ruoyi.project.system.mapper.SysRoleMapper;
|
||||
import com.ruoyi.project.system.mapper.SysRoleMenuMapper;
|
||||
import com.ruoyi.project.system.service.ISysMenuService;
|
||||
|
||||
@ -34,6 +36,9 @@ public class SysMenuServiceImpl implements ISysMenuService
|
||||
|
||||
@Autowired
|
||||
private SysMenuMapper menuMapper;
|
||||
|
||||
@Autowired
|
||||
private SysRoleMapper roleMapper;
|
||||
|
||||
@Autowired
|
||||
private SysRoleMenuMapper roleMenuMapper;
|
||||
@ -124,7 +129,8 @@ public class SysMenuServiceImpl implements ISysMenuService
|
||||
@Override
|
||||
public List<Integer> selectMenuListByRoleId(Long roleId)
|
||||
{
|
||||
return menuMapper.selectMenuListByRoleId(roleId);
|
||||
SysRole role = roleMapper.selectRoleById(roleId);
|
||||
return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -44,12 +44,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
order by d.parent_id, d.order_num
|
||||
</select>
|
||||
|
||||
<select id="selectDeptListByRoleId" parameterType="Long" resultType="Integer">
|
||||
select d.dept_id, d.parent_id
|
||||
<select id="selectDeptListByRoleId" resultType="Integer">
|
||||
select d.dept_id
|
||||
from sys_dept d
|
||||
left join sys_role_dept rd on d.dept_id = rd.dept_id
|
||||
where rd.role_id = #{roleId}
|
||||
and d.dept_id not in (select d.parent_id from sys_dept d inner join sys_role_dept rd on d.dept_id = rd.dept_id and rd.role_id = #{roleId})
|
||||
<if test="deptCheckStrictly">
|
||||
and d.dept_id not in (select d.parent_id from sys_dept d inner join sys_role_dept rd on d.dept_id = rd.dept_id and rd.role_id = #{roleId})
|
||||
</if>
|
||||
order by d.parent_id, d.order_num
|
||||
</select>
|
||||
|
||||
|
@ -82,12 +82,14 @@
|
||||
order by m.parent_id, m.order_num
|
||||
</select>
|
||||
|
||||
<select id="selectMenuListByRoleId" parameterType="Long" resultType="Integer">
|
||||
select m.menu_id, m.parent_id
|
||||
<select id="selectMenuListByRoleId" resultType="Integer">
|
||||
select m.menu_id
|
||||
from sys_menu m
|
||||
left join sys_role_menu rm on m.menu_id = rm.menu_id
|
||||
where rm.role_id = #{roleId}
|
||||
and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id = rm.menu_id and rm.role_id = #{roleId})
|
||||
<if test="menuCheckStrictly">
|
||||
and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id = rm.menu_id and rm.role_id = #{roleId})
|
||||
</if>
|
||||
order by m.parent_id, m.order_num
|
||||
</select>
|
||||
|
||||
|
@ -5,22 +5,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<mapper namespace="com.ruoyi.project.system.mapper.SysRoleMapper">
|
||||
|
||||
<resultMap type="SysRole" id="SysRoleResult">
|
||||
<id property="roleId" column="role_id" />
|
||||
<result property="roleName" column="role_name" />
|
||||
<result property="roleKey" column="role_key" />
|
||||
<result property="roleSort" column="role_sort" />
|
||||
<result property="dataScope" column="data_scope" />
|
||||
<result property="status" column="status" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="remark" column="remark" />
|
||||
<id property="roleId" column="role_id" />
|
||||
<result property="roleName" column="role_name" />
|
||||
<result property="roleKey" column="role_key" />
|
||||
<result property="roleSort" column="role_sort" />
|
||||
<result property="dataScope" column="data_scope" />
|
||||
<result property="menuCheckStrictly" column="menu_check_strictly" />
|
||||
<result property="deptCheckStrictly" column="dept_check_strictly" />
|
||||
<result property="status" column="status" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="remark" column="remark" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectRoleVo">
|
||||
select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope,
|
||||
select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly,
|
||||
r.status, r.del_flag, r.create_time, r.remark
|
||||
from sys_role r
|
||||
left join sys_user_role ur on ur.role_id = r.role_id
|
||||
@ -98,6 +100,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="roleKey != null and roleKey != ''">role_key,</if>
|
||||
<if test="roleSort != null and roleSort != ''">role_sort,</if>
|
||||
<if test="dataScope != null and dataScope != ''">data_scope,</if>
|
||||
<if test="menuCheckStrictly != null and menuCheckStrictly != ''">menu_check_strictly,</if>
|
||||
<if test="deptCheckStrictly != null and deptCheckStrictly != ''">dept_check_strictly,</if>
|
||||
<if test="status != null and status != ''">status,</if>
|
||||
<if test="remark != null and remark != ''">remark,</if>
|
||||
<if test="createBy != null and createBy != ''">create_by,</if>
|
||||
@ -108,6 +112,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="roleKey != null and roleKey != ''">#{roleKey},</if>
|
||||
<if test="roleSort != null and roleSort != ''">#{roleSort},</if>
|
||||
<if test="dataScope != null and dataScope != ''">#{dataScope},</if>
|
||||
<if test="menuCheckStrictly != null">#{menu_check_strictly},</if>
|
||||
<if test="deptCheckStrictly != null">#{dept_check_strictly},</if>
|
||||
<if test="status != null and status != ''">#{status},</if>
|
||||
<if test="remark != null and remark != ''">#{remark},</if>
|
||||
<if test="createBy != null and createBy != ''">#{createBy},</if>
|
||||
@ -122,6 +128,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="roleKey != null and roleKey != ''">role_key = #{roleKey},</if>
|
||||
<if test="roleSort != null and roleSort != ''">role_sort = #{roleSort},</if>
|
||||
<if test="dataScope != null and dataScope != ''">data_scope = #{dataScope},</if>
|
||||
<if test="menuCheckStrictly != null">menu_check_strictly = #{menuCheckStrictly},</if>
|
||||
<if test="deptCheckStrictly != null">dept_check_strictly = #{deptCheckStrictly},</if>
|
||||
<if test="status != null and status != ''">status = #{status},</if>
|
||||
<if test="remark != null">remark = #{remark},</if>
|
||||
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
|
||||
|
Loading…
Reference in New Issue
Block a user