|
|
|
@ -6,15 +6,17 @@ |
|
|
|
<sql id="selectTable"> |
|
|
|
<choose> |
|
|
|
<when test="levelType == 1">dashboard_level_branch</when> |
|
|
|
<when test="levelType == 2">dashboard_level_store_area_merge</when> |
|
|
|
<when test="levelType == 3">dashboard_level_site</when> |
|
|
|
<when test="levelType == 2">dashboard_level_store</when> |
|
|
|
<when test="levelType == 3">dashboard_level_area</when> |
|
|
|
<when test="levelType == 4">dashboard_level_site</when> |
|
|
|
</choose> |
|
|
|
</sql> |
|
|
|
|
|
|
|
<sql id="selectParentTable"> |
|
|
|
<choose> |
|
|
|
<when test="levelType == 2">dashboard_level_branch</when> |
|
|
|
<when test="levelType == 3">dashboard_level_store_area_merge</when> |
|
|
|
<when test="levelType == 3">dashboard_level_store</when> |
|
|
|
<when test="levelType == 4">dashboard_level_area</when> |
|
|
|
</choose> |
|
|
|
</sql> |
|
|
|
|
|
|
|
@ -168,8 +170,8 @@ |
|
|
|
GROUP_CONCAT(pa.`name`) AS parentNames, |
|
|
|
<include refid="commonField" /> |
|
|
|
FROM |
|
|
|
dashboard_level_store_area_merge base |
|
|
|
LEFT JOIN dashboard_level_relation_branch_store_area rela ON base.`id` = rela.store_area_id |
|
|
|
dashboard_level_store base |
|
|
|
LEFT JOIN dashboard_level_relation_branch_store rela ON base.`id` = rela.store_id |
|
|
|
LEFT JOIN dashboard_level_branch pa ON rela.branch_id = pa.`id` |
|
|
|
WHERE |
|
|
|
<include refid="commonWhere" /> |
|
|
|
@ -182,9 +184,23 @@ |
|
|
|
GROUP_CONCAT(pa.`name`) AS parentNames, |
|
|
|
<include refid="commonField" /> |
|
|
|
FROM |
|
|
|
dashboard_level_area base |
|
|
|
LEFT JOIN dashboard_level_relation_store_area rela ON base.`id` = rela.area_id |
|
|
|
LEFT JOIN dashboard_level_store pa ON rela.store_id = pa.`id` |
|
|
|
WHERE |
|
|
|
<include refid="commonWhere" /> |
|
|
|
GROUP BY base.`id` |
|
|
|
</when> |
|
|
|
<when test="levelType == 4"> |
|
|
|
SELECT |
|
|
|
4 AS levelType, |
|
|
|
GROUP_CONCAT(pa.id) AS parentIds, |
|
|
|
GROUP_CONCAT(pa.`name`) AS parentNames, |
|
|
|
<include refid="commonField" /> |
|
|
|
FROM |
|
|
|
dashboard_level_site base |
|
|
|
LEFT JOIN dashboard_level_relation_store_area_site rela ON base.`id` = rela.site_id |
|
|
|
LEFT JOIN dashboard_level_store_area_merge pa ON rela.store_area_id = pa.`id` |
|
|
|
LEFT JOIN dashboard_level_relation_area_site rela ON base.`id` = rela.site_id |
|
|
|
LEFT JOIN dashboard_level_area pa ON rela.area_id = pa.`id` |
|
|
|
WHERE |
|
|
|
<include refid="commonWhere" /> |
|
|
|
GROUP BY base.`id` |
|
|
|
@ -198,7 +214,7 @@ |
|
|
|
SELECT DISTINCT building_id |
|
|
|
FROM ( |
|
|
|
|
|
|
|
-- BUILDING(直接绑定) |
|
|
|
-- BUILDING |
|
|
|
SELECT b.building_id |
|
|
|
FROM dashboard_level_role_user ru |
|
|
|
JOIN dashboard_level_role_object ro |
|
|
|
@ -227,41 +243,69 @@ |
|
|
|
|
|
|
|
UNION ALL |
|
|
|
|
|
|
|
-- STORE_AREA → SITE → BUILDING(核心替代 AREA / STORE) |
|
|
|
-- AREA → SITE → BUILDING |
|
|
|
SELECT b.building_id |
|
|
|
FROM dashboard_level_role_user ru |
|
|
|
JOIN dashboard_level_role_object ro |
|
|
|
ON ru.level_role_id = ro.level_role_id |
|
|
|
JOIN dashboard_level_area a |
|
|
|
ON ro.ref_id = a.id AND a.flag = 0 |
|
|
|
JOIN dashboard_level_relation_area_site ras |
|
|
|
ON a.id = ras.area_id |
|
|
|
JOIN dashboard_level_site s |
|
|
|
ON ras.site_id = s.id AND s.flag = 0 |
|
|
|
JOIN dashboard_level_relation_site_building rsb |
|
|
|
ON s.id = rsb.site_id |
|
|
|
JOIN basic_building b |
|
|
|
ON rsb.building_id = b.building_id AND b.flag = 0 |
|
|
|
WHERE ru.user_id = #{userId} |
|
|
|
AND ro.ref_type = 'AREA' |
|
|
|
|
|
|
|
UNION ALL |
|
|
|
|
|
|
|
-- STORE → AREA → SITE → BUILDING |
|
|
|
SELECT b.building_id |
|
|
|
FROM dashboard_level_role_user ru |
|
|
|
JOIN dashboard_level_role_object ro |
|
|
|
ON ru.level_role_id = ro.level_role_id |
|
|
|
JOIN dashboard_level_store_area_merge sam |
|
|
|
ON ro.ref_id = sam.id AND sam.flag = 0 |
|
|
|
JOIN dashboard_level_relation_store_area_site rsas |
|
|
|
ON sam.id = rsas.store_area_id |
|
|
|
JOIN dashboard_level_store st |
|
|
|
ON ro.ref_id = st.id AND st.flag = 0 |
|
|
|
JOIN dashboard_level_relation_store_area rsa |
|
|
|
ON st.id = rsa.store_id |
|
|
|
JOIN dashboard_level_area a |
|
|
|
ON rsa.area_id = a.id AND a.flag = 0 |
|
|
|
JOIN dashboard_level_relation_area_site ras |
|
|
|
ON a.id = ras.area_id |
|
|
|
JOIN dashboard_level_site s |
|
|
|
ON rsas.site_id = s.id AND s.flag = 0 |
|
|
|
ON ras.site_id = s.id AND s.flag = 0 |
|
|
|
JOIN dashboard_level_relation_site_building rsb |
|
|
|
ON s.id = rsb.site_id |
|
|
|
JOIN basic_building b |
|
|
|
ON rsb.building_id = b.building_id AND b.flag = 0 |
|
|
|
WHERE ru.user_id = #{userId} |
|
|
|
AND ro.ref_type = 'STORE_AREA' |
|
|
|
AND ro.ref_type = 'STORE' |
|
|
|
|
|
|
|
UNION ALL |
|
|
|
|
|
|
|
-- BRANCH → STORE_AREA → SITE → BUILDING |
|
|
|
-- BRANCH → STORE → AREA → SITE → BUILDING |
|
|
|
SELECT b.building_id |
|
|
|
FROM dashboard_level_role_user ru |
|
|
|
JOIN dashboard_level_role_object ro |
|
|
|
ON ru.level_role_id = ro.level_role_id |
|
|
|
JOIN dashboard_level_branch br |
|
|
|
ON ro.ref_id = br.id AND br.flag = 0 |
|
|
|
JOIN dashboard_level_relation_branch_store_area rbsa |
|
|
|
ON br.id = rbsa.branch_id |
|
|
|
JOIN dashboard_level_store_area_merge sam |
|
|
|
ON rbsa.store_area_id = sam.id AND sam.flag = 0 |
|
|
|
JOIN dashboard_level_relation_store_area_site rsas |
|
|
|
ON sam.id = rsas.store_area_id |
|
|
|
JOIN dashboard_level_relation_branch_store rbs |
|
|
|
ON br.id = rbs.branch_id |
|
|
|
JOIN dashboard_level_store st |
|
|
|
ON rbs.store_id = st.id AND st.flag = 0 |
|
|
|
JOIN dashboard_level_relation_store_area rsa |
|
|
|
ON st.id = rsa.store_id |
|
|
|
JOIN dashboard_level_area a |
|
|
|
ON rsa.area_id = a.id AND a.flag = 0 |
|
|
|
JOIN dashboard_level_relation_area_site ras |
|
|
|
ON a.id = ras.area_id |
|
|
|
JOIN dashboard_level_site s |
|
|
|
ON rsas.site_id = s.id AND s.flag = 0 |
|
|
|
ON ras.site_id = s.id AND s.flag = 0 |
|
|
|
JOIN dashboard_level_relation_site_building rsb |
|
|
|
ON s.id = rsb.site_id |
|
|
|
JOIN basic_building b |
|
|
|
@ -269,7 +313,7 @@ |
|
|
|
WHERE ru.user_id = #{userId} |
|
|
|
AND ro.ref_type = 'BRANCH' |
|
|
|
|
|
|
|
) t |
|
|
|
) t; |
|
|
|
</select> |
|
|
|
|
|
|
|
</mapper> |