From 494aeb58eb885b40ab2fdb083aaa79007bb79ae2 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Fri, 19 Jan 2024 17:46:23 +0800
Subject: [PATCH] bug 修复

---
 src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml |   96 ++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 81 insertions(+), 15 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
index f7c96a2..60f6972 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
@@ -104,22 +104,88 @@
 
     <!--根据父编号查询所有的下级-->
     <select id="getTreeList" resultType="org.springblade.common.node.TreeStringNode">
+        <if test="region.cityCode!=null and region.cityCode!=''">
         SELECT
-            br.code as id,br.parent_code as parentId,br.name as name
-        FROM
-            (
-            SELECT
-                @ids AS ids,
-                ( SELECT @ids := GROUP_CONCAT( code ) FROM blade_region WHERE FIND_IN_SET( parent_code, @ids ) ) AS cids
-            FROM
-                blade_region
-            WHERE
-                @ids IS NOT NULL
-                AND @ids := #{parentCode}
-            ) id,
-            blade_region br
-        WHERE
-            FIND_IN_SET(br.parent_code,ids)
+        code as id,
+        parent_code as parentId,
+        name,
+        sort
+        FROM blade_region
+        where code = #{region.cityCode}
+        union all
+        select
+        grid_code as id,
+        community_code as parentId,
+        grid_name as name,
+        jg.sort
+        FROM jczz_grid jg
+        left join blade_region br on br.village_code = jg.community_code and br.region_level = 5
+        where jg.is_deleted = 0 and br.city_code = #{region.cityCode}
+        union all
+        </if>
+        SELECT
+        code as id,
+        parent_code as parentId,
+        name,
+        sort
+        FROM blade_region
+        where 1=1
+        and district_code = '361102000000'
+        <if test="region.parentCode!=null and region.parentCode!=''">
+            and parent_code = #{region.parentCode}
+        </if>
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and code in ('')
+                </otherwise>
+            </choose>
+        </if>
+    </select>
+
+    <!--根据当前编号查询-->
+    <select id="getTownTree" resultType="org.springblade.common.node.TreeStringNode">
+        SELECT
+        code as id,
+        parent_code as parentId,
+        name
+        FROM blade_region where district_code = '361102000000'
+        and region_level = 4
+        <if test="regionCode!=null  and regionCode!=''">
+            and code = #{regionCode}
+        </if>
+        union
+        SELECT
+        code as id,
+        parent_code as parentId,
+        name
+        FROM blade_region where district_code = '361102000000'
+        and region_level = 4
+        <if test="regionCode!=null  and regionCode!=''">
+            and parent_code = #{regionCode}
+        </if>
+    </select>
+
+    <!--树列表(包含省市县三级)-->
+    <select id="getBaseTree" resultType="org.springblade.common.node.TreeStringNode">
+        SELECT
+        code as id,
+        parent_code as parentId,
+        name
+        FROM blade_region
+        where region_level >0 and region_level &lt;4
+    </select>
+
+    <!--查询parentCode 长度少于12 的-->
+    <select id="getCodeLess12DataList" resultType="org.springblade.modules.system.entity.Region">
+        SELECT * FROM blade_region
+        where length(parent_code) &lt; 12
     </select>
 
 </mapper>

--
Gitblit v1.9.3