diff --git a/src/main/resources/sqlmapper/mappers/cmmn/menu.xml b/src/main/resources/sqlmapper/mappers/cmmn/menu.xml index 1c7ab68..67fcc6e 100644 --- a/src/main/resources/sqlmapper/mappers/cmmn/menu.xml +++ b/src/main/resources/sqlmapper/mappers/cmmn/menu.xml @@ -50,40 +50,45 @@ BOARD_ID, WINDOW_TARGET ) as ( - select - 1, - M.ID, M.NAME, M.ENG_NAME, M.PARENT, M.DEPTH, - M.MENU_POSITION, M.VISIBLE, M.SUB_VISIBLE, M.ROLE_LEVEL, - M.URL_GROUP, - M.URL, - M.URL_QUERY, - M.BOARD_ID, - M.WINDOW_TARGET - FROM T_MENU M - WHERE M.VISIBLE = 'Y' - AND M.ROLE_LEVEL >= COALESCE((SELECT ROLE_LEVEL FROM T_SSO_AUTH_CODE AC, TAGENT A WHERE AC.CODE_ID = A.USEGRADE AND A.USERID = #{userId}), 17) - AND M.MENU_POSITION = #{menuPosition} - AND M.DEPTH = 0 + select + 1, + M.ID, M.NAME, M.ENG_NAME, M.PARENT, M.DEPTH, + M.MENU_POSITION, M.VISIBLE, M.SUB_VISIBLE, M.ROLE_LEVEL, + COALESCE(M.URL_GROUP, c.URL_GROUP) AS URL_GROUP, + COALESCE(M.URL, c.URL) AS URL, + COALESCE(M.URL_QUERY, c.URL_QUERY) AS URL_QUERY, + COALESCE(M.BOARD_ID, c.BOARD_ID) AS BOARD_ID, + COALESCE(M.WINDOW_TARGET, c.WINDOW_TARGET) AS WINDOW_TARGET + FROM T_MENU M left outer join (select id, parent, url_group, url, url_query, board_id, window_target + from t_menu a + where a.id in (select min(id) id + from t_menu + group by parent )) c + on m.id = c.parent + WHERE M.VISIBLE = 'Y' + AND M.ROLE_LEVEL >= COALESCE((SELECT ROLE_LEVEL FROM T_SSO_AUTH_CODE AC, TAGENT A WHERE AC.CODE_ID = A.USEGRADE AND A.USERID = #{userId}), 17) + AND M.MENU_POSITION = #{menuPosition} + AND M.DEPTH = 0 union all - select - b.level+1, - M.ID, M.NAME, M.ENG_NAME, M.PARENT, M.DEPTH, - M.MENU_POSITION, M.VISIBLE, M.SUB_VISIBLE, M.ROLE_LEVEL, - COALESCE(M.URL_GROUP, c.URL_GROUP) AS URL_GROUP, - COALESCE(M.URL, c.URL) AS URL, - COALESCE(M.URL_QUERY, c.URL_QUERY) AS URL_QUERY, - COALESCE(M.BOARD_ID, c.BOARD_ID) AS BOARD_ID, - COALESCE(M.WINDOW_TARGET, c.WINDOW_TARGET) AS WINDOW_TARGET - FROM T_MENU M inner join menu b on M.parent = b.id - left outer join (select id, parent, url_group, url, url_query, board_id, window_target - from t_menu a - where a.id in (select min(id) id - from t_menu - group by parent )) c - on m.id = c.parent - where M.VISIBLE = 'Y' - AND M.ROLE_LEVEL >= COALESCE((SELECT ROLE_LEVEL FROM T_SSO_AUTH_CODE AC, TAGENT A WHERE AC.CODE_ID = A.USEGRADE AND A.USERID = #{userId}), 17) - AND M.MENU_POSITION = #{menuPosition} + select + b.level+1, + M.ID, M.NAME, M.ENG_NAME, M.PARENT, M.DEPTH, + M.MENU_POSITION, M.VISIBLE, M.SUB_VISIBLE, M.ROLE_LEVEL, + COALESCE(M.URL_GROUP, c.URL_GROUP) AS URL_GROUP, + COALESCE(M.URL, c.URL) AS URL, + COALESCE(M.URL_QUERY, c.URL_QUERY) AS URL_QUERY, + COALESCE(M.BOARD_ID, c.BOARD_ID) AS BOARD_ID, + COALESCE(M.WINDOW_TARGET, c.WINDOW_TARGET) AS WINDOW_TARGET + FROM T_MENU M inner join menu b on M.parent = b.id + left outer join (select id, parent, url_group, url, url_query, board_id, window_target + from t_menu a + where a.id in (select min(id) id + from t_menu + group by parent )) c + on m.id = c.parent + where M.VISIBLE = 'Y' + AND M.ROLE_LEVEL >= COALESCE((SELECT ROLE_LEVEL FROM T_SSO_AUTH_CODE AC, TAGENT A WHERE AC.CODE_ID = A.USEGRADE AND A.USERID = #{userId}), 17) + AND M.MENU_POSITION = #{menuPosition} ) select * from menu