2024-08-17 12:11:19 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
< !DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace= "com.yanzhu.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= "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>
2024-08-25 21:25:51 +08:00
<resultMap id= "SysRoleSysRoleDeptResult" type= "SysRole" extends= "SysRoleResult" >
<collection property= "roleDeptList" notNullColumn= "sub_role_id" javaType= "java.util.List" resultMap= "SysRoleDeptResult" />
</resultMap>
<resultMap id= "SysRoleDeptResult" type= "SysRoleDept" >
<result property= "roleId" column= "sub_role_id" />
<result property= "deptId" column= "sub_dept_id" />
<result property= "deptName" column= "sub_dept_name" />
</resultMap>
2024-08-17 12:11:19 +08:00
<sql id= "selectRoleVo" >
2024-09-17 10:16:27 +08:00
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, rd.role_id as sub_role_id, rd.dept_id as sub_dept_id, d.dept_name as sub_dept_name
from sys_role r
left join sys_role_dept rd on rd.role_id = r.role_id
left join sys_dept d on d.dept_id = rd.dept_id
</sql>
<sql id= "queryRoleVo" >
2024-08-17 12:11:19 +08:00
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,
2024-09-17 10:16:27 +08:00
r.status, r.del_flag, r.create_time, r.remark, ur.role_id as sub_role_id, d.dept_id as sub_dept_id, d.dept_name as sub_dept_name
2024-08-17 12:11:19 +08:00
from sys_role r
left join sys_user_role ur on ur.role_id = r.role_id
left join sys_user u on u.user_id = ur.user_id
left join sys_dept d on u.dept_id = d.dept_id
</sql>
2024-08-25 21:25:51 +08:00
<select id= "selectRoleList" parameterType= "SysRole" resultMap= "SysRoleSysRoleDeptResult" >
2024-08-17 12:11:19 +08:00
<include refid= "selectRoleVo" />
where r.del_flag = '0'
<if test= "roleId != null and roleId != 0" >
AND r.role_id = #{roleId}
</if>
2024-08-25 21:25:51 +08:00
<if test= "deptId != null and deptId != 0" >
2024-09-17 10:16:27 +08:00
AND rd.dept_id = #{deptId}
2024-08-25 21:25:51 +08:00
</if>
2024-12-20 20:24:08 +08:00
<if test= "projectId != null and projectId != 0" >
AND (d.dept_id = #{projectId} or find_in_set(#{projectId},d.ancestors))
</if>
2024-08-17 12:11:19 +08:00
<if test= "roleName != null and roleName != ''" >
AND r.role_name like concat('%', #{roleName}, '%')
</if>
<if test= "status != null and status != ''" >
AND r.status = #{status}
</if>
<if test= "roleKey != null and roleKey != ''" >
AND r.role_key like concat('%', #{roleKey}, '%')
</if>
<if test= "params.beginTime != null and params.beginTime != ''" > <!-- 开始时间检索 -->
and date_format(r.create_time,'%y%m%d') > = date_format(#{params.beginTime},'%y%m%d')
</if>
<if test= "params.endTime != null and params.endTime != ''" > <!-- 结束时间检索 -->
and date_format(r.create_time,'%y%m%d') < = date_format(#{params.endTime},'%y%m%d')
</if>
<!-- 数据范围过滤 -->
${params.dataScope}
order by r.role_sort
</select>
2024-08-25 21:25:51 +08:00
2024-09-17 10:16:27 +08:00
<select id= "findDeptRoleListByDeptId" parameterType= "Long" resultMap= "SysRoleResult" >
2024-08-25 21:25:51 +08:00
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_role_dept rd on rd.role_id = r.role_id
2025-03-10 00:01:02 +08:00
where r.del_flag = '0' and (rd.dept_id = ${deptId} or FIND_IN_SET(rd.dept_id,(select ancestors from sys_dept where del_flag='0' and dept_id=${deptId})))
2024-08-25 21:25:51 +08:00
order by r.role_sort
</select>
2024-09-17 10:16:27 +08:00
2024-12-30 00:30:39 +08:00
<select id= "findDeptRoleListByDeptIdAndKey" resultMap= "SysRoleResult" >
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_role_dept rd on rd.role_id = r.role_id
where r.del_flag = '0' and rd.dept_id = ${deptId} and r.role_key like concat('%', #{roleKey}, '%')
order by r.role_sort
</select>
2024-09-17 10:16:27 +08:00
<select id= "findDeptRoleListByComId" parameterType= "Long" resultMap= "SysRoleSysRoleDeptResult" >
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, rd.role_id as sub_role_id, rd.dept_id as sub_dept_id, d.dept_name as sub_dept_name
from sys_role r
left join sys_role_dept rd on rd.role_id = r.role_id
left join sys_dept d on d.dept_id = rd.dept_id
where r.del_flag = '0' and rd.dept_id in (select sd.dept_id from sys_dept sd where sd.dept_id = #{comId} or FIND_IN_SET(#{comId},sd.ancestors))
order by r.role_sort
</select>
2024-08-25 21:25:51 +08:00
<select id= "selectRolePermissionByUserId" parameterType= "Long" resultMap= "SysRoleSysRoleDeptResult" >
2024-09-17 10:16:27 +08:00
<include refid= "queryRoleVo" />
2024-08-17 12:11:19 +08:00
WHERE r.del_flag = '0' and ur.user_id = #{userId}
</select>
2024-09-17 10:16:27 +08:00
<select id= "selectRolePermissionByUserIdAndDept" resultMap= "SysRoleSysRoleDeptResult" >
<include refid= "queryRoleVo" />
left join sys_role_dept rd on rd.role_id = r.role_id
WHERE r.del_flag = '0' and ur.user_id = #{userId} and rd.dept_id = #{deptId}
</select>
2024-08-25 21:25:51 +08:00
<select id= "selectRoleAll" resultMap= "SysRoleSysRoleDeptResult" >
2024-09-17 10:16:27 +08:00
<include refid= "queryRoleVo" />
2024-08-17 12:11:19 +08:00
</select>
<select id= "selectRoleListByUserId" parameterType= "Long" resultType= "Long" >
select r.role_id
from sys_role r
left join sys_user_role ur on ur.role_id = r.role_id
left join sys_user u on u.user_id = ur.user_id
where u.user_id = #{userId}
</select>
2024-08-25 21:25:51 +08:00
<select id= "selectRoleById" parameterType= "Long" resultMap= "SysRoleSysRoleDeptResult" >
2024-08-17 12:11:19 +08:00
<include refid= "selectRoleVo" />
where r.role_id = #{roleId}
</select>
2024-08-25 21:25:51 +08:00
<select id= "selectRolesByUserName" parameterType= "String" resultMap= "SysRoleSysRoleDeptResult" >
2024-09-17 10:16:27 +08:00
<include refid= "queryRoleVo" />
2024-08-17 12:11:19 +08:00
WHERE r.del_flag = '0' and u.user_name = #{userName}
</select>
2024-08-25 21:25:51 +08:00
<select id= "checkRoleNameUnique" parameterType= "String" resultMap= "SysRoleSysRoleDeptResult" >
2024-08-17 12:11:19 +08:00
<include refid= "selectRoleVo" />
where r.role_name=#{roleName} and r.del_flag = '0' limit 1
</select>
2024-08-25 21:25:51 +08:00
<select id= "checkRoleKeyUnique" parameterType= "String" resultMap= "SysRoleSysRoleDeptResult" >
2024-08-17 12:11:19 +08:00
<include refid= "selectRoleVo" />
where r.role_key=#{roleKey} and r.del_flag = '0' limit 1
</select>
<insert id= "insertRole" parameterType= "SysRole" useGeneratedKeys= "true" keyProperty= "roleId" >
insert into sys_role(
<if test= "roleId != null and roleId != 0" > role_id,</if>
<if test= "roleName != null and roleName != ''" > role_name,</if>
<if test= "roleKey != null and roleKey != ''" > role_key,</if>
<if test= "roleSort != null" > role_sort,</if>
<if test= "dataScope != null and dataScope != ''" > data_scope,</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 != ''" > create_by,</if>
create_time
)values(
<if test= "roleId != null and roleId != 0" > #{roleId},</if>
<if test= "roleName != null and roleName != ''" > #{roleName},</if>
<if test= "roleKey != null and roleKey != ''" > #{roleKey},</if>
<if test= "roleSort != null" > #{roleSort},</if>
<if test= "dataScope != null and dataScope != ''" > #{dataScope},</if>
<if test= "menuCheckStrictly != null" > #{menuCheckStrictly},</if>
<if test= "deptCheckStrictly != null" > #{deptCheckStrictly},</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>
sysdate()
)
</insert>
<update id= "updateRole" parameterType= "SysRole" >
update sys_role
<set >
<if test= "roleName != null and roleName != ''" > role_name = #{roleName},</if>
<if test= "roleKey != null and roleKey != ''" > role_key = #{roleKey},</if>
<if test= "roleSort != null" > 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>
update_time = sysdate()
</set>
where role_id = #{roleId}
</update>
<delete id= "deleteRoleById" parameterType= "Long" >
update sys_role set del_flag = '2' where role_id = #{roleId}
</delete>
<delete id= "deleteRoleByIds" parameterType= "Long" >
update sys_role set del_flag = '2' where role_id in
<foreach collection= "array" item= "roleId" open= "(" separator= "," close= ")" >
#{roleId}
</foreach>
</delete>
</mapper>