wg-basic/module-permission/src/main/resources/mybatis/mapper/permission-mapper.xml
2021-02-02 08:30:42 +08:00

183 lines
5.8 KiB
XML

<?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="ink.wgink.service.permission.dao.IPermissionDao">
<resultMap id="permissionDTO" type="ink.wgink.pojo.dtos.permission.PermissionDTO">
<id column="permission_id" property="permissionId"/>
<result column="permission_title" property="permissionTitle"/>
<result column="permission_type" property="permissionType"/>
<result column="permission_url" property="permissionUrl"/>
<result column="permission_client_id" property="permissionClientId"/>
<result column="permission_client_name" property="permissionClientName"/>
<result column="is_public" property="isPublic"/>
</resultMap>
<!-- 新增权限 -->
<insert id="save" parameterType="map">
INSERT INTO sys_permission(
permission_id,
permission_title,
permission_type,
permission_url,
permission_client_id,
is_public,
creator,
gmt_create,
modifier,
gmt_modified,
is_delete
) VALUES(
#{permissionId},
#{permissionTitle},
#{permissionType},
#{permissionUrl},
#{permissionClientId},
#{isPublic},
#{creator},
#{gmtCreate},
#{modifier},
#{gmtModified},
#{isDelete}
)
</insert>
<!-- 删除权限 -->
<update id="remove" parameterType="map">
UPDATE
sys_permission
SET
is_delete = 1,
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
permission_id IN
<foreach collection="permissionIds" index="index" open="(" separator="," close=")">
#{permissionIds[${index}]}
</foreach>
</update>
<!-- 删除权限(物理) -->
<update id="delete" parameterType="map">
DELETE FROM
sys_permission
WHERE
permission_id IN
<foreach collection="permissionIds" index="index" open="(" separator="," close=")">
#{permissionIds[${index}]}
</foreach>
</update>
<!-- 修改权限 -->
<update id="update" parameterType="map">
UPDATE
sys_permission
SET
<if test="permissionTitle != null and permissionTitle != ''">
permission_title = #{permissionTitle},
</if>
<if test="permissionType != null and permissionType != ''">
permission_type = #{permissionType},
</if>
<if test="permissionUrl != null and permissionUrl != ''">
permission_url = #{permissionUrl},
</if>
<if test="permissionClientId != null and permissionClientId != ''">
permission_client_id = #{permissionClientId},
</if>
<if test="isPublic != null">
is_public = #{isPublic},
</if>
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
permission_id = #{permissionId}
</update>
<!-- 权限详情 -->
<select id="get" parameterType="map" resultMap="permissionDTO">
SELECT
t1.permission_title,
t1.permission_type,
t1.permission_url,
t1.permission_client_id,
t1.is_public,
t1.permission_id
FROM
sys_permission t1
WHERE
t1.is_delete = 0
<if test="permissionId != null and permissionId != ''">
AND
t1.permission_id = #{permissionId}
</if>
</select>
<!-- 权限列表 -->
<select id="list" parameterType="map" resultMap="permissionDTO">
SELECT
t1.permission_title,
t1.permission_type,
t1.permission_url,
t1.permission_client_id,
jt1.client_name permission_client_name,
t1.is_public,
t1.permission_id
FROM
sys_permission t1
LEFT JOIN
oauth_client_details jt1
ON
jt1.client_id = t1.permission_client_id
AND
jt1.is_delete = 0
WHERE
t1.is_delete = 0
<if test="keywords != null and keywords != ''">
AND (
t1.permission_title LIKE CONCAT('%', #{keywords}, '%')
OR
jt1.client_name LIKE CONCAT('%', #{keywords}, '%')
)
</if>
<if test="permissionType != null and permissionType != ''">
AND
t1.permission_type = #{permissionType}
</if>
<if test="permissionClientId != null and permissionClientId != ''">
AND
t1.permission_client_id = #{permissionClientId}
</if>
<if test="isPublic != null">
AND
t1.is_public = #{isPublic}
</if>
<if test="startTime != null and startTime != ''">
AND
LEFT(t1.gmt_create, 10) <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND
LEFT(t1.gmt_create, 10) <![CDATA[ <= ]]> #{endTime}
</if>
<if test="permissionIds != null and permissionIds.size > 0">
AND
t1.permission_id IN
<foreach collection="permissionIds" index="index" open="(" separator="," close=")">
#{permissionIds[${index}]}
</foreach>
</if>
ORDER BY
t1.permission_url
</select>
<!-- 权限统计 -->
<select id="count" parameterType="map" resultType="Integer">
SELECT
COUNT(*)
FROM
sys_permission t1
WHERE
t1.is_delete = 0
</select>
</mapper>