From 23ee61424846639ee5c0e001aa5977b4c392d324 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Thu, 02 Nov 2023 09:53:08 +0800
Subject: [PATCH] 小区商铺查询修改

---
 src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml             |   71 +++++++++++++++++++++--
 src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java            |   16 +++++
 src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java         |    2 
 src/main/java/org/springblade/common/node/TreeNode.java                                              |    5 +
 src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java |   25 ++++++--
 src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java    |    6 +-
 6 files changed, 107 insertions(+), 18 deletions(-)

diff --git a/src/main/java/org/springblade/common/node/TreeNode.java b/src/main/java/org/springblade/common/node/TreeNode.java
index 5bf16bf..7f24824 100644
--- a/src/main/java/org/springblade/common/node/TreeNode.java
+++ b/src/main/java/org/springblade/common/node/TreeNode.java
@@ -32,6 +32,11 @@
 	private String name;
 
 	/**
+	 * 地址类型
+	 */
+	private Integer addressType;
+
+	/**
 	 * 父节点ID
 	 */
 	@JsonSerialize(using = ToStringSerializer.class)
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java b/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
index d92da36..6fc23bd 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
@@ -126,7 +126,7 @@
 
 	/**
 	 * 根据角色获取功能集合数据
-	 * @param type
+	 * @param type 1:查社区  2:查场所  3:查房屋
 	 * @param roleName
 	 * @return
 	 */
@@ -143,8 +143,8 @@
 	 * @return
 	 */
 	@GetMapping("/getHousesList")
-	public R getHousesList(String name,String code,Integer type) {
-		return R.data(doorplateAddressService.getHousesList(name,code,type));
+	public R getHousesList(String name,String code,Integer type,Integer addressType) {
+		return R.data(doorplateAddressService.getHousesList(name,code,type,addressType));
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
index 399cd3f..e86d8ce 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
@@ -99,4 +99,20 @@
 	List<DoorplateAddressVOTree> getDistrictVOTreeList(@Param("code") String code);
 
 	List<DoorplateAddressVOTree> getBuildingVOTreeList(@Param("code") String code);
+
+	/**
+	 * 查询街路巷
+	 * @param name
+	 * @param code
+	 * @return
+	 */
+	List<TreeNode> getStreetRuList(@Param("name") String name,@Param("code") String code);
+
+	/**
+	 * 根据街路巷编号查询街路巷门牌名称集合
+	 * @param name 该处当社区编号用
+	 * @param code 街路巷编号
+	 * @return
+	 */
+	List<FuncNode> getDoorplateNameList(@Param("name") String name,@Param("code") String code);
 }
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
index c1106fc..f5a81fd 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -22,15 +22,47 @@
     <select id="getDistrictList" resultType="org.springblade.common.node.TreeNode" >
         select aoi_code as id,aoi_name as name from jczz_doorplate_address
         where 1=1
-        and nei_name = #{name}
         and aoi_name !=''
         and aoi_code !=''
+        <if test="name != null and name!=''">
+            and nei_name = #{name}
+        </if>
+        <if test="code != null and code!=''">
+            and nei_code = #{code}
+        </if>
         group by aoi_code,aoi_name
+        union all
+        (
+        select aoi_code as id,sub_aoi as name from jczz_doorplate_address
+        where 1=1
+        and aoi_code !=''
+        and sub_aoi != ''
+        <if test="name != null and name!=''">
+            and nei_name = #{name}
+        </if>
+        <if test="code != null and code!=''">
+            and nei_code = #{code}
+        </if>
+        group by aoi_code,sub_aoi
+        )
+        union all
+        (
+        select nei_code as id,'自建房/商铺' as name from jczz_doorplate_address
+        where 1=1
+        and aoi_code is null
+        <if test="name != null and name!=''">
+            and nei_name = #{name}
+        </if>
+        <if test="code != null and code!=''">
+            and nei_code = #{code}
+        </if>
+        group by nei_code
+        )
     </select>
 
-    <!--根据社区名称查询楼栋集合-->
+    <!--根据小区名称查询楼栋集合-->
     <select id="getBuildingList" resultType="org.springblade.common.node.TreeNode" >
-        select building_code as id,building_name as name from jczz_doorplate_address
+        select building_code as id,building_name as name,1 as addressType from jczz_doorplate_address
         where 1=1
         and aoi_code = #{code}
         and building_code !=''
@@ -79,21 +111,44 @@
     </select>
     <select id="getDistrictVOTreeList"
             resultType="org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree">
-        SELECT district_code as code,district_name as name
+        SELECT aoi_code as code,aoi_name as name
         FROM jczz_doorplate_address
         WHERE street_ru_code =#{code}
-        and district_code is not null and district_code !=''
-        and district_name is not null and district_name !=''
-       GROUP BY district_code,district_name
+        and aoi_code is not null and aoi_code !=''
+        and aoi_name is not null and aoi_name !=''
+       GROUP BY aoi_code,aoi_name
     </select>
     <select id="getBuildingVOTreeList"
             resultType="org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree">
         SELECT building_code as code,building_name as name
         FROM jczz_doorplate_address
-        WHERE district_code =#{code}
+        WHERE aoi_code =#{code}
           and building_code is not null and building_code !=''
         and building_name is not null and building_name !=''
         GROUP BY building_code,building_name
     </select>
 
+    <!--根据社区查询街路巷集合-->
+    <select id="getStreetRuList" resultType="org.springblade.common.node.TreeNode" >
+        select street_ru_code as id,street_ru_name as name,2 as addressType from jczz_doorplate_address
+        where 1=1
+        and aoi_code is null
+        <if test="name != null and name!=''">
+            and nei_name = #{name}
+        </if>
+        <if test="code != null and code!=''">
+            and nei_code = #{code}
+        </if>
+        group by street_ru_code,street_ru_name
+    </select>
+
+    <!--根据街路巷编号查询街路巷门牌名称集合-->
+    <select id="getDoorplateNameList" resultType="org.springblade.modules.doorplateAddress.vo.FuncNode">
+        select address_code as addressCode,doorplate_name as houseNo from jczz_doorplate_address
+        where 1=1
+		and street_ru_code = #{code}
+		and nei_code = #{name}
+		and aoi_code is null
+    </select>
+
 </mapper>
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java b/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
index f903c2f..a846902 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
@@ -56,7 +56,7 @@
 	 * @param type 类型 1:社区  2:小区  3:楼栋  4:户室
 	 * @return
 	 */
-    Object getHousesList(String name, String code, Integer type);
+    Object getHousesList(String name, String code, Integer type,Integer addressType);
 
 	/**
 	 * 查询房屋及出租详情信息
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java b/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
index aff808e..4f2e462 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
@@ -122,22 +122,35 @@
 	 * @return
 	 */
 	@Override
-	public Object getHousesList(String name, String code, Integer type) {
+	public Object getHousesList(String name, String code, Integer type,Integer addressType) {
 		List<TreeNode> list = new ArrayList<>();
 		// 查小区,场所
 		if (type==1){
 			// 根据社区名称查询小区集合
 			list  = baseMapper.getDistrictList(name,code);
 		}
-		// 查楼栋,场所
+		// 查楼栋,街路巷
 		if (type==2){
-			// 根据社区名称查询楼栋集合
-			list  = baseMapper.getBuildingList(name,code);
+			// 判断 code 长度,如果 code 长度大于 12 则为小区查楼栋,否则则按社区查街路巷
+			if (code.length()>12){
+				// 根据社区名称查询楼栋集合
+				list = baseMapper.getBuildingList(name, code);
+			}else {
+				// 查询街路巷
+				list = baseMapper.getStreetRuList(name, code);
+			}
 		}
 		// 查户室
 		if (type==3){
-			// 查询户室及住户相关信息,单元中包含住户
-			return getUnitHouseholdList(name,code);
+			// 判断地址类型
+			if (addressType==1) {
+				// 查询户室及住户相关信息,单元中包含住户
+				return getUnitHouseholdList(name, code);
+			}
+			if (addressType==2) {
+				// 根据街路巷编号查询街路巷门牌名称集合
+				return baseMapper.getDoorplateNameList(name,code);
+			}
 		}
 		return list;
 	}

--
Gitblit v1.9.3