jiaosong
2023-11-09 07f27cf186204bd998f1d25ef8d4e52e5dcdd34c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?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"/>
      <result column="create_real_name" property="realname"/>
    </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"/>
      <result column="update_real_name" property="realname"/>
    </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,create_user.realname create_real_name,
      update_user.id updete_user_id, update_user.username update_user_name,update_user.realname update_real_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>