SysMenuMapper.xml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.xunmei.system.mapper.SysMenuMapper">
  6. <resultMap type="com.xunmei.system.domain.SysMenu" id="SysMenuResult">
  7. <id property="id" column="id"/>
  8. <result property="menuName" column="menu_name"/>
  9. <result property="parentId" column="parent_id"/>
  10. <result property="orderNum" column="order_num"/>
  11. <result property="path" column="path"/>
  12. <result property="component" column="component"/>
  13. <result property="query" column="query"/>
  14. <result property="isFrame" column="is_frame"/>
  15. <result property="isCache" column="is_cache"/>
  16. <result property="menuType" column="menu_type"/>
  17. <result property="visible" column="visible"/>
  18. <result property="status" column="status"/>
  19. <result property="perms" column="perms"/>
  20. <result property="platformType" column="platform_type"/>
  21. <result property="icon" column="icon"/>
  22. <result property="createBy" column="create_by"/>
  23. <result property="createTime" column="create_time"/>
  24. <result property="updateTime" column="update_time"/>
  25. <result property="updateBy" column="update_by"/>
  26. </resultMap>
  27. <sql id="selectMenuVo">
  28. select id,
  29. menu_name,
  30. parent_id,
  31. order_num,
  32. path,
  33. component,
  34. `query`,
  35. platform_type,
  36. is_frame,
  37. is_cache,
  38. menu_type,
  39. visible,
  40. status,
  41. ifnull(perms, '') as perms,
  42. icon,
  43. create_time
  44. from sys_menu
  45. </sql>
  46. <select id="selectMenuList" parameterType="com.xunmei.system.domain.SysMenu" resultMap="SysMenuResult">
  47. <include refid="selectMenuVo"/>
  48. <where>
  49. <if test="menuName != null and menuName != ''">
  50. AND menu_name like concat('%', #{menuName}, '%')
  51. </if>
  52. <if test="visible != null and visible != ''">
  53. AND visible = #{visible}
  54. </if>
  55. <if test="status != null and status != ''">
  56. AND status = #{status}
  57. </if>
  58. </where>
  59. order by parent_id, order_num
  60. </select>
  61. <select id="selectMenuTreeAll" resultMap="SysMenuResult">
  62. select distinct m.id,
  63. m.parent_id,
  64. m.menu_name,
  65. m.path,
  66. m.component,
  67. m.`query`,
  68. m.visible,
  69. m.status,
  70. ifnull(m.perms, '') as perms,
  71. m.is_frame,
  72. m.is_cache,
  73. m.menu_type,
  74. m.icon,
  75. m.order_num,
  76. m.create_time
  77. from sys_menu m
  78. where m.menu_type in ('M', 'C')
  79. and m.status = 0
  80. and m.platform_type = #{platformType}
  81. order by m.parent_id, m.order_num
  82. </select>
  83. <select id="selectMenuListByUserId" parameterType="com.xunmei.system.domain.SysMenu" resultMap="SysMenuResult">
  84. SELECT DISTINCT
  85. m.id,
  86. m.parent_id,
  87. m.menu_name,
  88. m.path,
  89. m.component,
  90. m.`query`,
  91. m.visible,
  92. m.`status`,
  93. ifnull( m.perms, '' ) AS perms,
  94. m.is_frame,
  95. m.is_cache,
  96. m.menu_type,
  97. m.icon,
  98. m.order_num,
  99. m.is_frame,
  100. m.create_time,
  101. m.perms,
  102. m.platform_type,
  103. m.image_path,
  104. m.create_by,
  105. m.create_time,
  106. m.update_by,
  107. m.update_time,m.remark
  108. FROM
  109. sys_menu m
  110. LEFT JOIN sys_role_menu rm ON m.id = rm.menu_id
  111. LEFT JOIN sys_user_role ur ON rm.role_id = ur.role_id
  112. LEFT JOIN sys_role ro ON ur.role_id = ro.id
  113. where ur.user_id = #{params.userId}
  114. <if test="menuName != null and menuName != ''">
  115. AND m.menu_name like concat('%', #{menuName}, '%')
  116. </if>
  117. <if test="visible != null and visible != ''">
  118. AND m.visible = #{visible}
  119. </if>
  120. <if test="status != null and status != ''">
  121. AND m.status = #{status}
  122. </if>
  123. <if test="platformType != null and platformType != ''">
  124. AND m.platform_type = #{platformType}
  125. </if>
  126. order by m.platform_type,m.parent_id, m.order_num
  127. </select>
  128. <select id="selectMenuTreeByUserId" parameterType="Long" resultMap="SysMenuResult">
  129. SELECT DISTINCT
  130. m.id,
  131. m.parent_id,
  132. m.menu_name,
  133. m.path,
  134. m.component,
  135. m.`query`,
  136. m.visible,
  137. m.STATUS,
  138. ifnull( m.perms, '' ) AS perms,
  139. m.is_frame,
  140. m.is_cache,
  141. m.menu_type,
  142. m.icon,
  143. m.order_num,
  144. m.create_time
  145. FROM sys_menu m
  146. LEFT JOIN sys_role_menu rm ON m.id = rm.menu_id
  147. LEFT JOIN sys_user_role ur ON rm.role_id = ur.role_id
  148. LEFT JOIN sys_role ro ON ur.role_id = ro.id
  149. LEFT JOIN sys_user u ON ur.user_id = u.id
  150. WHERE u.id = #{userId}
  151. AND m.menu_type IN ('M', 'C')
  152. <if test="platformType != null and platformType != ''">
  153. AND m.platform_type = #{platformType}
  154. </if>
  155. AND m.STATUS = 0
  156. AND ro.STATUS = 0
  157. ORDER BY m.parent_id,
  158. m.order_num
  159. </select>
  160. <select id="selectMenuListByRoleId" resultType="Long">
  161. select m.id
  162. from sys_menu m
  163. left join sys_role_menu rm on m.id = rm.menu_id
  164. where rm.role_id = #{roleId}
  165. <if test="menuCheckStrictly">
  166. and m.id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.id = rm.menu_id and
  167. rm.role_id = #{roleId})
  168. </if>
  169. order by m.parent_id, m.order_num
  170. </select>
  171. <select id="selectMenuPerms" resultType="String">
  172. select distinct m.perms
  173. from sys_menu m
  174. left join sys_role_menu rm on m.menu_id = rm.menu_id
  175. left join sys_user_role ur on rm.role_id = ur.role_id
  176. </select>
  177. <select id="selectMenuPermsByUserId" parameterType="Long" resultType="String">
  178. SELECT DISTINCT m.perms
  179. FROM sys_menu m
  180. LEFT JOIN sys_role_menu rm ON m.id = rm.menu_id
  181. LEFT JOIN sys_user_role ur ON rm.role_id = ur.role_id
  182. LEFT JOIN sys_role r ON r.id = ur.role_id
  183. where m.status = '0'
  184. and r.status = '0'
  185. and ur.user_id = #{userId}
  186. </select>
  187. <select id="selectMenuPermsByRoleId" parameterType="Long" resultType="String">
  188. select distinct m.perms
  189. from sys_menu m
  190. left join sys_role_menu rm on m.id = rm.menu_id
  191. where m.status = '0'
  192. and rm.role_id = #{roleId}
  193. </select>
  194. <select id="selectMenuById" parameterType="Long" resultMap="SysMenuResult">
  195. <include refid="selectMenuVo"/>
  196. where id = #{id}
  197. </select>
  198. <select id="hasChildByMenuId" resultType="Integer">
  199. select count(1)
  200. from sys_menu
  201. where parent_id = #{menuId}
  202. </select>
  203. <select id="checkMenuNameUnique" parameterType="com.xunmei.system.domain.SysMenu" resultMap="SysMenuResult">
  204. <include refid="selectMenuVo"/>
  205. where menu_name=#{menuName} and parent_id = #{parentId} limit 1
  206. </select>
  207. <update id="updateMenu" parameterType="com.xunmei.system.domain.SysMenu">
  208. update sys_menu
  209. <set>
  210. <if test="menuName != null and menuName != ''">
  211. menu_name = #{menuName},
  212. </if>
  213. <if test="parentId != null">
  214. parent_id = #{parentId},
  215. </if>
  216. <if test="orderNum != null">
  217. order_num = #{orderNum},
  218. </if>
  219. <if test="path != null and path != ''">
  220. path = #{path},
  221. </if>
  222. <if test="component != null">
  223. component = #{component},
  224. </if>
  225. <if test="query != null">
  226. `query` = #{query},
  227. </if>
  228. <if test="isFrame != null and isFrame != ''">
  229. is_frame = #{isFrame},
  230. </if>
  231. <if test="isCache != null and isCache != ''">
  232. is_cache = #{isCache},
  233. </if>
  234. <if test="menuType != null and menuType != ''">
  235. menu_type = #{menuType},
  236. </if>
  237. <if test="platformType != null and platformType != ''">
  238. platform_type = #{platformType},
  239. </if>
  240. <if test="visible != null">
  241. visible = #{visible},
  242. </if>
  243. <if test="status != null">
  244. status = #{status},
  245. </if>
  246. <if test="perms !=null">
  247. perms = #{perms},
  248. </if>
  249. <if test="icon !=null and icon != ''">
  250. icon = #{icon},
  251. </if>
  252. <if test="remark != null and remark != ''">
  253. remark = #{remark},
  254. </if>
  255. <if test="updateBy != null and updateBy != ''">
  256. update_by = #{updateBy},
  257. </if>
  258. update_time = sysdate()
  259. </set>
  260. where id = #{id}
  261. </update>
  262. <insert id="insertMenu" parameterType="com.xunmei.system.domain.SysMenu">
  263. insert into sys_menu(
  264. <if test="id != null and id != 0">
  265. id,
  266. </if>
  267. <if test="parentId != null and parentId != 0">
  268. parent_id,
  269. </if>
  270. <if test="menuName != null and menuName != ''">
  271. menu_name,
  272. </if>
  273. <if test="orderNum != null">
  274. order_num,
  275. </if>
  276. <if test="path != null and path != ''">
  277. path,
  278. </if>
  279. <if test="component != null and component != ''">
  280. component,
  281. </if>
  282. <if test="query != null and query != ''">
  283. `query`,
  284. </if>
  285. <if test="isFrame != null and isFrame != ''">
  286. is_frame,
  287. </if>
  288. <if test="isCache != null and isCache != ''">
  289. is_cache,
  290. </if>
  291. <if test="menuType != null and menuType != ''">
  292. menu_type,
  293. </if>
  294. <if test="platformType != null and platformType != ''">
  295. platform_type,
  296. </if>
  297. <if test="visible != null">
  298. visible,
  299. </if>
  300. <if test="status != null">
  301. status,
  302. </if>
  303. <if test="perms !=null and perms != ''">
  304. perms,
  305. </if>
  306. <if test="icon != null and icon != ''">
  307. icon,
  308. </if>
  309. <if test="remark != null and remark != ''">
  310. remark,
  311. </if>
  312. <if test="createBy != null and createBy != ''">
  313. create_by,
  314. </if>
  315. create_time
  316. )values(
  317. <if test="id != null and id != 0">
  318. #{id},
  319. </if>
  320. <if test="parentId != null and parentId != 0">
  321. #{parentId},
  322. </if>
  323. <if test="menuName != null and menuName != ''">
  324. #{menuName},
  325. </if>
  326. <if test="orderNum != null">
  327. #{orderNum},
  328. </if>
  329. <if test="path != null and path != ''">
  330. #{path},
  331. </if>
  332. <if test="component != null and component != ''">
  333. #{component},
  334. </if>
  335. <if test="query != null and query != ''">
  336. #{query},
  337. </if>
  338. <if test="isFrame != null and isFrame != ''">
  339. #{isFrame},
  340. </if>
  341. <if test="isCache != null and isCache != ''">
  342. #{isCache},
  343. </if>
  344. <if test="menuType != null and menuType != ''">
  345. #{menuType},
  346. </if>
  347. <if test="platformType != null and platformType != ''">
  348. #{platformType},
  349. </if>
  350. <if test="visible != null">
  351. #{visible},
  352. </if>
  353. <if test="status != null">
  354. #{status},
  355. </if>
  356. <if test="perms !=null and perms != ''">
  357. #{perms},
  358. </if>
  359. <if test="icon != null and icon != ''">
  360. #{icon},
  361. </if>
  362. <if test="remark != null and remark != ''">
  363. #{remark},
  364. </if>
  365. <if test="createBy != null and createBy != ''">
  366. #{createBy},
  367. </if>
  368. sysdate()
  369. )
  370. </insert>
  371. <delete id="deleteMenuById" parameterType="Long">
  372. delete
  373. from sys_menu
  374. where id = #{menuId}
  375. </delete>
  376. </mapper>