RoleMapper.xml 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.jeeplus.modules.sys.mapper.RoleMapper">
  4. <resultMap id="roleResult" type="Role">
  5. <id property="id" column="id" />
  6. <result property="name" column="name" />
  7. <result property="enname" column="enname" />
  8. <result property="roleType" column="roleType" />
  9. <result property="remarks" column="remarks" />
  10. <result property="useable" column="useable" />
  11. <result property="office.name" column="office.name" />
  12. <result property="sysData" column="sysData" />
  13. <collection property="menuList" ofType="Menu">
  14. <id property="id" column="menuList.id" />
  15. </collection>
  16. <collection property="dataRuleList" ofType="DataRule">
  17. <id property="id" column="dataRuleList.id" />
  18. </collection>
  19. </resultMap>
  20. <sql id="roleColumns">
  21. a.id,
  22. a.office_id AS "office.id",
  23. a.name,
  24. a.enname,
  25. a.role_type AS roleType,
  26. a.remarks,
  27. a.create_by AS "createBy.id",
  28. a.create_date,
  29. a.update_by AS "updateBy.id",
  30. a.update_date,
  31. a.del_flag,
  32. o.name AS "office.name",
  33. o.code,
  34. a.useable AS useable,
  35. a.is_sys AS sysData
  36. </sql>
  37. <select id="get" resultMap="roleResult">
  38. SELECT
  39. <include refid="roleColumns"/>,
  40. rm.menu_id AS "menuList.id",
  41. rd.datarule_id AS "dataRuleList.id"
  42. FROM sys_role a
  43. LEFT JOIN sys_office o ON o.id = a.office_id
  44. LEFT JOIN sys_role_menu rm ON rm.role_id = a.id
  45. LEFT JOIN sys_role_datarule rd ON rd.role_id = a.id
  46. WHERE a.id = #{id}
  47. </select>
  48. <select id="getByName" resultType="Role">
  49. SELECT
  50. <include refid="roleColumns"/>
  51. FROM sys_role a
  52. JOIN sys_office o ON o.id = a.office_id
  53. WHERE a.name = #{name} AND a.del_flag = #{DEL_FLAG_NORMAL}
  54. </select>
  55. <select id="getByEnname" resultType="Role">
  56. SELECT
  57. <include refid="roleColumns"/>
  58. FROM sys_role a
  59. JOIN sys_office o ON o.id = a.office_id
  60. WHERE a.enname = #{enname} AND a.del_flag = #{DEL_FLAG_NORMAL}
  61. </select>
  62. <select id="findList" resultMap="roleResult">
  63. SELECT <!-- DISTINCT -->
  64. <include refid="roleColumns"/>,
  65. rd.datarule_id AS "dataRuleList.id"
  66. FROM sys_role a
  67. LEFT JOIN sys_office o ON o.id = a.office_id
  68. LEFT JOIN sys_user_role ur ON ur.role_id = a.id
  69. LEFT JOIN sys_user u ON u.id = ur.user_id
  70. LEFT JOIN sys_role_datarule rd ON rd.role_id = a.id
  71. WHERE a.del_flag = #{DEL_FLAG_NORMAL} AND a.useable=#{useable}
  72. <if test="user != null and user.id != null and user.id != ''">
  73. AND u.id = #{user.id}
  74. </if>
  75. <if test="user != null and user.loginName != null and user.loginName != ''">
  76. AND u.login_name = #{user.loginName}
  77. </if>
  78. <if test="name != null and name != ''">
  79. AND a.name like
  80. <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
  81. <if test="dbName == 'mysql'">CONCAT('%', #{name}, '%')</if>
  82. <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
  83. </if>
  84. <if test="enname != null and enname != ''">
  85. AND a.enname like
  86. <if test="dbName == 'oracle'">'%'||#{enname}||'%'</if>
  87. <if test="dbName == 'mysql'">CONCAT('%', #{enname}, '%')</if>
  88. <if test="dbName == 'mssql'">'%'+#{enname}+'%'</if>
  89. </if>
  90. <!-- 数据范围过滤 -->
  91. ${dataScope}
  92. ORDER BY o.code, a.name
  93. </select>
  94. <select id="findAllList" resultType="Role">
  95. SELECT
  96. <include refid="roleColumns"/>
  97. FROM sys_role a
  98. LEFT JOIN sys_office o ON o.id = a.office_id
  99. WHERE a.del_flag = #{DEL_FLAG_NORMAL}
  100. ORDER BY o.code, a.name
  101. </select>
  102. <insert id="insert">
  103. INSERT INTO sys_role(
  104. id,
  105. office_id,
  106. name,
  107. enname,
  108. role_type,
  109. create_by,
  110. create_date,
  111. update_by,
  112. update_date,
  113. remarks,
  114. del_flag,
  115. is_sys,
  116. useable
  117. ) VALUES (
  118. #{id},
  119. #{office.id},
  120. #{name},
  121. #{enname},
  122. #{roleType},
  123. #{createBy.id},
  124. #{createDate},
  125. #{updateBy.id},
  126. #{updateDate},
  127. #{remarks},
  128. #{delFlag},
  129. #{sysData},
  130. #{useable}
  131. )
  132. </insert>
  133. <update id="update">
  134. UPDATE sys_role SET
  135. office_id = #{office.id},
  136. name = #{name},
  137. enname = #{enname},
  138. role_type = #{roleType},
  139. update_by = #{updateBy.id},
  140. update_date = #{updateDate},
  141. remarks = #{remarks},
  142. is_sys = #{sysData},
  143. useable = #{useable}
  144. WHERE id = #{id}
  145. </update>
  146. <delete id="deleteRoleMenu">
  147. DELETE FROM sys_role_menu WHERE role_id = #{id}
  148. </delete>
  149. <insert id="insertRoleMenu">
  150. INSERT INTO sys_role_menu(role_id, menu_id)
  151. <foreach collection="menuList" item="menu" separator=" union all ">
  152. SELECT #{id}, #{menu.id} ${dual}
  153. </foreach>
  154. </insert>
  155. <delete id="deleteRoleDataRule">
  156. DELETE FROM sys_role_datarule WHERE role_id = #{id}
  157. </delete>
  158. <insert id="insertRoleDataRule">
  159. INSERT INTO sys_role_datarule(role_id, datarule_id)
  160. <foreach collection="dataRuleList" item="dataRule" separator=" union all ">
  161. SELECT #{id}, #{dataRule.id} ${dual}
  162. </foreach>
  163. </insert>
  164. <update id="delete">
  165. DELETE FROM sys_role
  166. WHERE id = #{id}
  167. </update>
  168. <update id="deleteByLogic">
  169. UPDATE sys_role SET
  170. del_flag = #{DEL_FLAG_DELETE}
  171. WHERE id = #{id}
  172. </update>
  173. </mapper>