<?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.tcm.training.admin.user.mapper.SysRoleMapper">
|
|
<select id="selectRolePage"
|
resultType="com.tcm.training.admin.user.row.RoleListRow">
|
SELECT
|
r.id,
|
r.role_name AS roleName,
|
COUNT(DISTINCT u.id) AS accountCount,
|
r.created_at AS createdAt,
|
r.remark
|
FROM sys_role r
|
LEFT JOIN sys_user_role ur ON ur.role_id = r.id
|
LEFT JOIN sys_user u ON u.id = ur.user_id AND u.deleted = 0
|
WHERE r.deleted = 0
|
<if test="roleName != null and roleName.trim() != ''">
|
AND r.role_name LIKE CONCAT('%', #{roleName}, '%')
|
</if>
|
GROUP BY r.id, r.role_name, r.created_at, r.remark
|
ORDER BY r.created_at DESC, r.id DESC
|
</select>
|
|
<select id="selectRoleDetail"
|
resultType="com.tcm.training.admin.user.row.RoleDetailRow">
|
SELECT
|
r.id,
|
r.role_name AS roleName,
|
r.role_code AS roleCode,
|
r.remark,
|
COUNT(DISTINCT u.id) AS accountCount,
|
r.created_at AS createdAt,
|
r.updated_at AS updatedAt
|
FROM sys_role r
|
LEFT JOIN sys_user_role ur ON ur.role_id = r.id
|
LEFT JOIN sys_user u ON u.id = ur.user_id AND u.deleted = 0
|
WHERE r.deleted = 0
|
AND r.id = #{id}
|
GROUP BY r.id, r.role_name, r.role_code, r.remark, r.created_at, r.updated_at
|
LIMIT 1
|
</select>
|
|
<select id="countAccountBindingsByRoleId" resultType="long">
|
SELECT COUNT(DISTINCT u.id)
|
FROM sys_user_role ur
|
INNER JOIN sys_user u ON u.id = ur.user_id AND u.deleted = 0
|
WHERE ur.role_id = #{roleId}
|
</select>
|
|
<select id="selectPermissionIdsByRoleId" resultType="long">
|
SELECT rm.menu_id
|
FROM sys_role_menu rm
|
INNER JOIN sys_menu m ON m.id = rm.menu_id
|
WHERE rm.role_id = #{roleId}
|
AND m.deleted = 0
|
AND m.status = 1
|
ORDER BY rm.menu_id ASC
|
</select>
|
|
</mapper>
|