MenuMapper.xml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  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.MenuMapper">
  4. <resultMap id="menuResult" type="Menu">
  5. <id property="id" column="id" />
  6. <result property="parentIds" column="parentIds" />
  7. <result property="name" column="name" />
  8. <result property="href" column="href" />
  9. <result property="target" column="target" />
  10. <result property="icon" column="icon" />
  11. <result property="sort" column="sort" />
  12. <result property="type" column="menu_type" />
  13. <result property="isShow" column="isShow" />
  14. <result property="permission" column="permission" />
  15. </resultMap>
  16. <resultMap id="menuChildrenResult" type="Menu">
  17. <id property="id" column="id" />
  18. <result property="parentIds" column="parentIds" />
  19. <result property="name" column="name" />
  20. <result property="href" column="href" />
  21. <result property="target" column="target" />
  22. <result property="icon" column="icon" />
  23. <result property="sort" column="sort" />
  24. <result property="type" column="menu_type" />
  25. <result property="isShow" column="isShow" />
  26. <result property="permission" column="permission" />
  27. <association property="hasChildren" column="id" select="hasChildren" />
  28. </resultMap>
  29. <resultMap id="menuDataRuleResult" type="Menu">
  30. <id property="id" column="id" />
  31. <result property="parentIds" column="parentIds" />
  32. <result property="name" column="name" />
  33. <result property="href" column="href" />
  34. <result property="target" column="target" />
  35. <result property="icon" column="icon" />
  36. <result property="sort" column="sort" />
  37. <result property="type" column="menu_type" />
  38. <result property="isShow" column="isShow" />
  39. <result property="permission" column="permission" />
  40. <collection property="dataRuleList" column="id" javaType="ArrayList"
  41. ofType="DataRule" select="findDataRuleList"/>
  42. </resultMap>
  43. <sql id="menuColumns">
  44. a.id,
  45. a.parent_id AS "parent.id",
  46. a.parent_ids,
  47. a.name,
  48. a.href,
  49. a.target,
  50. a.icon,
  51. a.sort,
  52. a.is_show,
  53. a.menu_type,
  54. a.permission,
  55. a.remarks,
  56. a.create_by AS "createBy.id",
  57. a.create_date,
  58. a.update_by AS "updateBy.id",
  59. a.update_date,
  60. a.del_flag,
  61. p.name AS "parent.name"
  62. </sql>
  63. <sql id="menuJoins">
  64. LEFT JOIN sys_menu p ON p.id = a.parent_id
  65. </sql>
  66. <select id="get" resultMap="menuResult">
  67. SELECT
  68. <include refid="menuColumns"/>
  69. FROM sys_menu a
  70. <include refid="menuJoins"/>
  71. WHERE a.id = #{id}
  72. </select>
  73. <select id="findUniqueByProperty" resultMap="menuResult" statementType="STATEMENT">
  74. select * from sys_menu where ${propertyName} = ${value}
  75. </select>
  76. <select id="getChildren" parameterType="String" resultMap="menuChildrenResult">
  77. select * from sys_menu where parent_id = #{id} ORDER BY sort
  78. </select>
  79. <select id="hasChildren" parameterType="String" resultType="Boolean">
  80. select case when exists(select 1 from sys_menu where parent_id = #{id}) then 1 else 0 end ${dual}
  81. </select>
  82. <select id="getParent" parameterType="String" resultMap="menuResult">
  83. select * from sys_menu where id = #{id}
  84. </select>
  85. <select id="findAllList" resultMap="menuResult">
  86. SELECT
  87. <include refid="menuColumns"/>
  88. FROM sys_menu a
  89. <include refid="menuJoins"/>
  90. WHERE a.del_flag = #{DEL_FLAG_NORMAL}
  91. ORDER BY a.sort
  92. </select>
  93. <select id="findAllDataRuleList" resultMap="menuDataRuleResult">
  94. SELECT
  95. <include refid="menuColumns"/>
  96. FROM sys_menu a
  97. <include refid="menuJoins"/>
  98. WHERE a.del_flag = #{DEL_FLAG_NORMAL}
  99. ORDER BY a.sort
  100. </select>
  101. <select id="findByParentIdsLike" resultMap="menuResult">
  102. SELECT
  103. a.id,
  104. a.parent_id AS "parent.id",
  105. a.parent_ids
  106. FROM sys_menu a
  107. WHERE a.del_flag = #{DEL_FLAG_NORMAL} AND a.parent_ids LIKE #{parentIds}
  108. ORDER BY a.sort
  109. </select>
  110. <select id="findByUserId" resultMap="menuResult">
  111. SELECT DISTINCT
  112. <include refid="menuColumns"/>
  113. FROM sys_menu a
  114. LEFT JOIN sys_menu p ON p.id = a.parent_id
  115. JOIN sys_role_menu rm ON rm.menu_id = a.id
  116. JOIN sys_role r ON r.id = rm.role_id AND r.useable='1'
  117. JOIN sys_user_role ur ON ur.role_id = r.id
  118. JOIN sys_user u ON u.id = ur.user_id AND u.id = #{userId}
  119. WHERE a.del_flag = #{DEL_FLAG_NORMAL} AND r.del_flag = #{DEL_FLAG_NORMAL} AND u.del_flag = #{DEL_FLAG_NORMAL}
  120. ORDER BY a.sort
  121. </select>
  122. <select id="findDataRuleList" resultType="DataRule" >
  123. SELECT
  124. a.id AS "id",
  125. a.menu_id AS "menuId",
  126. a.name AS "name",
  127. a.t_field AS "field",
  128. a.t_express AS "express",
  129. a.t_value AS "value",
  130. a.sql_segment AS "sqlSegment",
  131. a.remarks AS "remarks",
  132. a.del_flag AS "delFlag"
  133. FROM sys_datarule a
  134. <where>
  135. a.menu_id =#{id}
  136. </where>
  137. </select>
  138. <insert id="insert">
  139. INSERT INTO sys_menu(
  140. id,
  141. parent_id,
  142. parent_ids,
  143. name,
  144. href,
  145. target,
  146. icon,
  147. sort,
  148. menu_type,
  149. is_show,
  150. permission,
  151. create_by,
  152. create_date,
  153. update_by,
  154. update_date,
  155. remarks,
  156. del_flag
  157. ) VALUES (
  158. #{id},
  159. #{parent.id},
  160. #{parentIds},
  161. #{name},
  162. #{href},
  163. #{target},
  164. #{icon},
  165. #{sort},
  166. #{type},
  167. #{isShow},
  168. #{permission},
  169. #{createBy.id},
  170. #{createDate},
  171. #{updateBy.id},
  172. #{updateDate},
  173. #{remarks},
  174. #{delFlag}
  175. )
  176. </insert>
  177. <update id="update">
  178. UPDATE sys_menu SET
  179. parent_id = #{parent.id},
  180. parent_ids = #{parentIds},
  181. name = #{name},
  182. href = #{href},
  183. target = #{target},
  184. icon = #{icon},
  185. sort = #{sort},
  186. menu_type = #{type},
  187. is_show = #{isShow},
  188. permission = #{permission},
  189. update_by = #{updateBy.id},
  190. update_date = #{updateDate},
  191. remarks = #{remarks}
  192. WHERE id = #{id}
  193. </update>
  194. <update id="updateParentIds">
  195. UPDATE sys_menu SET
  196. parent_id = #{parent.id},
  197. parent_ids = #{parentIds}
  198. WHERE id = #{id}
  199. </update>
  200. <update id="updateSort">
  201. UPDATE sys_menu SET
  202. sort = #{sort}
  203. WHERE id = #{id}
  204. </update>
  205. <update id="delete">
  206. DELETE FROM sys_menu
  207. WHERE id = #{id} OR parent_ids LIKE
  208. <if test="dbName == 'oracle'">'%,'||#{id}||',%'</if>
  209. <if test="dbName == 'mysql'">CONCAT('%,', #{id}, ',%')</if>
  210. <if test="dbName == 'mssql'">'%'+#{id}+'%'</if>
  211. </update>
  212. <update id="deleteMenuRole">
  213. Delete from sys_role_menu where menu_id = #{menu_id}
  214. </update>
  215. <update id="deleteMenuDataRule">
  216. Delete FROM sys_datarule where menu_id = #{menu_id}
  217. </update>
  218. <update id="deleteByLogic">
  219. UPDATE sys_menu SET
  220. del_flag = #{DEL_FLAG_DELETE}
  221. WHERE id = #{id} OR parent_ids LIKE
  222. <if test="dbName == 'oracle'">'%,'||#{id}||',%'</if>
  223. <if test="dbName == 'mysql'">CONCAT('%,', #{id}, ',%')</if>
  224. <if test="dbName == 'mssql'">'%'+#{id}+'%'</if>
  225. </update>
  226. </mapper>