share job
This commit is contained in:
146
backend/src/main/resources/mapper/common/menu_sql.xml
Normal file
146
backend/src/main/resources/mapper/common/menu_sql.xml
Normal file
@@ -0,0 +1,146 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<!--
|
||||
원본: src/java/sql/common/menu_sql.xml (SX_CO0080, SX_CO0090)
|
||||
-->
|
||||
<mapper namespace="com.company.gw.common.mapper.MenuMapper">
|
||||
|
||||
<!-- 사용자 권한 기반 메뉴 트리 조회 (재귀 CTE) -->
|
||||
<select id="getMenuList" parameterType="map" resultType="com.company.gw.common.dto.MenuDto">
|
||||
WITH MENU_TREE AS (
|
||||
SELECT A.MENU_NO AS upMenuNo,
|
||||
A.CORP_NO,
|
||||
A.MENU_NO,
|
||||
A.UPPER_MENU_NO,
|
||||
A.MENU_NM,
|
||||
A.URL,
|
||||
A.RM,
|
||||
A.MENU_PROP,
|
||||
A.MENU_ORDR,
|
||||
A.MENU_USE_YN,
|
||||
1 AS lvl,
|
||||
CAST('/' + RIGHT('00000' + CONVERT(VARCHAR, A.MENU_ORDR), 5) AS VARCHAR(MAX)) AS sortPath
|
||||
FROM SX_CO0080 A
|
||||
JOIN SX_CO0090 B
|
||||
ON B.CORP_NO = A.CORP_NO
|
||||
AND B.MENU_NO = A.MENU_NO
|
||||
AND B.MENU_AUTH_CD = #{menuAuthCd}
|
||||
WHERE A.CORP_NO = #{corpNo}
|
||||
AND A.MENU_USE_YN = 'Y'
|
||||
AND NULLIF(A.UPPER_MENU_NO, '') IS NULL
|
||||
UNION ALL
|
||||
SELECT PARENT.upMenuNo,
|
||||
A.CORP_NO,
|
||||
A.MENU_NO,
|
||||
A.UPPER_MENU_NO,
|
||||
A.MENU_NM,
|
||||
A.URL,
|
||||
A.RM,
|
||||
A.MENU_PROP,
|
||||
A.MENU_ORDR,
|
||||
A.MENU_USE_YN,
|
||||
PARENT.lvl + 1 AS lvl,
|
||||
PARENT.sortPath + CAST('/' + RIGHT('00000' + CONVERT(VARCHAR, A.MENU_ORDR), 5) AS VARCHAR(MAX)) AS sortPath
|
||||
FROM SX_CO0080 A
|
||||
JOIN SX_CO0090 B
|
||||
ON B.CORP_NO = A.CORP_NO
|
||||
AND B.MENU_NO = A.MENU_NO
|
||||
AND B.MENU_AUTH_CD = #{menuAuthCd}
|
||||
JOIN MENU_TREE PARENT
|
||||
ON PARENT.CORP_NO = A.CORP_NO
|
||||
AND PARENT.MENU_NO = A.UPPER_MENU_NO
|
||||
WHERE A.CORP_NO = #{corpNo}
|
||||
AND A.MENU_USE_YN = 'Y'
|
||||
)
|
||||
SELECT MENU_NO AS menuNo,
|
||||
UPPER_MENU_NO AS upperMenuNo,
|
||||
MENU_NM AS menuNm,
|
||||
URL,
|
||||
RM,
|
||||
MENU_PROP AS menuProp,
|
||||
MENU_ORDR AS menuOrdr,
|
||||
MENU_USE_YN AS menuUseYn,
|
||||
lvl
|
||||
FROM MENU_TREE
|
||||
WHERE CORP_NO = #{corpNo}
|
||||
ORDER BY sortPath
|
||||
</select>
|
||||
|
||||
<select id="getMenuList" parameterType="map" resultType="com.company.gw.common.dto.MenuDto" databaseId="mariadb">
|
||||
WITH MENU_TREE AS (
|
||||
SELECT A.MENU_NO AS upMenuNo,
|
||||
A.CORP_NO,
|
||||
A.MENU_NO,
|
||||
A.UPPER_MENU_NO,
|
||||
A.MENU_NM,
|
||||
A.URL,
|
||||
A.RM,
|
||||
A.MENU_PROP,
|
||||
A.MENU_ORDR,
|
||||
A.MENU_USE_YN,
|
||||
1 AS lvl,
|
||||
CONCAT('/', LPAD(A.MENU_ORDR, 5, '0')) AS sortPath
|
||||
FROM SX_CO0080 A
|
||||
JOIN SX_CO0090 B
|
||||
ON B.CORP_NO = A.CORP_NO
|
||||
AND B.MENU_NO = A.MENU_NO
|
||||
AND B.MENU_AUTH_CD = #{menuAuthCd}
|
||||
WHERE A.CORP_NO = #{corpNo}
|
||||
AND A.MENU_USE_YN = 'Y'
|
||||
AND NULLIF(A.UPPER_MENU_NO, '') IS NULL
|
||||
UNION ALL
|
||||
SELECT PARENT.upMenuNo,
|
||||
A.CORP_NO,
|
||||
A.MENU_NO,
|
||||
A.UPPER_MENU_NO,
|
||||
A.MENU_NM,
|
||||
A.URL,
|
||||
A.RM,
|
||||
A.MENU_PROP,
|
||||
A.MENU_ORDR,
|
||||
A.MENU_USE_YN,
|
||||
PARENT.lvl + 1 AS lvl,
|
||||
CONCAT(PARENT.sortPath, '/', LPAD(A.MENU_ORDR, 5, '0')) AS sortPath
|
||||
FROM SX_CO0080 A
|
||||
JOIN SX_CO0090 B
|
||||
ON B.CORP_NO = A.CORP_NO
|
||||
AND B.MENU_NO = A.MENU_NO
|
||||
AND B.MENU_AUTH_CD = #{menuAuthCd}
|
||||
JOIN MENU_TREE PARENT
|
||||
ON PARENT.CORP_NO = A.CORP_NO
|
||||
AND PARENT.MENU_NO = A.UPPER_MENU_NO
|
||||
WHERE A.CORP_NO = #{corpNo}
|
||||
AND A.MENU_USE_YN = 'Y'
|
||||
)
|
||||
SELECT MENU_NO AS menuNo,
|
||||
UPPER_MENU_NO AS upperMenuNo,
|
||||
MENU_NM AS menuNm,
|
||||
URL,
|
||||
RM,
|
||||
MENU_PROP AS menuProp,
|
||||
MENU_ORDR AS menuOrdr,
|
||||
MENU_USE_YN AS menuUseYn,
|
||||
lvl
|
||||
FROM MENU_TREE
|
||||
WHERE CORP_NO = #{corpNo}
|
||||
ORDER BY sortPath
|
||||
</select>
|
||||
|
||||
<!-- 컨트롤러-롤 매핑 목록 (접근 권한 체크용) -->
|
||||
<select id="getControllerRoleList" parameterType="map" resultType="com.company.gw.common.dto.ControllerRoleDto">
|
||||
SELECT DISTINCT
|
||||
A.CONTROLLER AS controller,
|
||||
B.MENU_AUTH_CD AS role,
|
||||
B.FUNC_AUTH_CN AS funcAuthCn
|
||||
FROM SX_CO0080 A
|
||||
JOIN SX_CO0090 B
|
||||
ON B.CORP_NO = A.CORP_NO
|
||||
AND B.MENU_NO = A.MENU_NO
|
||||
WHERE A.CORP_NO = #{corpNo}
|
||||
AND A.MENU_USE_YN = 'Y'
|
||||
AND NULLIF(A.CONTROLLER, '') IS NOT NULL
|
||||
ORDER BY A.CONTROLLER
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user