jiangping
2023-08-17 6365ab0a976afdd247742c9b3dca15deb3a7a7a1
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?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="doumeemes.dao.system.SystemPermissionMapper">
 
  <!-- 查询系统权限列表 -->
  <resultMap id="SystemPermissionListVO" type="doumeemes.dao.system.vo.SystemPermissionListVO" autoMapping="true">
    <id column="ID" property="id"/>
    <association property="createUserInfo" javaType="doumeemes.dao.system.model.SystemUser">
      <id column="CREATE_USER_ID" property="id"/>
      <result column="CREATE_USER_NAME" property="username"/>
    </association>
    <association property="updateUserInfo" javaType="doumeemes.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.`TYPE`,perm.`MODULE_ID`,  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 CONCAT('%', #{dto.code}, '%')
      </if>
      <if test="dto.name != null">
        AND perm.`NAME` LIKE CONCAT('%', #{dto.name}, '%')
      </if>
      <if test="dto.type != null">
        AND perm.`TYPE` = #{dto.type}
      </if>
      <if test="dto.moduleId != null">
        AND perm.`MODULE_ID` = #{dto.moduleId}
      </if>
    </where>
    ${orderByClause}
  </select>
 
  <!-- 根据用户ID查询权限 -->
  <select id="selectByUserId" parameterType="java.lang.Integer" resultType="doumeemes.dao.system.model.SystemPermission">
    SELECT
    perm.`TYPE`,perm.`MODULE_ID`,   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="findByUserModel"   resultType="doumeemes.dao.system.model.SystemPermission">
    SELECT
    perm.`TYPE`,perm.`MODULE_ID`,   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}
      <if test="dto.type != null" >
        and perm.TYPE = #{dto.type}
      </if>
      <if test="dto.companyId != null" >
        and role.COMPANY_ID = #{dto.companyId}
      </if>
      <if test="dto.roleType != null" >
        and role.TYPE = #{dto.roleType}
      </if>
    </where>
  </select>
 
  <!-- 根据角色ID查询权限 -->
  <select id="selectByRoleId" parameterType="java.lang.Integer" resultType="doumeemes.dao.system.model.SystemPermission">
    SELECT
    perm.`TYPE`,perm.`MODULE_ID`,  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
    <where>
      perm.DELETED = 0
      AND role_perm.ROLE_ID = #{roleId}
    </where>
  </select>
 
</mapper>