zhongrj
2023-11-17 bc670e87f764e250a54b1687dedbe0df135b411f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.house.mapper.HouseMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="houseResultMap" type="org.springblade.modules.house.entity.HouseEntity">
        <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"/>
    </resultMap>
 
    <!--过滤网格数据-->
    <sql id="filterHouseGrid">
        <if test="houseParam.roleName!=null and houseParam.roleName!=''">
            <if test="houseParam.roleName=='网格员'">
                <choose>
                    <when test="list != null and list.size()>0">
                        and house_code in
                        <foreach collection="list" item="houseCode" separator ="," open="("  close=")">
                            #{houseCode}
                        </foreach>
                    </when>
                    <otherwise>
                        and house_code in ('')
                    </otherwise>
                </choose>
            </if>
        </if>
    </sql>
 
    <sql id="selectHouse">
        select
            id,
            house_code,
            district_code,
            district_name,
            house_name,
            phone,
            area,
            property_price,
            service_due,
            floor,
            building,
            unit,
            room,
            building_no,
            image_urls,
            create_user,
            create_time,
            update_user,
            update_time,
            remark,
            is_deleted
        from
            jczz_house
    </sql>
 
 
    <!--房屋详情-->
    <resultMap id="houseAndHouseLabelMap" type="org.springblade.modules.house.vo.HouseVO" autoMapping="true">
        <id property="id" column="id"/>
        <collection property="houseLabelVOList" javaType="java.util.List"
                    ofType="org.springblade.modules.house.vo.HouseLabelVO" autoMapping="true">
            <id property="id" column="cid"/>
            <result property="remark" column="cremark"/>
        </collection>
    </resultMap>
 
    <!--自定义分页列表-->
    <select id="selectHousePage" resultType="org.springblade.modules.house.vo.HouseVO">
        select *,concat(building," ",unit," ",room) as address from jczz_house
        where is_deleted = 0
        <if test="house.id != null "> and id = #{house.id}</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.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>
        <if test="house.serviceDue != null "> and service_due = #{house.serviceDue}</if>
        <if test="house.floor != null "> and floor = #{house.floor}</if>
        <if test="house.building != null  and house.building != ''"> and building = #{house.building}</if>
        <if test="house.unit != null  and house.unit != ''"> and unit = #{house.unit}</if>
        <if test="house.room != null  and house.room != ''"> and room = #{house.room}</if>
        <if test="house.buildingNo != null "> and building_no = #{house.buildingNo}</if>
    </select>
 
    <!--房屋自定义详情查询-->
    <select id="getHouseDetail" resultMap="houseAndHouseLabelMap">
        select
        jh.*,
        jhl.id as cid,jhl.*,jhl.remark as cremark
        from jczz_house jh
        left join jczz_house_label jhl on jh.house_code = jhl.house_code
        where jh.is_deleted = 0
        and jh.house_code = #{house.houseCode}
    </select>
 
 
    <select id="export" resultType="org.springblade.modules.house.excel.HouseExcel">
        <include refid="selectHouse"/>
        <where>
            <if test="id != null "> and id = #{id}</if>
            <if test="houseCode != null  and houseCode != ''"> and house_code = #{houseCode}</if>
            <if test="districtCode != null  and districtCode != ''"> and district_code = #{districtCode}</if>
            <if test="districtName != null  and districtName != ''"> and district_name = #{districtName}</if>
            <if test="houseName != null  and houseName != ''"> and house_name = #{houseName}</if>
            <if test="phone != null  and phone != ''"> and phone = #{phone}</if>
            <if test="area != null "> and area = #{area}</if>
            <if test="propertyPrice != null "> and property_price = #{propertyPrice}</if>
            <if test="serviceDue != null "> and service_due = #{serviceDue}</if>
            <if test="floor != null "> and floor = #{floor}</if>
            <if test="building != null  and building != ''"> and building = #{building}</if>
            <if test="unit != null  and unit != ''"> and unit = #{unit}</if>
            <if test="room != null  and room != ''"> and room = #{room}</if>
            <if test="buildingNo != null "> and building_no = #{buildingNo}</if>
            <if test="imageUrls != null  and imageUrls != ''"> and image_urls = #{imageUrls}</if>
            <if test="createUser != null  and createUser != ''"> and create_user = #{createUser}</if>
            <if test="createTime != null "> and create_time = #{createTime}</if>
            <if test="updateUser != null  and updateUser != ''"> and update_user = #{updateUser}</if>
            <if test="updateTime != null "> and update_time = #{updateTime}</if>
            <if test="remark != null  and remark != ''"> and remark = #{remark}</if>
            <if test="isDeleted != null "> and is_deleted = #{isDeleted}</if>
        </where>
 
    </select>
 
 
    <!--获取房屋树-->
    <select id="getHouseTree" resultType="org.springblade.modules.house.vo.HouseTree">
        SELECT
        district_code as code,
        district_name as name,
        jda.nei_code as parentCode
        FROM jczz_house jh
        left join
        (select nei_code,aoi_code from jczz_doorplate_address where nei_code = #{houseParam.code} group by nei_code,aoi_code) jda
        on jda.aoi_code = jh.district_code
        WHERE jda.nei_code = #{houseParam.code}
        <include refid="filterHouseGrid"/>
        GROUP BY district_code,district_name,nei_code
        union all
        (
        SELECT
        building as code,
        building as name,
        district_code as parentCode
        FROM jczz_house jh
        left join
        (select nei_code,aoi_code from jczz_doorplate_address where nei_code = #{houseParam.code} group by nei_code,aoi_code) jda
        on jda.aoi_code = jh.district_code
        WHERE jda.nei_code = #{houseParam.code}
        <include refid="filterHouseGrid"/>
        GROUP BY building,district_code
        )
        union all
        (
        select
        unit as code,
        unit name,
        building as parentCode
        FROM jczz_house jh
        left join
        (select nei_code,aoi_code from jczz_doorplate_address where nei_code = #{houseParam.code} group by nei_code,aoi_code) jda
        on jda.aoi_code = jh.district_code
        WHERE jda.nei_code = #{houseParam.code}
        <include refid="filterHouseGrid"/>
        group by unit,building
        )
        union all
        (
        select
        room as code,
        room name,
        unit as parentCode
        FROM jczz_house jh
        left join
        (select nei_code,aoi_code from jczz_doorplate_address where nei_code = #{houseParam.code} group by nei_code,aoi_code) jda
        on jda.aoi_code = jh.district_code
        WHERE jda.nei_code = #{houseParam.code}
        <include refid="filterHouseGrid"/>
        )
    </select>
 
 
</mapper>