You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

99 lines
5.0 KiB

<?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.xjfast.mapper.RoleMapper">
<resultMap id="BaseResultMap" type="com.xjfast.entity.Role">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="role_name" jdbcType="VARCHAR" property="roleName" />
<result column="role_desc" jdbcType="VARCHAR" property="roleDesc" />
<result column="created_by" jdbcType="VARCHAR" property="createdBy" />
<result column="created_date" jdbcType="TIMESTAMP" property="createdDate" />
<result column="updated_by" jdbcType="VARCHAR" property="updatedBy" />
<result column="updated_date" jdbcType="TIMESTAMP" property="updatedDate" />
<result column="status" jdbcType="CHAR" property="status" />
</resultMap>
<!-- 删除用户下的角色信息 -->
<delete id="delUserRoleByUsername" parameterType="java.lang.String">
DELETE FROM user_role WHERE username = #{username,jdbcType=VARCHAR}
</delete>
<!-- 查询用户的角色数据 -->
<select id="getUserRolesByUsername" parameterType="java.lang.String" resultType="com.xjfast.entity.vo.UserRoleOutData">
SELECT ur.username, ur.role_id, ur.created_by, ur.created_date
FROM user_role ur WHERE ur.username = #{username,jdbcType=VARCHAR}
</select>
<!-- 批量插入用户和角色的关联表 -->
<insert id="batchInsertUserRoles" parameterType="java.util.List">
INSERT INTO user_role (username, role_id, created_by, created_date)
VALUES
<foreach collection="list" item="userRole" separator="," index="index">
(#{userRole.username}, #{userRole.roleId}, #{userRole.createdBy}, #{userRole.createdDate})
</foreach>
</insert>
<!-- 查询角色表数据 -->
<select id="getRolesByCon" parameterType="com.xjfast.entity.dto.RoleInData" resultType="com.xjfast.entity.vo.RoleOutData">
SELECT id, role_name, role_desc, created_by, created_date, updated_by, updated_date,
status
FROM role
<where>
<if test="roleName != null and roleName != ''"> AND role_name LIKE '%'+#{roleName}+'%'</if>
<if test="status != 'ALL'"> AND status = #{status}</if>
</where>
</select>
<!-- 获取所有的角色 -->
<select id="getALLRolesByCon" resultType="com.xjfast.entity.vo.RoleOutData">
SELECT id, role_name, role_desc, created_by, created_date, updated_by, updated_date,
status
FROM role
</select>
<!-- 新增一个角色 -->
<insert id="insertRole" parameterType="com.xjfast.entity.dto.RoleInData" useGeneratedKeys="true" keyProperty="id">
INSERT INTO role (role_name, role_desc, created_by, created_date, status)
VALUES (#{roleName,jdbcType=VARCHAR}, #{roleDesc,jdbcType=VARCHAR}, #{createdBy,jdbcType=VARCHAR},
#{createdDate,jdbcType=TIMESTAMP}, #{status,jdbcType=CHAR})
</insert>
<!-- 修改角色的属性值 -->
<update id="updateRoleById" parameterType="com.xjfast.entity.dto.RoleInData">
update role
set role_name = #{roleName,jdbcType=VARCHAR},
role_desc = #{roleDesc,jdbcType=VARCHAR},
updated_by = #{updatedBy,jdbcType=VARCHAR},
updated_date = #{updatedDate,jdbcType=TIMESTAMP},
status = #{status,jdbcType=CHAR}
WHERE id = #{id,jdbcType=INTEGER}
</update>
<!-- 查询用户的关联角色的数量 -->
<select id="countRoleUser" parameterType="java.lang.Integer" resultType="java.lang.Integer">
SELECT COUNT(1) FROM user_role WHERE role_id = #{id,jdbcType=INTEGER}
</select>
<!-- 删除角色(假删除) -->
<update id="delRoleById" parameterType="java.util.Map">
update role
set updated_by = #{updatedBy,jdbcType=VARCHAR},
updated_date = #{updatedDate,jdbcType=TIMESTAMP},
status = #{status,jdbcType=VARCHAR}
WHERE id = #{id,jdbcType=INTEGER}
</update>
<!-- 删除角色下的资源 -->
<delete id="delRoleResourceByCon" parameterType="java.lang.Integer">
DELETE FROM role_resource WHERE role_id = #{roleId,jdbcType=INTEGER}
</delete>
<!-- 获取所有的菜单功能 -->
<select id="getAllResources" parameterType="java.lang.String" resultType="com.xjfast.entity.vo.RoleMenuOutData">
SELECT rf.resource_id, rf.resource_name, rf.parent_resource, rf.status, rf.resource_type,
rf.resource_level, rf.have_child, rf.new_tab, rf.show_mark, rf.font_label, rf.resource_url,
rf.menu_set FROM resource_function rf
WHERE rf.item_type = #{itemType,jdbcType=VARCHAR}
</select>
<!-- 获取当前角色选择的菜单 -->
<select id="getCheckedMenus" parameterType="java.lang.Integer" resultType="java.lang.String">
SELECT DISTINCT resource_id FROM role_resource WHERE role_id = #{roleId,jdbcType=INTEGER}
</select>
<!-- 批量插入角色权限数据 -->
<insert id="batchInsertRoleResource" parameterType="java.util.List">
INSERT INTO role_resource (resource_id, role_id, created_by, created_date)
VALUES
<!-- 循环 -->
<foreach collection="list" item="roleMenu" separator="," index="index">
(#{roleMenu.resourceId}, #{roleMenu.roleId}, #{roleMenu.createdBy}, #{roleMenu.createdDate})
</foreach>
</insert>
</mapper>