权限注解

This commit is contained in:
2025-12-05 11:41:21 +08:00
parent 917e9a517a
commit ab8be1a832
16 changed files with 450 additions and 487 deletions

View File

@@ -1,203 +0,0 @@
<?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="org.xyzh.system.mapper.dept.TbSysDeptRoleMapper">
<!-- 结果映射 -->
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.sys.TbSysDeptRoleDTO">
<!-- 部门角色关系字段 -->
<id column="dept_id" property="deptId" jdbcType="VARCHAR"/>
<id column="role_id" property="roleId" jdbcType="VARCHAR"/>
<!-- 基础字段 -->
<result column="optsn" property="optsn" jdbcType="VARCHAR"/>
<result column="creator" property="creator" jdbcType="VARCHAR"/>
<result column="updater" property="updater" jdbcType="VARCHAR"/>
<result column="dept_path" property="deptPath" jdbcType="VARCHAR"/>
<result column="remark" property="remark" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="DATE"/>
<result column="update_time" property="updateTime" jdbcType="DATE"/>
<result column="delete_time" property="deleteTime" jdbcType="DATE"/>
<result column="deleted" property="deleted" jdbcType="Boolean"/>
</resultMap>
<!-- VO结果映射用于前端展示 -->
<resultMap id="PermissionVOResultMap" type="org.xyzh.api.system.vo.PermissionVO">
<!-- 部门字段 -->
<result column="dept_id" property="deptId" jdbcType="VARCHAR"/>
<result column="dept_name" property="deptName" jdbcType="VARCHAR"/>
<result column="parent_id" property="deptParentId" jdbcType="VARCHAR"/>
<result column="dept_description" property="deptDescription" jdbcType="VARCHAR"/>
<!-- 角色字段 -->
<result column="role_id" property="roleId" jdbcType="VARCHAR"/>
<result column="role_name" property="roleName" jdbcType="VARCHAR"/>
<result column="role_description" property="roleDescription" jdbcType="VARCHAR"/>
<result column="scope" property="roleScope" jdbcType="VARCHAR"/>
<result column="owner_dept_id" property="roleOwnerDeptId" jdbcType="VARCHAR"/>
<result column="role_status" property="roleStatus" jdbcType="Boolean"/>
<!-- BaseVO 基础字段 -->
<result column="optsn" property="optsn" jdbcType="VARCHAR"/>
<result column="creator" property="creator" jdbcType="VARCHAR"/>
<result column="updater" property="updater" jdbcType="VARCHAR"/>
<result column="dept_path" property="deptPath" jdbcType="VARCHAR"/>
<result column="remark" property="remark" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="DATE"/>
<result column="update_time" property="updateTime" jdbcType="DATE"/>
<result column="delete_time" property="deleteTime" jdbcType="DATE"/>
<result column="deleted" property="deleted" jdbcType="Boolean"/>
</resultMap>
<!-- 基础列 -->
<sql id="Base_Column_List">
dept_id, role_id,
optsn, creator, updater, dept_path, remark, create_time, update_time, delete_time, deleted
</sql>
<!-- 插入系统部门角色关系(必填 + 可选字段动态列,仅修改 insert -->
<insert id="insertDeptRole" parameterType="org.xyzh.common.dto.sys.TbSysDeptRoleDTO">
INSERT INTO sys.tb_sys_dept_role
<trim prefix="(" suffix=")" suffixOverrides=",">
<!-- 必填字段dept_id, role_id, optsn -->
dept_id,
role_id,
optsn,
<!-- 可选字段:根据是否有值动态拼接 -->
<if test="creator != null and creator != ''">creator,</if>
<if test="deptPath != null and deptPath != ''">dept_path,</if>
<if test="remark != null and remark != ''">remark,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="deleteTime != null">delete_time,</if>
<if test="deleted != null">deleted,</if>
</trim>
VALUES
<trim prefix="(" suffix=")" suffixOverrides=",">
<!-- 必填字段值 -->
#{deptId},
#{roleId},
#{optsn},
<!-- 可选字段值 -->
<if test="creator != null and creator != ''">#{creator},</if>
<if test="deptPath != null and deptPath != ''">#{deptPath},</if>
<if test="remark != null and remark != ''">#{remark},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="deleteTime != null">#{deleteTime},</if>
<if test="deleted != null">#{deleted},</if>
</trim>
</insert>
<!-- 更新系统部门角色关系 -->
<update id="updateDeptRole" parameterType="org.xyzh.common.dto.sys.TbSysDeptRoleDTO">
UPDATE sys.tb_sys_dept_role
<set>
<if test="updater != null and updater != ''">
updater = #{updater},
</if>
<if test="deptPath != null and deptPath != ''">
dept_path = #{deptPath},
</if>
<if test="remark != null">
remark = #{remark},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set>
WHERE dept_id = #{deptId} AND role_id = #{roleId}
<if test="deleted != null">
AND deleted = #{deleted}
</if>
</update>
<!-- 删除系统部门角色关系 -->
<update id="deleteDeptRole" parameterType="org.xyzh.common.dto.sys.TbSysDeptRoleDTO">
UPDATE sys.tb_sys_dept_role
SET deleted = true,
delete_time = NOW()
WHERE dept_id = #{deptId} AND role_id = #{roleId}
</update>
<!-- 根据部门ID和角色ID查询系统部门角色关系 -->
<select id="getDeptRoleByDeptId" resultMap="PermissionVOResultMap">
SELECT
dr.dept_id, dr.role_id,
d.dept_id, d.name AS dept_name, d.parent_id, d.description AS dept_description,
r.role_id, r.name AS role_name, r.description AS role_description, r.scope, r.owner_dept_id, r.status AS role_status,
dr.optsn, dr.creator, dr.updater, dr.dept_path, dr.remark, dr.create_time, dr.update_time, dr.delete_time, dr.deleted
FROM sys.tb_sys_dept_role dr
LEFT JOIN sys.tb_sys_dept d ON dr.dept_id = d.dept_id AND (d.deleted IS NULL OR d.deleted = false)
LEFT JOIN sys.tb_sys_role r ON dr.role_id = r.role_id AND (r.deleted IS NULL OR r.deleted = false)
WHERE dr.dept_id = #{deptId} AND dr.role_id = #{roleId}
AND (dr.deleted IS NULL OR dr.deleted = false)
</select>
<!-- 根据条件查询系统部门角色关系列表 -->
<select id="getDeptRoleByFilter" resultMap="PermissionVOResultMap" parameterType="org.xyzh.common.dto.sys.TbSysDeptRoleDTO">
SELECT DISTINCT
dr.dept_id, dr.role_id,
d.dept_id, d.name AS dept_name, d.parent_id, d.description AS dept_description,
r.role_id, r.name AS role_name, r.description AS role_description, r.scope, r.owner_dept_id, r.status AS role_status,
dr.optsn, dr.creator, dr.updater, dr.dept_path, dr.remark, dr.create_time, dr.update_time, dr.delete_time, dr.deleted
FROM sys.tb_sys_dept_role dr
LEFT JOIN sys.tb_sys_dept d ON dr.dept_id = d.dept_id AND (d.deleted IS NULL OR d.deleted = false)
LEFT JOIN sys.tb_sys_role r ON dr.role_id = r.role_id AND (r.deleted IS NULL OR r.deleted = false)
<where>
<if test="filter.deptId != null and filter.deptId != ''">
AND dr.dept_id = #{filter.deptId}
</if>
<if test="filter.roleId != null and filter.roleId != ''">
AND dr.role_id = #{filter.roleId}
</if>
<if test="filter.deptPath != null and filter.deptPath != ''">
AND dr.dept_path LIKE CONCAT(#{filter.deptPath}, '%')
</if>
AND (dr.deleted IS NULL OR dr.deleted = false)
</where>
ORDER BY dr.create_time DESC
</select>
<!-- 根据条件查询系统部门角色关系分页列表 -->
<select id="getDeptRolePageByFilter" resultMap="PermissionVOResultMap">
SELECT DISTINCT
dr.dept_id, dr.role_id,
d.dept_id, d.name AS dept_name, d.parent_id, d.description AS dept_description,
r.role_id, r.name AS role_name, r.description AS role_description, r.scope, r.owner_dept_id, r.status AS role_status,
dr.optsn, dr.creator, dr.updater, dr.dept_path, dr.remark, dr.create_time, dr.update_time, dr.delete_time, dr.deleted
FROM sys.tb_sys_dept_role dr
LEFT JOIN sys.tb_sys_dept d ON dr.dept_id = d.dept_id AND (d.deleted IS NULL OR d.deleted = false)
LEFT JOIN sys.tb_sys_role r ON dr.role_id = r.role_id AND (r.deleted IS NULL OR r.deleted = false)
<where>
<if test="filter.deptId != null and filter.deptId != ''">
AND dr.dept_id = #{filter.deptId}
</if>
<if test="filter.roleId != null and filter.roleId != ''">
AND dr.role_id = #{filter.roleId}
</if>
<if test="filter.deptPath != null and filter.deptPath != ''">
AND dr.dept_path LIKE CONCAT(#{filter.deptPath}, '%')
</if>
AND (dr.deleted IS NULL OR dr.deleted = false)
</where>
ORDER BY dr.create_time DESC
LIMIT #{pageParam.pageSize} OFFSET #{pageParam.offset}
</select>
<!-- 根据条件查询系统部门角色关系数量 -->
<select id="getDeptRoleCount" resultType="java.lang.Integer" parameterType="org.xyzh.common.dto.sys.TbSysDeptRoleDTO">
SELECT COUNT(1)
FROM sys.tb_sys_dept_role
<where>
<if test="filter.deptId != null and filter.deptId != ''">
AND dept_id = #{filter.deptId}
</if>
<if test="filter.roleId != null and filter.roleId != ''">
AND role_id = #{filter.roleId}
</if>
<if test="filter.deptPath != null and filter.deptPath != ''">
AND dept_path LIKE CONCAT(#{filter.deptPath}, '%')
</if>
AND (deleted IS NULL OR deleted = false)
</where>
</select>
</mapper>

View File

@@ -1,6 +1,6 @@
<?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="org.xyzh.system.mapper.permission.TbSysViewPermissionMapper">
<mapper namespace="org.xyzh.system.mapper.view.TbSysViewPermissionMapper">
<!-- 结果映射 -->
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.sys.TbSysViewPermissionDTO">