<?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.doumee.dao.system.SystemPermissionMapper"> 
 | 
  
 | 
  <!-- 查询系统权限列表 --> 
 | 
  <resultMap id="SystemPermissionListVO" type="com.doumee.dao.system.vo.SystemPermissionListVO" autoMapping="true"> 
 | 
    <id column="id" property="id"/> 
 | 
    <association property="createUserInfo" javaType="com.doumee.dao.system.model.SystemUser"> 
 | 
      <id column="create_user_id" property="id"/> 
 | 
      <result column="create_user_name" property="username"/> 
 | 
    </association> 
 | 
    <association property="updateUserInfo" javaType="com.doumee.dao.system.model.SystemUser"> 
 | 
      <id column="update_user_id" property="id"/> 
 | 
      <result column="update_user_name" property="username"/> 
 | 
    </association> 
 | 
  </resultMap> 
 | 
  <select id="selectManageList" resultMap="SystemPermissionListVO"> 
 | 
    select 
 | 
      perm.id, perm.code, perm.name, perm.remark, perm.fixed, perm.create_time, perm.update_time, perm.create_user, perm.update_user, perm.deleted, 
 | 
      create_user.id create_user_id, create_user.username create_user_name, 
 | 
      update_user.id updete_user_id, update_user.username update_user_name 
 | 
    from system_permission perm 
 | 
    left join "system_user" create_user on create_user.id = perm.create_user 
 | 
    left join "system_user" update_user on update_user.id = perm.update_user 
 | 
    <where> 
 | 
      perm.deleted = 0 
 | 
      <if test="dto.code != null"> 
 | 
        AND perm.code LIKE '%'||#{dto.code}||'%' 
 | 
      </if> 
 | 
      <if test="dto.name != null"> 
 | 
        AND perm.name LIKE  '%'||#{dto.name}||'%' 
 | 
      </if> 
 | 
    </where> 
 | 
    ${orderByClause} 
 | 
  </select> 
 | 
  
 | 
  <!-- 根据用户ID查询权限 --> 
 | 
  <select id="selectByUserId" resultType="com.doumee.dao.system.model.SystemPermission"> 
 | 
    select distinct 
 | 
      perm.id, perm.code, perm.name, perm.remark, perm.create_time, perm.update_time, perm.create_user, perm.update_user, perm.deleted 
 | 
    from system_permission perm 
 | 
    inner join system_role_permission role_perm on role_perm.permission_id = perm.id and role_perm.deleted = 0 
 | 
    inner join system_role role on role.id = role_perm.role_id and role.deleted = 0 
 | 
    inner join system_user_role user_role on user_role.role_id = role.id and user_role.deleted = 0 
 | 
    <where> 
 | 
      perm.deleted = 0 
 | 
      and user_role.user_id = #{userid} 
 | 
    </where> 
 | 
  </select> 
 | 
  
 | 
  <!-- 根据角色ID查询权限 --> 
 | 
  <select id="selectByRoleId" parameterType="java.lang.Integer" resultType="com.doumee.dao.system.model.SystemPermission"> 
 | 
    select 
 | 
      perm.id, perm.code, perm.name, perm.remark, perm.create_time, perm.update_time, perm.create_user, perm.update_user, perm.deleted 
 | 
    from system_permission perm 
 | 
    <where> 
 | 
      perm.deleted = 0 
 | 
      AND EXISTS ( SELECT 1 FROM system_role_permission role_perm WHERE role_perm.permission_id = perm.ID AND role_perm.deleted = 0 AND role_perm.role_id = #{roleid} ) 
 | 
    </where> 
 | 
  </select> 
 | 
  
 | 
</mapper> 
 |