MenuMapper.xml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572
  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="org.springblade.system.mapper.MenuMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="menuResultMap" type="org.springblade.system.entity.Menu">
  6. <id column="id" property="id"/>
  7. <result column="code" property="code"/>
  8. <result column="parent_id" property="parentId"/>
  9. <result column="name" property="name"/>
  10. <result column="alias" property="alias"/>
  11. <result column="path" property="path"/>
  12. <result column="source" property="source"/>
  13. <result column="sort" property="sort"/>
  14. <result column="category" property="category"/>
  15. <result column="action" property="action"/>
  16. <result column="is_open" property="isOpen"/>
  17. <result column="remark" property="remark"/>
  18. <result column="is_deleted" property="isDeleted"/>
  19. <result column="sys_id" property="sysId"/>
  20. <result column="text_info" property="textInfo"/>
  21. <result column="is_layout" property="isLayout"/>
  22. <result column="video_url" property="videoUrl"/>
  23. <result column="excel_url" property="excelUrl"/>
  24. </resultMap>
  25. <resultMap id="menuVOResultMap" type="org.springblade.system.vo.MenuVO">
  26. <id column="id" property="id"/>
  27. <result column="code" property="code"/>
  28. <result column="parent_id" property="parentId"/>
  29. <result column="name" property="name"/>
  30. <result column="alias" property="alias"/>
  31. <result column="path" property="path"/>
  32. <result column="source" property="source"/>
  33. <result column="sort" property="sort"/>
  34. <result column="category" property="category"/>
  35. <result column="action" property="action"/>
  36. <result column="is_open" property="isOpen"/>
  37. <result column="remark" property="remark"/>
  38. <result column="is_deleted" property="isDeleted"/>
  39. <result column="has_children" property="hasChildren"/>
  40. <result column="text_info" property="textInfo"/>
  41. <result column="is_layout" property="isLayout"/>
  42. <result column="video_url" property="videoUrl"/>
  43. <result column="excel_url" property="excelUrl"/>
  44. </resultMap>
  45. <resultMap id="treeNodeResultMap" type="org.springblade.system.user.vo.TreeNodeVO">
  46. <id column="id" property="id"/>
  47. <result column="parent_id" property="parentId"/>
  48. <result column="title" property="title"/>
  49. <result column="value" property="value"/>
  50. <result column="key" property="key"/>
  51. <result column="sysId" property="sysId"/>
  52. </resultMap>
  53. <select id="lazyList" resultMap="menuVOResultMap">
  54. SELECT
  55. menu.*,
  56. (
  57. SELECT
  58. CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END
  59. FROM
  60. blade_menu
  61. WHERE
  62. parent_id = menu.id AND is_deleted = 0
  63. ) AS "has_children"
  64. FROM
  65. blade_menu menu
  66. WHERE menu.is_deleted = 0
  67. <if test="param1!=null">
  68. and menu.parent_id = #{param1}
  69. </if>
  70. <if test="param2.name!=null and param2.name!=''">
  71. and menu.name like concat(concat('%', #{param2.name}),'%')
  72. </if>
  73. <if test="param2.code!=null and param2.code!=''">
  74. and menu.code like concat(concat('%', #{param2.code}),'%')
  75. </if>
  76. <if test="param2.alias!=null and param2.alias!=''">
  77. and menu.alias like concat(concat('%', #{param2.alias}),'%')
  78. </if>
  79. <if test="param2.sysId!=null and param2.sysId!=''">
  80. and menu.sys_id = #{param2.sysId}
  81. </if>
  82. ORDER BY menu.sort
  83. </select>
  84. <select id="lazyMenuList" resultMap="menuVOResultMap">
  85. SELECT
  86. menu.*,
  87. (
  88. SELECT
  89. CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END
  90. FROM
  91. blade_menu
  92. WHERE
  93. parent_id = menu.id AND is_deleted = 0 AND category = 1
  94. ) AS "has_children"
  95. FROM
  96. blade_menu menu
  97. WHERE menu.is_deleted = 0 AND menu.category = 1
  98. <if test="param1!=null">
  99. and menu.parent_id = #{param1}
  100. </if>
  101. <if test="param2.name!=null and param2.name!=''">
  102. and menu.name like concat(concat('%', #{param2.name}),'%')
  103. </if>
  104. <if test="param2.code!=null and param2.code!=''">
  105. and menu.code like concat(concat('%', #{param2.code}),'%')
  106. </if>
  107. <if test="param2.alias!=null and param2.alias!=''">
  108. and menu.alias like concat(concat('%', #{param2.alias}),'%')
  109. </if>
  110. ORDER BY menu.sort
  111. </select>
  112. <select id="tree" resultMap="treeNodeResultMap">
  113. select id, parent_id, name as title, id as "value", id as "key"
  114. from blade_menu
  115. where is_deleted = 0
  116. and category = 1
  117. </select>
  118. <select id="allMenu" resultMap="menuResultMap">
  119. select * from blade_menu where is_deleted = 0 and category = 1
  120. </select>
  121. <select id="allMenuBySysType" resultMap="menuResultMap">
  122. select a.*
  123. from blade_menu a,
  124. blade_client b
  125. where a.is_deleted = 0
  126. and a.sys_id = b.id
  127. and b.client_id = #{sysType}
  128. and (a.category = 1 or (a.is_show_button = 1 and a.category = 2))
  129. </select>
  130. <select id="roleMenu" resultMap="menuResultMap">
  131. select * from blade_menu where is_deleted = 0 and id IN
  132. ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
  133. <foreach collection="param1" index="index" item="item" open="(" separator="," close=")">
  134. #{item}
  135. </foreach>
  136. )
  137. <if test="param2!=null and param2>0">
  138. AND id IN
  139. (
  140. SELECT menu_id FROM blade_top_menu_setting WHERE top_menu_id = #{param2}
  141. )
  142. </if>
  143. </select>
  144. <select id="roleMenuByRoleId" resultMap="menuResultMap">
  145. select * from blade_menu where is_deleted = 0 and id IN
  146. ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
  147. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  148. #{item}
  149. </foreach>
  150. )
  151. </select>
  152. <select id="roleMenuByTopMenuId" resultMap="menuResultMap">
  153. select *
  154. from blade_menu
  155. where is_deleted = 0
  156. and id IN
  157. (
  158. SELECT menu_id
  159. FROM blade_top_menu_setting
  160. WHERE top_menu_id = #{param1}
  161. )
  162. </select>
  163. <select id="routes" resultMap="menuResultMap">
  164. SELECT
  165. *
  166. FROM
  167. blade_menu
  168. WHERE
  169. is_deleted = 0 and category = 1
  170. and id IN ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
  171. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  172. #{item}
  173. </foreach>
  174. )
  175. </select>
  176. <select id="allButtons" resultMap="menuResultMap">
  177. SELECT id,
  178. parent_id,
  179. CODE,
  180. NAME,
  181. alias,
  182. path,
  183. source,
  184. action,
  185. sort,
  186. text_info
  187. FROM
  188. blade_menu
  189. WHERE
  190. (
  191. category = 2
  192. OR id IN ( SELECT parent_id FROM blade_menu WHERE is_deleted = 0
  193. AND category = 2 )
  194. )
  195. AND is_deleted = 0
  196. and sys_id =(SELECT id from blade_client where client_id=#{param1})
  197. ORDER BY sort
  198. </select>
  199. <select id="buttons" resultMap="menuResultMap">
  200. SELECT * FROM (
  201. SELECT
  202. id,
  203. parent_id,
  204. code,
  205. name,
  206. alias,
  207. path,
  208. source,
  209. action,
  210. sort
  211. FROM
  212. blade_menu
  213. WHERE
  214. is_deleted = 0 and id IN (
  215. SELECT parent_id FROM blade_menu
  216. WHERE ( category = 2 AND id IN ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
  217. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  218. #{item}
  219. </foreach>
  220. ) ) )
  221. UNION ALL
  222. SELECT
  223. id,
  224. parent_id,
  225. code,
  226. name,
  227. alias,
  228. path,
  229. source,
  230. action,
  231. sort
  232. FROM
  233. blade_menu
  234. WHERE
  235. is_deleted = 0 and category = 2 AND id IN ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
  236. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  237. #{item}
  238. </foreach>)
  239. ) menu ORDER BY sort
  240. </select>
  241. <select id="buttonsByClientId" resultMap="menuResultMap">
  242. SELECT * FROM (
  243. SELECT
  244. id,
  245. parent_id,
  246. code,
  247. name,
  248. alias,
  249. path,
  250. source,
  251. action,
  252. sort,
  253. text_info
  254. FROM
  255. blade_menu
  256. WHERE
  257. is_deleted = 0 and id IN (
  258. SELECT parent_id FROM blade_menu
  259. WHERE ( category = 2 AND id IN ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
  260. <foreach collection="param1" index="index" item="item" open="(" separator="," close=")">
  261. #{item}
  262. </foreach>
  263. ) ) )
  264. and sys_id =(SELECT id from blade_client where client_id=#{param2})
  265. UNION ALL
  266. SELECT
  267. id,
  268. parent_id,
  269. code,
  270. name,
  271. alias,
  272. path,
  273. source,
  274. action,
  275. sort,
  276. text_info
  277. FROM
  278. blade_menu
  279. WHERE
  280. is_deleted = 0 and category = 2 AND id IN ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
  281. <foreach collection="param1" index="index" item="item" open="(" separator="," close=")">
  282. #{item}
  283. </foreach>)
  284. and sys_id =(SELECT id from blade_client where client_id=#{param2})
  285. ) menu ORDER BY sort
  286. </select>
  287. <select id="grantTree" resultMap="treeNodeResultMap">
  288. select id, parent_id, name as title, id as "value", id as "key", sys_id AS "sysId"
  289. from blade_menu
  290. where is_deleted = 0
  291. order by sort
  292. </select>
  293. <select id="grantTreeByRole" resultMap="treeNodeResultMap">
  294. select id, parent_id, name as title, id as "value", id as "key", sys_id AS "sysId" from blade_menu where
  295. is_deleted = 0
  296. and id in ( select menu_id from blade_role_menu where role_id in
  297. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  298. #{item}
  299. </foreach>
  300. )
  301. or id in (
  302. select parent_id from blade_menu where is_deleted = 0
  303. and id in ( select menu_id from blade_role_menu where role_id in
  304. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  305. #{item}
  306. </foreach>
  307. )
  308. )
  309. order by sort
  310. </select>
  311. <select id="grantTopTree" resultMap="treeNodeResultMap">
  312. select id, parent_id, name as title, id as "value", id as "key"
  313. from blade_menu
  314. where category = 1
  315. and is_deleted = 0
  316. order by sort
  317. </select>
  318. <select id="grantTopTreeByRole" resultMap="treeNodeResultMap">
  319. select id, parent_id, name as title, id as "value", id as "key" from blade_menu where category = 1 and
  320. is_deleted = 0
  321. and id in ( select menu_id from blade_role_menu where role_id in
  322. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  323. #{item}
  324. </foreach>
  325. )
  326. or id in (
  327. select parent_id from blade_menu where is_deleted = 0
  328. and id in ( select menu_id from blade_role_menu where role_id in
  329. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  330. #{item}
  331. </foreach>
  332. )
  333. )
  334. order by sort
  335. </select>
  336. <select id="grantDataScopeTree" resultMap="treeNodeResultMap">
  337. SELECT *
  338. FROM (
  339. SELECT id,
  340. parent_id,
  341. NAME AS title,
  342. id AS "value",
  343. id AS "key"
  344. FROM blade_menu
  345. WHERE category = 1
  346. AND is_deleted = 0
  347. AND id IN (SELECT menu_id FROM blade_scope_data WHERE is_deleted = 0 AND menu_id IS NOT NULL)
  348. ) menu
  349. UNION ALL
  350. SELECT id,
  351. menu_id AS parent_id,
  352. scope_name AS title,
  353. id AS "value",
  354. id AS "key"
  355. FROM blade_scope_data
  356. WHERE is_deleted = 0
  357. AND menu_id IS NOT NULL
  358. </select>
  359. <select id="grantApiScopeTree" resultMap="treeNodeResultMap">
  360. SELECT *
  361. FROM (
  362. SELECT id,
  363. parent_id,
  364. NAME AS title,
  365. id AS "value",
  366. id AS "key"
  367. FROM blade_menu
  368. WHERE category = 1
  369. AND is_deleted = 0
  370. AND id IN (SELECT menu_id FROM blade_scope_api WHERE is_deleted = 0 AND menu_id IS NOT NULL)
  371. ) menu
  372. UNION ALL
  373. SELECT id,
  374. menu_id AS parent_id,
  375. scope_name AS title,
  376. id AS "value",
  377. id AS "key"
  378. FROM blade_scope_api
  379. WHERE is_deleted = 0
  380. AND menu_id IS NOT NULL
  381. </select>
  382. <select id="grantDataScopeTreeByRole" resultMap="treeNodeResultMap">
  383. SELECT
  384. *
  385. FROM
  386. (
  387. SELECT
  388. id,
  389. parent_id,
  390. NAME AS title,
  391. id AS "value",
  392. id AS "key"
  393. FROM
  394. blade_menu
  395. WHERE
  396. category = 1
  397. AND is_deleted = 0
  398. AND id IN ( SELECT menu_id FROM blade_scope_data WHERE is_deleted = 0 AND menu_id IS NOT NULL )
  399. AND (
  400. id IN (
  401. select menu_id from blade_role_menu where role_id in
  402. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  403. #{item}
  404. </foreach>
  405. )
  406. OR id IN (
  407. select parent_id from blade_menu where is_deleted = 0
  408. and id in ( select menu_id from blade_role_menu where role_id in
  409. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  410. #{item}
  411. </foreach>
  412. )
  413. )
  414. )
  415. ) menu
  416. UNION ALL
  417. SELECT
  418. id,
  419. menu_id AS parent_id,
  420. scope_name AS title,
  421. id AS "value",
  422. id AS "key"
  423. FROM
  424. blade_scope_data
  425. WHERE
  426. is_deleted = 0
  427. AND (
  428. menu_id IN (
  429. select menu_id from blade_role_menu where role_id in
  430. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  431. #{item}
  432. </foreach>
  433. )
  434. OR menu_id IN (
  435. select parent_id from blade_menu where is_deleted = 0
  436. and id in ( select menu_id from blade_role_menu where role_id in
  437. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  438. #{item}
  439. </foreach>
  440. )
  441. )
  442. )
  443. AND menu_id IS NOT NULL
  444. </select>
  445. <select id="grantApiScopeTreeByRole" resultMap="treeNodeResultMap">
  446. SELECT
  447. *
  448. FROM
  449. (
  450. SELECT
  451. id,
  452. parent_id,
  453. NAME AS title,
  454. id AS "value",
  455. id AS "key"
  456. FROM
  457. blade_menu
  458. WHERE
  459. category = 1
  460. AND is_deleted = 0
  461. AND id IN ( SELECT menu_id FROM blade_scope_api WHERE is_deleted = 0 AND menu_id IS NOT NULL )
  462. AND (
  463. id IN (
  464. select menu_id from blade_role_menu where role_id in
  465. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  466. #{item}
  467. </foreach>
  468. )
  469. OR id IN (
  470. select parent_id from blade_menu where is_deleted = 0
  471. and id in (
  472. select menu_id from blade_role_menu where role_id in
  473. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  474. #{item}
  475. </foreach>
  476. )
  477. )
  478. )
  479. ) menu
  480. UNION ALL
  481. SELECT
  482. id,
  483. menu_id AS parent_id,
  484. scope_name AS title,
  485. id AS "value",
  486. id AS "key"
  487. FROM
  488. blade_scope_api
  489. WHERE
  490. is_deleted = 0
  491. AND
  492. (
  493. menu_id IN (
  494. select menu_id from blade_role_menu where role_id in
  495. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  496. #{item}
  497. </foreach>
  498. )
  499. OR menu_id IN (
  500. select parent_id from blade_menu where is_deleted = 0
  501. and id in ( select menu_id from blade_role_menu where role_id in
  502. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  503. #{item}
  504. </foreach>
  505. )
  506. )
  507. )
  508. AND menu_id IS NOT NULL
  509. </select>
  510. <select id="authRoutes" resultType="org.springblade.system.dto.MenuDTO">
  511. SELECT
  512. GROUP_CONCAT(r.role_alias) as alias,
  513. m.path
  514. FROM
  515. blade_role_menu rm
  516. LEFT JOIN blade_menu m ON rm.menu_id = m.id
  517. LEFT JOIN blade_role r ON rm.role_id = r.id
  518. WHERE
  519. rm.role_id IN
  520. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  521. #{item}
  522. </foreach>
  523. AND m.path IS NOT NULL and m.is_deleted = 0
  524. GROUP BY m.path
  525. </select>
  526. <select id="selectBySysId" resultType="org.springblade.system.entity.AuthClient">
  527. select * from blade_client
  528. </select>
  529. <select id="allRoleAndMenu" resultType="org.springblade.system.vo.RoleAndMenusVO">
  530. select * from blade_role_menu where role_id = #{roleId}
  531. </select>
  532. </mapper>