| | |
| | | on e.id = ext.id |
| | | ${ew.customSqlSegment} |
| | | </select> |
| | | <select id="getCategoryTypeMap" resultType="org.jeecg.modules.system.entity.SysCategory"> |
| | | WITH Level2Nodes AS ( |
| | | SELECT |
| | | id AS level_id, |
| | | name, |
| | | 2 AS node_level |
| | | FROM sys_category |
| | | WHERE pid IN (SELECT id FROM sys_category WHERE pid = '0') |
| | | ), |
| | | Level3Nodes AS ( |
| | | SELECT |
| | | tn.id AS level_id, |
| | | tn.name, |
| | | 3 AS node_level |
| | | FROM sys_category tn |
| | | INNER JOIN Level2Nodes l2 ON tn.pid = l2.level_id |
| | | ), |
| | | TargetLevels AS ( |
| | | SELECT level_id, node_level, name FROM Level2Nodes |
| | | UNION ALL |
| | | SELECT level_id, node_level, name FROM Level3Nodes |
| | | ), |
| | | NodeHierarchy AS ( |
| | | SELECT |
| | | tl.level_id AS root_id, |
| | | tl.name, |
| | | yt.id AS node_id, |
| | | yt.code AS node_code |
| | | FROM TargetLevels tl |
| | | INNER JOIN sys_category yt ON yt.id = tl.level_id |
| | | |
| | | UNION ALL |
| | | |
| | | SELECT |
| | | nh.root_id, |
| | | nh.name, |
| | | yt.id AS node_id, |
| | | yt.code AS node_code |
| | | FROM sys_category yt |
| | | INNER JOIN NodeHierarchy nh ON yt.pid = nh.node_id |
| | | ) |
| | | SELECT |
| | | root_id AS id, |
| | | name, |
| | | STUFF(( |
| | | SELECT ',' + node_code |
| | | FROM NodeHierarchy nh2 |
| | | WHERE nh2.root_id = nh1.root_id |
| | | FOR XML PATH(''), TYPE |
| | | ).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS childCodes |
| | | FROM NodeHierarchy nh1 |
| | | GROUP BY root_id, name |
| | | ORDER BY root_id |
| | | </select> |
| | | </mapper> |