From d0b0e00e40226700a0ffa1f1671a8dc273610f67 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Mon, 18 Dec 2023 14:28:10 +0800
Subject: [PATCH] 菜单分类优化
---
src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml | 200 ++++++++++++++++++++++++++-----------------------
1 files changed, 106 insertions(+), 94 deletions(-)
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
index c63e214..3db9562 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
@@ -76,6 +76,51 @@
<!--房屋详情-->
<resultMap id="houseAndHouseLabelMap" type="org.springblade.modules.house.vo.HouseVO" autoMapping="true">
+ <result column="id" property="id"/>
+ <result column="house_code" property="houseCode"/>
+ <result column="district_code" property="districtCode"/>
+ <result column="district_name" property="districtName"/>
+ <result column="house_name" property="houseName"/>
+ <result column="phone" property="phone"/>
+ <result column="area" property="area"/>
+ <result column="property_price" property="propertyPrice"/>
+ <result column="service_due" property="serviceDue"/>
+ <result column="floor" property="floor"/>
+ <result column="building" property="building"/>
+ <result column="unit" property="unit"/>
+ <result column="room" property="room"/>
+ <result column="building_no" property="buildingNo"/>
+ <result column="image_urls" property="imageUrls"/>
+ <result column="create_user" property="createUser"/>
+ <result column="created_time" property="createTime"/>
+ <result column="update_user" property="updateUser"/>
+ <result column="update_time" property="updateTime"/>
+ <result column="remark" property="remark"/>
+ <result column="is_deleted" property="isDeleted"/>
+ <collection property="userHouseLabelVOList" javaType="java.util.List" select="selectHouseLabelPage" column="house_code"
+ ofType="org.springblade.modules.house.vo.UserHouseLabelVO" autoMapping="true">
+ </collection>
+ </resultMap>
+
+
+ <select id="selectHouseLabelPage" resultType="org.springblade.modules.house.vo.HouseholdLabelVO">
+ select
+ id,
+ house_code,
+ label_id,
+ label_name,
+ color,
+ remark cremark,
+ user_id,
+ lable_type,
+ household_id
+ from
+ jczz_user_house_label
+ where house_code = #{houseCode} and lable_type = 2
+ </select>
+
+ <!--房屋详情-->
+ <resultMap id="housePageAndHouseLabelMap" type="org.springblade.modules.house.vo.HouseVO" autoMapping="true">
<id property="id" column="id"/>
<collection property="userHouseLabelVOList" javaType="java.util.List"
ofType="org.springblade.modules.house.vo.UserHouseLabelVO" autoMapping="true">
@@ -85,16 +130,20 @@
</resultMap>
<!--自定义分页列表-->
- <select id="selectHousePage" resultType="org.springblade.modules.house.vo.HouseVO">
- select *,concat(building," ",unit," ",room) as address from jczz_house
+ <select id="selectHousePage" resultMap="houseAndHouseLabelMap">
+ select jh.*,concat(building," ",unit," ",room) as address from jczz_house jh
+ left join jczz_doorplate_address jda on jda.address_code = jh.house_code
where is_deleted = 0
<if test="house.id != null "> and id = #{house.id}</if>
+ <if test="house.streetCode != null and house.streetCode != ''">
+ and jda.town_street_code like concat('%',#{house.streetCode},'%')
+ </if>
<if test="house.houseCode != null and house.houseCode != ''"> and house_code = #{house.houseCode}</if>
<if test="house.districtCode != null and house.districtCode != ''"> and district_code = #{house.districtCode}</if>
<if test="house.districtName != null and house.districtName != ''">
and district_name like concat('%',#{house.districtName},'%')
</if>
- <if test="house.houseName != null and house.houseName != ''"> and house_name = #{house.houseName}</if>
+ <if test="house.houseName != null and house.houseName != ''"> and jh.house_name like concat('%',#{house.houseName},'%')</if>
<if test="house.phone != null and house.phone != ''"> and phone = #{house.phone}</if>
<if test="house.area != null "> and area = #{house.area}</if>
<if test="house.propertyPrice != null "> and property_price = #{house.propertyPrice}</if>
@@ -202,41 +251,33 @@
<select id="getHouseStatisticsOne" resultType="java.lang.Integer">
- SELECT
+ SELECT
count( 1 )
FROM
- jczz_house jh
- WHERE
- jh.is_deleted = 0
- AND
- EXISTS (
- SELECT
+ (
+ SELECT DISTINCT
jda.building_code
FROM
- jczz_doorplate_address jda
+ jczz_house jh
+ LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
WHERE
- jh.house_code = jda.address_code
- AND jda.nei_code = #{code}
- AND jda.building_code IS NOT NULL
-
+ jda.nei_code = #{code}
+ AND jh.is_deleted = 0
<if test="userId != null">
- AND EXISTS (
- SELECT
- *
- FROM
- jczz_grid jg
- LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
- LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
- WHERE
- jgm.user_id = #{userId}
- AND jh.house_code = jgr.house_code
- AND jg.is_deleted = 0
- )
- </if>
-
- GROUP BY
- jda.building_code
+ AND jda.address_code IN (
+ SELECT DISTINCT
+ jgr.house_code
+ FROM
+ jczz_grid jg
+ LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
+ LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
+ WHERE
+ jgm.user_id = #{userId}
+ AND jg.is_deleted = 0
)
+ </if>
+ ) a
+
</select>
@@ -244,75 +285,55 @@
SELECT
count( 1 )
FROM
- jczz_house jh
- WHERE
- jh.is_deleted = 0
- AND
- EXISTS (
- SELECT
+ (
+ SELECT DISTINCT
jda.address_code
FROM
- jczz_doorplate_address jda
+ jczz_house jh
+ LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
WHERE
- jh.house_code = jda.address_code
- AND jda.nei_code = #{code}
- AND jda.building_code IS NOT NULL
-
+ jda.nei_code = #{code}
+ AND jh.is_deleted = 0
<if test="userId != null">
- AND EXISTS (
- SELECT
- *
+ AND jda.address_code IN (
+ SELECT DISTINCT
+ jgr.house_code
FROM
jczz_grid jg
LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
WHERE
jgm.user_id = #{userId}
- AND jh.house_code = jgr.house_code
AND jg.is_deleted = 0
)
</if>
-
- GROUP BY
- jda.address_code
- )
+ ) a
</select>
<select id="getHouseStatisticsThree" resultType="java.lang.Integer">
SELECT
- count(1)
+ count( 1 )
FROM
jczz_household jhh
- LEFT JOIN jczz_house jh ON jhh.house_code = jh.house_code
+ LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jhh.house_code
WHERE
- jh.is_deleted = 0
+ jda.nei_code = #{code}
AND jhh.is_deleted = 0
- AND jhh.house_code IN (
- SELECT
- jda.address_code
- FROM
- jczz_doorplate_address jda
- WHERE
- jh.house_code = jda.address_code
- AND jda.nei_code = #{code}
<if test="userId != null">
- AND EXISTS (
- SELECT
- *
- FROM
- jczz_grid jg
- LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
- LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
- WHERE
- jgm.user_id = #{userId}
- AND jh.house_code = jgr.house_code
- AND jg.is_deleted = 0
- )
- </if>
+ AND jda.address_code IN (
+ SELECT
+ jgr.house_code
+ FROM
+ jczz_grid jg
+ LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
+ LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
+ WHERE
+ jgm.user_id = #{userId}
+ AND jg.is_deleted = 0
)
-
+ </if>
</select>
@@ -320,38 +341,29 @@
SELECT
count( 1 )
FROM
- jczz_house jh
- WHERE
- jh.is_deleted = 0
- AND
- EXISTS (
- SELECT
+ (
+ SELECT DISTINCT
jda.unit_code
FROM
- jczz_doorplate_address jda
+ jczz_house jh
+ LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
WHERE
- jh.house_code = jda.address_code
- AND jda.nei_code = #{code}
- AND jda.building_code IS NOT NULL
-
+ jda.nei_code = #{code}
+ AND jh.is_deleted = 0
<if test="userId != null">
- AND EXISTS (
- SELECT
- *
+ AND jda.address_code IN (
+ SELECT DISTINCT
+ jgr.house_code
FROM
jczz_grid jg
LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
WHERE
jgm.user_id = #{userId}
- AND jh.house_code = jgr.house_code
AND jg.is_deleted = 0
)
</if>
-
- GROUP BY
- jda.unit_code
- )
+ ) a
</select>
--
Gitblit v1.9.3